📄 led.lst
字号:
C51 COMPILER V8.05a LED 07/25/2008 14:45:04 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE LED
OBJECT MODULE PLACED IN LED.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE LED.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include"at89x52.h"
2 #include<intrins.h>
3 #include"def.h"
4 extern void delay (unsigned int value);
5
6 sbit clk=P2^0; /*DTLED-6显示芯片/时钟芯片DS1302时钟输入端*/
7 sbit dout=P2^1; /*DTLED-6显示芯片数据读入端*/
8 sbit en =P2^2; /*DTLED-6显示芯片使能端*/
9
10
11 //*********************************************************************/
12 //串行发送DTLED-6显示
13 //dispbuf0-dispbuf1-dispbuf2-dispbuf3-dispbuf4-dispbuf5-dispbuf6-dispbuf7-dispbuf8
14 // 小数点 - 数码管1- 数码管2- 数码管3- 数码管4- 数码管5- 数码管6-ID识别码-BZ识别码
15 //00000xxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx
16 //小数点=1~6,其它为不显示
17 //数码管1-6=0~15,
18 //ID识别码=0~15
19 //BZ识别码=BZ.3为蜂鸣输出控制位,0=关闭,1=打开
20 // BZ0~2为蜂鸣频率输出设定为,000=不分频, 最高频率输出=4800Hz;
21 // 001=一次分频,频率输出=4800/ 2 =2400Hz;
22 // 010=二次分频,频率输出=4800/ 4 =1200Hz;
23 // 011=三次分频,频率输出=4800/ 8 =600Hz;
24 // 100=四次分频,频率输出=4800/ 16=300Hz;
25 // 101=五次分频,频率输出=4800/ 32=150Hz;
26 // 110=六次分频,频率输出=4800/ 64=75Hz;
27 // 111=七次分频,频率输出=4800/128=38Hz;
28 //======================================================================
29 void tsled(void) /*串行发送DTLED-6显示副程式*/
30 { char ts0,i,j;
31 1 clk=0;
32 1 en=0;
33 1 delay(10);
34 1 for(j=0;j<9;j++)
35 1 { ts0=dispbuf[j];
36 2 for(i=0;i<4;i++) /*发小数点码8,4,2,1*/
37 2 {
38 3 clk=1;
39 3 ts0=ts0<<1;
40 3 if(AC==1)
41 3 dout=1;
42 3 else dout=0;
43 3 clk=0;
44 3 nop;
45 3 delay(3);
46 3 }
47 2 }
48 1 en=1;
49 1 } /*返回主程式*/
50
51 /******************************************************/ //光标左移右移
52 void S_RL(void)
53 {
54 1 if (++disp_temp[0]>6)
55 1 {
C51 COMPILER V8.05a LED 07/25/2008 14:45:04 PAGE 2
56 2 disp_temp[0]=0;
57 2 dispbuf[6]=disp_temp[1];
58 2 }
59 1 else
60 1 {
61 2 if (disp_temp[0]!=1)dispbuf[disp_temp[0]-1]=disp_temp[1];
62 2 disp_temp[1]=dispbuf[disp_temp[0]];
63 2 dispbuf[disp_temp[0]]=0x0d;
64 2 }
65 1 }
66 void S_RR(void)
67 {
68 1 if (disp_temp[0]--==0)
69 1 {
70 2 disp_temp[0]=6;
71 2 disp_temp[1]=dispbuf[6];
72 2 }
73 1 else
74 1 {
75 2 dispbuf[disp_temp[0]+1]=disp_temp[1];
76 2 disp_temp[1]=dispbuf[disp_temp[0]];
77 2 }
78 1
79 1 if(disp_temp[0]!=0)dispbuf[disp_temp[0]]=0x0d;
80 1 }
81 /******************************************************/
82 void clear(void) /*清除显示器dispbuf[]为00副程式*/
83 {char c; /*宣告变数*/
84 1 for(c=1;c<7;c++) /*将00存入显示阵列dispbuf[]*/
85 1 {dispbuf[c]=0x00;
86 2 }
87 1 } /*返回上一层程式*/
88 /******************************************************/
89
90 /****************************************************/
91 void xch(void) /*显示向右移动副程式*/
92 {char c; /*宣告变数*/
93 1 for(c=6;c>0;c--)
94 1 {dispbuf[c]=dispbuf[c-1]; /*将显示器dispbuf[]移位交换,dispbuf[3]->dispbuf[4]->dispbuf[5]...*/
95 2 }
96 1 dispbuf[0]=0; /*有安键时,小数点不亮*/
97 1 dispbuf[1]=tab[ptr]; /*新的按键值存入dispbuf[1],最低位*/
98 1 } /*返回上一层程式*/
99 /****************************************************/
100
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 200 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 36 3
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 + -