📄 led6show.lst
字号:
C51 COMPILER V8.05a LED6SHOW 07/29/2007 09:35:52 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE LED6SHOW
OBJECT MODULE PLACED IN LED6Show.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sources\LED6Show.c BROWSE INCDIR(.\include) DEBUG OBJECTEXTEND PRINT(.\LED6
-Show.lst) OBJECT(LED6Show.obj)
line level source
1 //*************************************************************************************************
2 //*************************************************************************************************
3 //**<程序名>:LED动态扫描子函数。 **
4 //**<功能>: unsigned char * pucLedNum(unsigned long ulNumber); **
5 //** 计算一个在000000到999999之间的数的每位数字并存储在数组中.并返回数组的首地址 **
6 //** void vShowOneNum(unsigned char ucOneNum,unsigned char ucOrder); **
7 //** 输入一个数字以及所要显示的位置,在LED相应位置上显示相应数字. **
8 //*************************************************************************************************
9 //*************************************************************************************************
10
11
12 //*************************************************************************************************
13 //* *
14 //* ******************************头文件及宏定义************************** *
15 //* *
16 //*************************************************************************************************
17 #include <at89x51.h>
18 #define LEDCHAR P1 //LED 字符I/O 口,P1.0~7对应A~DP
19 #define LEDSELECT P0 //LED 选择I/O口. P2.0~5对应LED的1~6
20
21
22 //*************************************************************************************************
23 //* *
24 //* ********************************全局变量****************************** *
25 //* *
26 //*************************************************************************************************
27 unsigned char code uca_LEDCode[]=
28 {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90, //0,1,2,3,4,5,6,7,8,9
29 0x88,0x83,0xC6,0xA1,0x86,0x84,0xFF,0x8C}; //A,B,C,D,E,F,空格,P
30
31 unsigned char code uca_LEDSelect[]={0x01,0x02,0x04,0x08,0x10,0x20};
32 //分别点亮第6,5,4,3,2,1号灯.
33
34 unsigned char uca_LedNum[6];
35 //存放数字的各个位
36
37
38 //*************************************************************************************************
39 //* *
40 //* ********************************函数实现****************************** *
41 //* *
42 //*************************************************************************************************
43 unsigned char * pucLedNum(unsigned long ulNumber)
44 {
45 1 if(ulNumber>999999)
46 1 ulNumber=999999;
47 1 if(ulNumber<0)
48 1 ulNumber=0;
49 1 uca_LedNum[5] = ulNumber/100000;
50 1
51 1 uca_LedNum[4] = (ulNumber-100000*(long)uca_LedNum[5])/10000;
52 1
53 1 uca_LedNum[3] = (ulNumber-100000*(long)uca_LedNum[5]-10000*(long)uca_LedNum[4])/1000;
54 1
C51 COMPILER V8.05a LED6SHOW 07/29/2007 09:35:52 PAGE 2
55 1 uca_LedNum[2] = (ulNumber-100000*(long)uca_LedNum[5]-10000*(long)uca_LedNum[4]
56 1 -1000*(long)uca_LedNum[3])/100;
57 1
58 1 uca_LedNum[1] = (ulNumber-100000*(long)uca_LedNum[5]-10000*(long)uca_LedNum[4]
59 1 -1000*(long)uca_LedNum[3]-100*(long)uca_LedNum[2])/10;
60 1
61 1 uca_LedNum[0] = (ulNumber-100000*(long)uca_LedNum[5]-10000*(long)uca_LedNum[4]
62 1 -1000*(long)uca_LedNum[3]-100*(long)uca_LedNum[2]-10*(long)uca_LedNum[1]);
63 1
64 1 return uca_LedNum;
65 1 }
66
67
68
69 void vShowOneNum(unsigned char ucOneNum,unsigned char ucOrder)
70 {
71 1 LEDSELECT=0;
72 1 LEDCHAR=uca_LEDCode[ucOneNum];
73 1 LEDSELECT=uca_LEDSelect[ucOrder-1];
74 1 }
75
76
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 711 ----
CONSTANT SIZE = 24 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 4
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 + -