📄 clock.lst
字号:
C51 COMPILER V7.07 CLOCK 12/25/2007 21:28:05 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE CLOCK
OBJECT MODULE PLACED IN clock.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE clock.c BROWSE DEBUG OBJECTEXTEND TABS(8)
stmt level source
1 #include "reg51.h"
2 #include"intrins.h"
3 #define uchar unsigned char
4 #define uint unsigned int
5 #define nop _nop_() /* 定义空操作指令 */
6 sbit en =P1^7; /*DTLED-6显示芯片使能端*/
7 sbit dout =P1^6; /*DTLED-6显示芯片数据读入端*/
8 sbit clk =P1^3; /*DTLED-6显示芯片/时钟芯片DS1302时钟输入端*/
9 uchar MScond=0; //ms
10 uchar Scond=0; //s
11 uchar Minute=0; //min
12 uchar Hour=0; //h
13 uchar dispbuf[9]={3,0,0,0,0,0,0,1,0}; /*显示值存放阵列*/
14 void delay (uint value) /*延时副程式*/
15 {
16 1 while (value!=0) value--; /*10US延时*/
17 1 }
18 void tsled(void) /*串行发送DTLED-6显示副程式*/
19 {
20 1 char ts0,i,j;
21 1 clk=0;
22 1 en=0;
23 1 delay(10);
24 1 for(j=0;j<9;j++)
25 1 { ts0=dispbuf[j];
26 2 for(i=0;i<4;i++) /*发小数点码8,4,2,1*/
27 2 {
28 3 clk=1;
29 3 ts0=ts0<<1;
30 3 if(AC==1)
31 3 dout=1;
32 3 else dout=0;
33 3 clk=0;
34 3 nop;
35 3 delay(3);
36 3 }
37 2 }
38 1 en=1;
39 1 } /*返回主程式*/
40 void BCD(void)
41 {
42 1 dispbuf[1]=Scond%10;
43 1 dispbuf[2]=Scond/10;
44 1 dispbuf[3]=Minute%10;
45 1 dispbuf[4]=Minute/10;
46 1 dispbuf[5]=Hour%10;
47 1 dispbuf[6]=Hour/10;
48 1 }
49 /********************************************************/
50 void timer1(void) interrupt 3 using 2
51 {
52 1 TH1=0xb1; /*定时器定时20ms*/
53 1 TL1=0xeb;
54 1 MScond=MScond+1;
55 1 if(MScond==50) /*秒处理1s=50*20*/
C51 COMPILER V7.07 CLOCK 12/25/2007 21:28:05 PAGE 2
56 1 {
57 2 MScond=0;
58 2 Scond=Scond+1;
59 2 if(Scond==60) /*分处理*/
60 2 {
61 3 Scond=0;
62 3 Minute=Minute+1;
63 3 if(Minute==60) /*时处理*/
64 3 {
65 4 Minute=0;
66 4 Hour=Hour+1;
67 4 if(Hour==24)Hour=0;
68 4 }
69 3 }
70 2 }
71 1 }
72 void main(void)
73 {
74 1 uchar TMP=0;
75 1 tsled();
76 1 P0=0xff; /*P0初始化*/
77 1 TMOD=0x10; /*定时器工作方式*/
78 1 TH1=0xb1;
79 1 TL1=0xeb;
80 1 TR1=1; /*允许T1工作*/
81 1 ET1=1; /*允许T1中断*/
82 1 EA=1; /*允许全局中断*/
83 1 while(1)
84 1 {
85 2 TMP=Scond;
86 2 while(TMP==Scond);
87 2 BCD();
88 2 tsled();
89 2 }
90 1 }
91
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 214 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 13 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -