📄 led.lst
字号:
C51 COMPILER V8.02 LED 01/17/2007 05:33:06 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE LED
OBJECT MODULE PLACED IN led.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE led.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "system.h"
2 #include <INTRINS.H> //为调用nop空指令需要
3
4
5
6 /*共阳极8段LED段码表: "0"“1”“2”“3”“4”“5”“6”“7”“8”“9"*/
7 char code ledtable[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
8
9
10
11 /*送译码器的三个值 能够实现译码 即驱动8个数码管*/
12 sbit A = P3^4;
13 sbit D = P3^2;
14 sbit C = P3^3;
15
16 sbit E = P1^7; //小数点的放置
17 sbit DQ = P3^7; //温度输入口
18
19 unsigned char data disv[2] = {0x00,0x00}; //存放ADC通道0的电压值
- //存放ADC通道1的电压值
20 unsigned char data disa[3] = {0x00,0x00,0x00}; //存放ADC通道1的电流值
21 unsigned char data display[3] = {0x00,0x00,0x00}; //显示单元数据,共3个,一个运算符暂用
22
23
24 #define Disdata P1
25
26
27
28 void LedDisp(void)
29 {
30 1 static char place = 0; //place决定哪位数码管点亮
31 1 unsigned char ledout; //最终送往显示端口的数据
32 1
33 1
34 1 //**************根据place的值扫描LED 8数码管********************
35 1 switch(place)
36 1 {
37 2 case 0:
38 2 A = 1;
39 2 D = 1;
40 2 C = 1;
41 2 ledout = 0xff;
42 2 ledout = ledtable[disv[0]]; //提取出0的LED显示代码
43 2 Disdata = ledout; //送到P1端口上显示
44 2 if(power < 10)
45 2 {
46 3 E = 0;
47 3 }
48 2 A = 1;
49 2 D = 1;
50 2 C = 1;
51 2 place = 1; //第1个数码显示完毕,转向2位显示
52 2 break;
53 2 case 1:
54 2 A = 1;
C51 COMPILER V8.02 LED 01/17/2007 05:33:06 PAGE 2
55 2 D = 1;
56 2 C = 1;
57 2 ledout = 0xff;
58 2 ledout = ledtable[disv[1]]; //提取出0的LED显示代码
59 2 Disdata = ledout; //送到P1端口上显示
60 2 A = 0;
61 2 D = 1;
62 2 C = 1;
63 2 place = 2; //第2个数码显示完毕,转向3位显示
64 2 break;
65 2 case 2:
66 2 A = 0;
67 2 D = 1;
68 2 C = 1;
69 2 ledout = 0xff;
70 2 ledout = ledtable[disa[0]]; //提取出0的LED显示代码
71 2 Disdata = ledout; //送到P1端口上显示
72 2 if(current < 10)
73 2 {
74 3 E = 0;
75 3 }
76 2 A = 1;
77 2 D = 0;
78 2 C = 1;
79 2 place = 3; //第3个数码显示完毕,转向4位显示
80 2 break;
81 2 case 3:
82 2 A = 1;
83 2 D = 0;
84 2 C = 1;
85 2 ledout = 0xff;
86 2 ledout = ledtable[disa[1]]; //提取出0的LED显示代码
87 2 Disdata = ledout; //送到P1端口上显示
88 2 if(current >= 10)
89 2 {
90 3 E = 0;
91 3 }
92 2 A = 0;
93 2 D = 0;
94 2 C = 1;
95 2 place = 4; //第4个数码显示完毕,转向5位显示
96 2 break;
97 2 case 4:
98 2 A = 0;
99 2 D = 0;
100 2 C = 1;
101 2 ledout = 0xff;
102 2 ledout = ledtable[disa[2]]; //提取出0的LED显示代码
103 2 Disdata = ledout; //送到P1端口上显示
104 2 A = 1;
105 2 D = 1;
106 2 C = 0;
107 2 place = 5; //第5个数码显示完毕,转向6位显示
108 2 break;
109 2 case 5:
110 2 A = 1;
111 2 D = 1;
112 2 C = 0;
113 2 /* if(n == 1)
114 2 {
115 2 ledout = 0xff;
116 2 Disdata = 0xbf; //写“-”
C51 COMPILER V8.02 LED 01/17/2007 05:33:06 PAGE 3
117 2 A = 0;
118 2 D = 1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -