📄 led.lst
字号:
C51 COMPILER V8.08 LED 06/20/2007 16:16:06 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE LED
OBJECT MODULE PLACED IN LED.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LED.c BROWSE DEBUG OBJECTEXTEND TABS(2)
line level source
1 #include <REGX51.H>
2 #include "type.h"
3 #include "config.h"
4 //=======================================================
5 // 四位共阳/阴数码管管脚图(从正面观看,第一脚为起点,管脚的顺序是逆时针方向排列)
6 // e 1 2 d g 3 (1~4代表显示的位,左起)
7 // 1 2 3 4 5 6 (引脚)
8 // ___ ___ ___ ___ ___
9 // | | | | | | | | f | a | b
10 // |___| |___| |___| |___| |___|
11 // | 1 | | 2 | | 3 | | 4 | e | g | c
12 // |___| |___| |___| |___| |___| . h(dp)
13 // d
14 // 12 11 10 9 8 7
15 // c h 4 f a b
16 //=======================================================
17
18 sbit DS=P1^0;
19 sbit ST_CP=P1^1;
20 sbit SH_CP=P1^2;
21
22 #define DispSel(x) (P1=((P1&0x0f)|(1<<x)))
23
24 unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
25
26 void DispData(uchar x)
27 {
28 1 uchar i;
29 1 SH_CP = 0;
30 1 ST_CP = 0;
31 1 for(i=0;i<8;i++)
32 1 {
33 2 if(x&0x80) //一位一位数据通过DS(P1_0)输出,先输出高位
34 2 {
35 3 DS = 1;
36 3 }
37 2 else
38 2 {
39 3 DS = 0;
40 3 }
41 2 ST_CP = 1; //上升沿有效,ST对应74HC595的ST_CP,逐位移位输入,但Qn引脚不改变
42 2 ST_CP = 0;
43 2 x<<=1;
44 2 }
45 1 SH_CP = 1; //上升沿有效,SH对应74HC595的SH_CP,当8位数据均移入后,才改变Qn的引脚电平,并行
-输出8位数据
46 1 }
47
48 void Disp(uchar *p)
49 {
50 1 uchar i;
51 1 for(i=7;i>3;i--)
52 1 {
53 2 DispSel(i);
54 2 //if(i==4)delay_1ms();
C51 COMPILER V8.08 LED 06/20/2007 16:16:06 PAGE 2
55 2 DispData(dispcode[*p++]);
56 2 delay_1ms();
57 2 //DispData(0xff); //关显示
58 2 }
59 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 99 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 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 + -