?? main.lst
字號:
C51 COMPILER V7.06 MAIN 07/11/2008 19:46:18 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: F:\FengData\keilc51\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
*** WARNING C500 IN LINE 1 OF MAIN.C: MISSING DEVICE (SECURITY KEY NOT FOUND)
1 #include "reg52.h"
2 #include <intrins.h>
3 //#include "LCD1602.h"
4 //#include "DS1302.h"
5 #define uint unsigned int
6 #define uchar unsigned char
7 sbit DS1302_CLK = P1^7; //實時時鐘時鐘線引腳
8 sbit DS1302_IO = P1^6; //實時時鐘數據線引腳
9 sbit DS1302_RST = P1^5; //實時時鐘復位線引腳
10 sbit wireless_1 = P3^0;
11 sbit wireless_2 = P3^1;
12 sbit wireless_3 = P3^2;
13 sbit wireless_4 = P3^3;
14 sbit ACC0 = ACC^0;
15 sbit ACC7 = ACC^7;
16 char hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year; //秒,分,時到日,月,年位閃的計數
17 sbit Set = P2^0; //模式切換鍵
18 sbit Up = P2^1; //加法按鈕
19 sbit Down = P2^2; //減法按鈕
20 sbit out = P2^3; //立刻跳出調整模式按鈕
21 sbit DQ = P1^0; //溫度傳送數據IO口
22 char done,count,temp,flag,up_flag,down_flag;
23 uchar temp_value; //溫度值
24 uchar TempBuffer[5],week_value[2];
25
26
27
28 /***********1602液晶顯示部分子程序****************/
29
30
31 //Port Definitions**********************************************************
32 sbit LcdRs = P2^5;
33 sbit LcdRw = P2^6;
34 sbit LcdEn = P2^7;
35 sfr DBPort = 0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.數據端口
36
37 //內部等待函數**************************************************************************
38 unsigned char LCD_Wait(void)
39 {
40 1 LcdRs=0;
41 1 LcdRw=1; _nop_();
42 1 LcdEn=1; _nop_();
43 1
44 1 LcdEn=0;
45 1 return DBPort;
46 1 }
47 //向LCD寫入命令或數據************************************************************
48 #define LCD_COMMAND 0 // Command
49 #define LCD_DATA 1 // Data
50 #define LCD_CLEAR_SCREEN 0x01 // 清屏
51 #define LCD_HOMING 0x02 // 光標返回原點
52 void LCD_Write(bit style, unsigned char input)
53 {
54 1 LcdEn=0;
C51 COMPILER V7.06 MAIN 07/11/2008 19:46:18 PAGE 2
55 1 LcdRs=style;
56 1 LcdRw=0; _nop_();
57 1 DBPort=input; _nop_();//注意順序
58 1 LcdEn=1; _nop_();//注意順序
59 1 LcdEn=0; _nop_();
60 1 LCD_Wait();
61 1 }
62
63 //設置顯示模式************************************************************
64 #define LCD_SHOW 0x04 //顯示開
65 #define LCD_HIDE 0x00 //顯示關
66
67 #define LCD_CURSOR 0x02 //顯示光標
68 #define LCD_NO_CURSOR 0x00 //無光標
69
70 #define LCD_FLASH 0x01 //光標閃動
71 #define LCD_NO_FLASH 0x00 //光標不閃動
72
73 void LCD_SetDisplay(unsigned char DisplayMode)
74 {
75 1 LCD_Write(LCD_COMMAND, 0x08|DisplayMode);
76 1 }
77
78 //設置輸入模式************************************************************
79 #define LCD_AC_UP 0x02
80 #define LCD_AC_DOWN 0x00 // default
81
82 #define LCD_MOVE 0x01 // 畫面可平移
83 #define LCD_NO_MOVE 0x00 //default
84
85 void LCD_SetInput(unsigned char InputMode)
86 {
87 1 LCD_Write(LCD_COMMAND, 0x04|InputMode);
88 1 }
89
90 //初始化LCD************************************************************
91 void LCD_Initial()
92 {
93 1 LcdEn=0;
94 1 LCD_Write(LCD_COMMAND,0x38); //8位數據端口,2行顯示,5*7點陣
95 1 LCD_Write(LCD_COMMAND,0x38);
96 1 LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //開啟顯示, 無光標
97 1 LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏
98 1 LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //AC遞增, 畫面不動
99 1 }
100
101 //液晶字符輸入的位置************************
102 void GotoXY(unsigned char x, unsigned char y)
103 {
104 1 if(y==0)
105 1 LCD_Write(LCD_COMMAND,0x80|x);
106 1 if(y==1)
107 1 LCD_Write(LCD_COMMAND,0x80|(x-0x40));
108 1 }
109
110 //將字符輸出到液晶顯示
111 void Print(unsigned char *str)
112 {
113 1 while(*str!='\0')
114 1 {
115 2 LCD_Write(LCD_DATA,*str);
116 2 str++;
C51 COMPILER V7.06 MAIN 07/11/2008 19:46:18 PAGE 3
117 2 }
118 1 }
119
120 void Delay1ms(unsigned int count)
121 {
122 1 unsigned int i,j;
123 1 for(i=0;i<count;i++)
124 1 for(j=0;j<120;j++);
125 1 }
126
127 /*延時子程序*/
128 void mdelay(uint delay)
129 { uint i;
130 1 for(;delay>0;delay--)
131 1 {for(i=0;i<62;i++) //1ms延時.
132 2 {;}
133 2 }
134 1 }
135
136
137
138
139
140
141
142 main()
143 {
144 1 Set=1;
145 1 LCD_Initial(); //液晶初始化
146 1 while(1)
147 1 {
148 2
149 2 if(Set==1)
150 2 {
151 3 GotoXY(0,0); //液晶字符顯示位置
152 3 Print("hello wolf");
153 3 }
154 2 else{
155 3 GotoXY(0,1);
156 3 Print("hello dong");
157 3 }
158 2 Print("hello ");
159 2 Delay1ms(400); //掃描延時
160 2 }
161 1
162 1
163 1 }
164
165
166
167
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 264 ----
CONSTANT SIZE = 29 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 21 1
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILER V7.06 MAIN 07/11/2008 19:46:18 PAGE 4
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -