?? ds1302.lst
字號:
C51 COMPILER V7.06 DS1302 07/29/2000 11:48:31 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE DS1302
OBJECT MODULE PLACED IN DS1302.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE DS1302.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /************************************/
2 /*ds1302+ds18b20溫度時鐘 */
3 /*目標器件:AT89S51 */
4 /*晶振:11.0592MHZ */
5 /*編譯環境:Keil 7.50A */
6 /*串口修改時間的格式為:以a開頭加年 */
7 /*加月加日加星期加時加分加秒加b結束 */
8 /*如a0807281163812b. */
9 /************************************/
10
11 /*********************************包含頭文件********************************/
12 #include <at89x52.h>
13 #include <intrins.h>
14
15 /*********************************端口定義**********************************/
16 sbit DS1302_CLK = P1^0;
17 sbit DS1302_IO = P1^1;
18 sbit DS1302_RST = P1^2;
19 sbit K1 = P3^2;
20 sbit K2 = P3^3;
21 sbit DQ=P3^3;
22 /*******************************共陽LED段碼表*******************************/
23 unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc6,0x7f};
24
25 /******************************定義全局變量*********************************/
26 unsigned char second,minute,hour,week,day,month,year; //秒、分、時、星期、日、月、年
27 //unsigned char minute1,hour1;
28 unsigned char second1,minute1,hour1,week1,day1,month1,year1;
29 unsigned char t1,t2,i;
30 unsigned char secondchar,minutechar,hourchar,weekchar,daychar,monthchar,yearchar;
31 unsigned char keysum ;
32 unsigned char key_s, key_v, tmp;
33 unsigned char key_s1, key_v1;
34 unsigned char tab1[10];
35 unsigned char dat; //定義全局變量
36 unsigned long dat1;
37 unsigned char ii,jj;
38 unsigned char RxdFlag;
39 //char code str[] = "www.jiundingantong.com ";
40
41
42
43 /*********************************定義全局變量******************************/
44 unsigned char tempL=0; //臨時變量低位
45 unsigned char tempH=0; //臨時變量高位
46 float temperature; //溫度值
47
48
49 //串行口初始化程序
50 void Init_Com(void)
51 {
52 1 TMOD = 0x20; // 定時器1工作于8位自動重載模式, 用于產生波特率
53 1 PCON = 0x00; // 波特率不倍增//
54 1 SCON = 0x50; // 串口工作方式1//
55 1 TH1 = 0xFd; // 9600Kbps//
C51 COMPILER V7.06 DS1302 07/29/2000 11:48:31 PAGE 2
56 1 TL1 = 0xFd;
57 1 TR1 = 1; // 啟動定時器1,開啟中斷//
58 1 }
59
60
61 void send_char(unsigned char txd) // 傳送一個字符
62 {
63 1 SBUF = txd; // 傳送數據
64 1 while(!TI); // 等特數據傳送
65 1 TI = 0; // 清除數據傳送標志
66 1 }
67
68
69
70
71 /****************************************************************************
72 函數功能:延時子程序(溫度顯示部分用)
73 入口參數:k
74 出口參數:
75 ****************************************************************************/
76 void delayy(unsigned int k)
77
78 {
79 1 unsigned int n;
80 1 n=0;
81 1 while(n < k)
82 1 {n++;}
83 1 return;
84 1 }
85
86 /****************************************************************************
87 函數功能:延時子程序(時間顯示部分用)
88 入口參數:
89 出口參數:
90 ****************************************************************************/
91
92 void delay1(void)
93 {
94 1 int k;
95 1 for(k=0;k<400;k++);
96 1 }
97
98 /****************************************************************************
99 函數功能:數碼管顯示子程序(正常顯示溫度)
100 入口參數:k
101 出口參數:
102 ****************************************************************************/
103 void displayy(int k)
104 {
105 1 /*P2=0xfe;
106 1 P0=tab[k/1000];
107 1 delay1();
108 1 P2=0xfd;
109 1 P0=tab[k%1000/100];
110 1 delay1();*/
111 1 P2=0xff; //關閉P2口//
112 1 P2=0xfb; //溫度顯示的十位的位選//
113 1 P0=tab[k%100/10]; //溫度顯示的十位//
114 1 delay1();
115 1 P2=0xf7; //溫度顯示的個位的位選//
116 1 P0=tab[k%10]; //溫度顯示的個位//
117 1 delay1();
C51 COMPILER V7.06 DS1302 07/29/2000 11:48:31 PAGE 3
118 1 P2=0xdf; //字符C的位選//
119 1 P0=0xc6; //從DP段開始倒數:DP、G、F、E、D、C、B、A/11000110即16進制C6,顯示字符
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -