📄 disp.lst
字号:
C51 COMPILER V8.08 DISP 10/11/2008 08:13:39 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE DISP
OBJECT MODULE PLACED IN DISP.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE DISP.C BROWSE DEBUG OBJECTEXTEND TABS(2)
line level source
1 #include"stc89c5x.h"
2
3 #define uchar unsigned char
4 #define uint unsigned int
5
6
7 sbit SCLK_LED = P4^0; //595时钟 新卡大数码管
8 sbit LATCH_LED = P4^3; //595锁存,高有效
9 sbit IO_LED = P4^1; //LED 数据输入口
10
11 /*sbit SCLK_LED = P4^1; //595时钟 老卡大数码管
12 sbit LATCH_LED = P4^0; //595锁存,高有效
13 sbit IO_LED = P4^2; //LED 数据输入口*/
14
15 /*sbit SCLK_LED = P4^2; //595时钟 老卡小数码管
16 sbit LATCH_LED = P4^0; //595锁存,高有效
17 sbit IO_LED = P4^1; //LED 数据输入口*/
18
19 uchar LED_TAB[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x00};
20
21 void init();
22 void MsDelay(uint);
23 void Disp_LED();
24 void Send_Byte(uchar S_Byte);
25
26 main()
27 {
28 1 init();
29 1 while(1)
30 1 {
31 2 Disp_LED();
32 2 }
33 1 }
34
35 //***************************************
36 //**********单片机初始化函数*************
37 //***************************************
38 void init()
39 {
40 1 MsDelay(50);
41 1 LATCH_LED = 0;
42 1 SCLK_LED = 0;
43 1 TMOD = 0x21; //定时器1方式2,作波特率发生器,定时器0方式1,16位定时器
44 1 SCON = 0x50; //SET COMM. IN MODE1 设置串行口方式1,允许接收,10位异步收发
45 1 PCON = 0x00;
46 1 IE = 0x90; //开总中断及串行中断
47 1 TH0 = 0x72; //TIM 定时器0的初值,约20MS定时
48 1 TL0 = 0x28; //TIM
49 1 TH1 = 0xFA; //SET T0 IN MODE1,AS A TIMER. 定时器1初值
50 1 TL1 = 0xFA; //SET 9600BPS AT 22.1184MHz.
51 1 //TR1 = 1; //启动定时器
52 1 //TR0 = 1;
53 1 }
54
55 /**********************************
C51 COMPILER V8.08 DISP 10/11/2008 08:13:39 PAGE 2
56 ***********送显示的函数************
57 ***********************************/
58 void Disp_LED() //i决定了发送多少个字节的数据 //恭调试用
59 {
60 1 uchar i;
61 1 uint j;
62 1 LATCH_LED = 0;
63 1 for(i=0;i<=10;i++)
64 1 {
65 2 for(j=0;j<1000;j++)
66 2 {
67 3 Send_Byte(LED_TAB[i]);
68 3 Send_Byte(LED_TAB[i]);
69 3 Send_Byte(LED_TAB[i]);
70 3 Send_Byte(LED_TAB[i]);
71 3 Send_Byte(LED_TAB[i]);
72 3 Send_Byte(LED_TAB[i]);
73 3 Send_Byte(LED_TAB[i]);
74 3 Send_Byte(LED_TAB[i]);
75 3 Send_Byte(LED_TAB[i]);
76 3 Send_Byte(LED_TAB[i]);
77 3 Send_Byte(LED_TAB[i]);
78 3 Send_Byte(LED_TAB[i]);
79 3 Send_Byte(LED_TAB[i]);
80 3 Send_Byte(LED_TAB[i]);
81 3 Send_Byte(LED_TAB[i]);
82 3 Send_Byte(LED_TAB[i]);
83 3 Send_Byte(LED_TAB[i]);
84 3 Send_Byte(LED_TAB[i]);
85 3 Send_Byte(LED_TAB[i]);
86 3 Send_Byte(LED_TAB[i]);
87 3 LATCH_LED = 1;
88 3 }
89 2 LATCH_LED = 0;
90 2 }
91 1 }
92
93 /**********************************
94 ***********送显示的函数************
95 ***********************************
96 void Disp_LED() //num决定了发送多少个字节的数据
97 {
98 uchar i;
99 //--num;
100 LATCH_LED = 0;
101 for(i=0;i<15;i++)
102 {
103 Send_Byte(LED_TAB[i]);
104 }
105 LATCH_LED = 1;
106 }*/
107
108 /********************************
109 **********发送一字节的函数*******
110 *********************************/
111 void Send_Byte(uchar S_Byte)
112 {
113 1 uchar i;
114 1
115 1 //LATCH_LED = 0;
116 1 for(i=0;i<8;i++)
117 1 {
C51 COMPILER V8.08 DISP 10/11/2008 08:13:39 PAGE 3
118 2 SCLK_LED = 0;
119 2 IO_LED = 0;
120 2 if(S_Byte&0x80)
121 2 IO_LED = 1;
122 2 SCLK_LED = 1;
123 2 S_Byte <<= 1;
124 2 }
125 1 SCLK_LED = 0;
126 1 //LATCH_LED = 1;
127 1 //MsDelay(1000);
128 1
129 1 }
130
131
132 /**********************************
133 *******1毫秒延时函数****************
134 ***********************************/
135 void MsDelay(uint Delay)
136 {
137 1 uchar i;
138 1 for(;Delay>0;Delay--)
139 1 for(i=124;i>0;i--);
140 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 198 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 11 3
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 + -