📄 main.lst
字号:
C51 COMPILER V8.05a MAIN 01/16/2009 09:09:28 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Program Files\keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /***************************************
2 **模拟时钟程序
3
4 **暂无时间调整功能
5
6 **proteus仿真论坛:http://proteus.5d6d.com
7 ***************************************/
8
9 #include <reg52.H>
10 #include<intrins.h>
11 #include<math.h>
12 #include"lcd12864.h"
13 void Delay(uint ms);
14 void TimeDisp(uchar hour,uchar min,uchar sec);
15 void TimerInit();
16
17 //时间初始值
18 uchar hour = 9;
19 uchar min = 9;
20 uchar sec = 30;
21
22
23 bit refreshflag = 1;//显示刷新标志,每一秒送一次显示数据
24 void main()
25 {
26 1 TimerInit();
27 1 ClearScreen();
28 1 BufferPrint12(0,0," 模拟时钟\n制作:\n 潘忠伟\nproteus.\n 5d6d.com");
29 1 while(1)
30 1 {
31 2 TimeDisp(hour,min,sec);
32 2 if(refreshflag)
33 2 {
34 3 Show();
35 3 refreshflag = 0;
36 3 }
37 2 }
38 1 }
39
40
41 void TimerInit()
42 {
43 1 EA = 1;
44 1 ET0 = 1;
45 1 TMOD = 0x01;
46 1 TH0 = (65536-50000)/256;
47 1 TL0 = (65536-50000)%256;
48 1 TR0 = 1;
49 1 }
50
51 void Timer0() interrupt 1
52 {
53 1 uchar n;
54 1 TH0 = (65536-49990)/256;//调整初值可使时间更加精确
55 1 TL0 = (65536-49990)%256;
C51 COMPILER V8.05a MAIN 01/16/2009 09:09:28 PAGE 2
56 1 n++;
57 1 if(n == 40)//24Mhz
58 1 {
59 2 n = 0;
60 2 sec++;
61 2 refreshflag = 1;
62 2 if(sec == 60)
63 2 {
64 3 sec = 0;
65 3 min++;
66 3 if(min == 60)
67 3 {
68 4 min = 0;
69 4 hour++;
70 4 if(hour == 12)
71 4 hour = 0;
72 4 }
73 3 }
74 2 }
75 1 }
76
77
78
79 /*
80 void Delay(uint ms) //延时子程序
81 {
82 uint x,y;
83 for(x=ms;x>0;x--)
84 for(y=120;y>0;y--);
85 }*/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 110 ----
CONSTANT SIZE = 44 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 1
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -