📄 led595.lst
字号:
C51 COMPILER V7.50 LED595 03/18/2006 16:57:53 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE LED595
OBJECT MODULE PLACED IN led595.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE led595.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /**************************************/
2 /*我的第一个LED显示程序,请高手多指点 */
3 /*程序功能:用两个点阵LED顺序显示0-9 */
4 /*作者:邓国明 */
5 /*地址:厦门大学机电工程系03级 */
6 /*Email:gmdengxm@163.com */
7 /**************************************/
8
9
10 #include <REG51.H>
11 #define uchar unsigned char
12 #define uint unsigned int
13
14
15 /*******************数字点阵**************/
16 uchar code shuzi[10][16] =
17 {
18 {0x00,0x00,0x10,0x20,0x10,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00}, //"1",0
19
20 {0x00,0x00,0x70,0x30,0x08,0x28,0x08,0x24,0x08,0x22,0x88,0x21,0x70,0x30,0x00,0x00}, //"2",1
21
22 {0x00,0x00,0x30,0x18,0x08,0x20,0x88,0x20,0x88,0x20,0x48,0x11,0x30,0x0E,0x00,0x00}, //"3",2
23
24 {0x00,0x00,0x00,0x07,0xC0,0x04,0x20,0x24,0x10,0x24,0xF8,0x3F,0x00,0x24,0x00,0x00}, //"4",3
25
26 {0x00,0x00,0xF8,0x19,0x08,0x21,0x88,0x20,0x88,0x20,0x08,0x11,0x08,0x0E,0x00,0x00}, //"5",4
27
28 {0x00,0x00,0xE0,0x0F,0x10,0x11,0x88,0x20,0x88,0x20,0x18,0x11,0x00,0x0E,0x00,0x00}, //"6",5
29
30 {0x00,0x00,0x38,0x00,0x08,0x00,0x08,0x3F,0xC8,0x00,0x38,0x00,0x08,0x00,0x00,0x00}, //"7",6
31
32 {0x00,0x00,0x70,0x1C,0x88,0x22,0x08,0x21,0x08,0x21,0x88,0x22,0x70,0x1C,0x00,0x00}, //"8",7
33
34 {0x00,0x00,0xE0,0x00,0x10,0x31,0x08,0x22,0x08,0x22,0x10,0x11,0xE0,0x0F,0x00,0x00}, //"9",8
35
36 {0x00,0x00,0xE0,0x0F,0x10,0x10,0x08,0x20,0x08,0x20,0x10,0x10,0xE0,0x0F,0x00,0x00} //"0",9
37
38 };
39 /*********************汉字点阵*******************/
40
41
42
43 /********************位口定义*******************/
44 sbit P17 = P1^7;
45
46
47 /********************变量定义********************/
48
49 uint delayi,delayj,rxdi,i,j,k,n,m; //delayi,delayj,n 延时函数变量。rxdi为串行口输出变量
50 //i,j,k,m输出控制变量
51
52
53 /********************函数声明*******************/
54 void delay(uint n); //不精确延时函数,延时n ms
55 void rxdout(uchar *d); //串行口输出函数
C51 COMPILER V7.50 LED595 03/18/2006 16:57:53 PAGE 2
56
57
58
59
60 /*******************主函数**********************/
61
62 void main()
63 {
64 1 SCON = 0x00; //串行口方式0,RXD输出数据,TXD输出脉冲
65 1 while(1)
66 1 {
67 2
68 2 for( i = 0; i < 10; i++) //数字显示
69 2 {
70 3 for(k = 0; k < 10; k++)
71 3 {
72 4 for((m = 0, j = 0); j < 16; j += 2)
73 4 {
74 5
75 5 P17 = 0; //P17口为595锁存
76 5 rxdout(&shuzi[i][j]);
77 5 rxdout(&shuzi[i][j+1]);
78 5 P17 = 1; //595上升沿锁存数据
79 5 P1 = m; //行驱动
80 5 ++m;
81 5 delay(1); //延时200微秒
82 5 }
83 4 }
84 3 delay(200); //延时准备显示下一个数字
85 3 delay(200);
86 3 delay(200);
87 3 }
88 2 }
89 1 }
90
91
92
93
94 /*******************子函数定义*********************/
95
96 void delay(uint n) //不精确延时,12MHz延时大约(200+3)*n微秒
97 {
98 1
99 1 for( ; n > 0; n--)
100 1 {
101 2 for(delayi = 0; delayi < 100; delayi++)
102 2 {
103 3 ;
104 3 }
105 2 }
106 1 }
107
108 void rxdout(uchar *d) //串行口输出
109 {
110 1 SBUF = *d;
111 1 while(TI == 0);
112 1 TI = 0;
113 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 208 ----
C51 COMPILER V7.50 LED595 03/18/2006 16:57:53 PAGE 3
CONSTANT SIZE = 160 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 16 ----
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 + -