📄 led_display.lst
字号:
C51 COMPILER V8.02 LED_DISPLAY 08/15/2007 11:24:53 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE LED_DISPLAY
OBJECT MODULE PLACED IN LED_Display.OBJ
COMPILER INVOKED BY: D:\电子软件\Keil8.02\C51\BIN\C51.EXE LED_Display.c BROWSE DEBUG OBJECTEXTEND SRC(.\LED_Display.SRC)
line level source
1 /*==========================================
2 LED显示驱动程序
3
4 文件名:LED_Display.c
5
6 作者 YOUJJYY
7 时间:2007.4.6
8 ============================================*/
9
10 #include <at89x52.h>
11 #include <LED_Display.h>
12 #define uchar unsigned char
13
14 //***********显示数据的转换***************//
15 uchar TO_DATA(bit n_s,uchar I,uchar led_data)
16 {
17 1 uchar x[3],y;
18 1 if(n_s==1)
19 1 {
20 2 switch(I)
21 2 {
22 3 case 0:if(led_data!=y){P0=P0^0x20;y=led_data;}
23 3 break;
24 3 case 1: {x[2]=(led_data>>4)+1;x[3]=(led_data&0x0f)+1;}
25 3 break;
26 3 case 2: {x[0]=(led_data>>4)+1;x[1]=(led_data&0x0f)+1;}
27 3 break;
28 3 default:break;
29 3
30 3 }
31 2 return x[I];
32 2 }
33 1 else
34 1 {
35 2 if(led_data<46)led_data=0;
36 2 else led_data-=47;
37 2 return led_data;
38 2 }
39 1 }
40
41 /*****************LED显示程序***************/
42 void LED_Display(bit N_S,uchar data_size,uchar S_D,uchar *LED_data)//N_S是数字和字符串显示选择,
43 //data_size显示多少位
44 //S_D是显示方式(0x00:静态,0x01:半动态,0x02:全动态)
45 //LED_data是要显示的数据
46 {
47 1 uchar t,y,i,x,z,a,k=20,size=0;
48 1
49 1 //*****************显示方式S_D***************//
50 1 switch(S_D)
51 1 {
52 2 case 0:a=0;
53 2 break;
54 2 case 1:a=4,k=80,size/=4;
55 2 break;
C51 COMPILER V8.02 LED_DISPLAY 08/15/2007 11:24:53 PAGE 2
56 2 case 2:a=1;//size-=4;
57 2 break;
58 2 default:break;
59 2 }
60 1
61 1 //*************显示个数data_size***********//
62 1 for(i=0;i<data_size;i++) //BCD码转换成LED码
63 1 {
64 2 if(N_S==1)size=0;
65 2 else size+=1;
66 2 }
67 1
68 1 //****************显示程序**************//
69 1 for(t=0;t<=size;t++) //要显示的位数
70 1 {
71 2 for(y=0;y<=k;y++) //循环20显示
72 2 {
73 3 z=0x7f;
74 3 for(i=0;i<=3;i++) //一次显示
75 3 {
76 4 P2=z;
77 4 z>>=1;
78 4 z+=0x80;
79 4 x=TO_DATA(N_S,i,LED_data[i+t*a]);
80 4 P0=BCD_ASCII[x];
81 4 Delay_1ms(3);//延时时间
82 4 }
83 3 }
84 2 }
85 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 263 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 19
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -