📄 7ledshow.lst
字号:
C51 COMPILER V7.02b 7LEDSHOW 12/10/2005 17:44:39 PAGE 1
C51 COMPILER V7.02b, COMPILATION OF MODULE 7LEDSHOW
OBJECT MODULE PLACED IN 7LEDShow.OBJ
COMPILER INVOKED BY: E:\EDATOOLS\KEILC7.0\C51\BIN\C51.EXE 7LEDShow.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /****************************************/
2 /* Copyright (c) 2004, 通信工程学院戴佳 */
3 /* All rights reserved. */
4 /* 作 者:戴佳 */
5 /****************************************/
6
7 /* 4位8段数码管分别动态显示“1234”, */
8
9 #include "7LEDShow.h"
10
11 void main()
12 {
13 1 DIGPORT = 0; // 关闭显示
14 1
15 1 TMOD = 0x01; // T0工作方式1
16 1
17 1 /* 2ms 定时设置 */
18 1 time0_tmp = 65536-time0*fosc/12;
19 1 TH0 = (time0_tmp/256);
20 1 TL0 = (time0_tmp%256);
21 1
22 1 TR0 = 1;
23 1 ET0 = 1;
24 1 EA = 1;
25 1
26 1 digbit = 0x01; // 从第一位数码管开始
27 1 wordbuf[3] = 4;
28 1 wordbuf[2] = 3;
29 1 wordbuf[1] = 2;
30 1 wordbuf[0] = 1;
31 1
32 1 while(1);
33 1
34 1 }
35
36 /* 定时器0中断服务子程序,定时动态扫描显示 */
37 void time0_int(void) interrupt 1
38 {
39 1 TH0 = (time0_tmp/256);
40 1 TL0 = (time0_tmp%256);
41 1 display();
42 1 }
43
44
45 /* 根据共阴极字型编码表获取0~9,A~B字型代码 */
46 uchar getcode(uchar i)
47 {
48 1 uchar p;
49 1 switch (i)
50 1 {
51 2 case 0: p=0x3f; break; /* 0 */
52 2 case 1: p=0x06; break; /* 1 */
53 2 case 2: p=0x5B; break; /* 2 */
54 2 case 3: p=0x4F; break; /* 3 */
55 2 case 4: p=0x66; break; /* 4 */
C51 COMPILER V7.02b 7LEDSHOW 12/10/2005 17:44:39 PAGE 2
56 2 case 5: p=0x6D; break; /* 5 */
57 2 case 6: p=0x7D; break; /* 6 */
58 2 case 7: p=0x07; break; /* 7 */
59 2 case 8: p=0x7F; break; /* 8 */
60 2 case 9: p=0x67; break; /* 9 */
61 2 case 10: p=0x77; break; /* A */
62 2 case 11: p=0x7C; break; /* B */
63 2 case 12: p=0x39; break; /* C */
64 2 case 13: p=0x5E; break; /* D */
65 2 case 14: p=0x79; break; /* E */
66 2 case 15: p=0x71; break; /* F */
67 2 default: break;
68 2 }
69 1 return(p);
70 1 }
71
72 /* 显示函数 */
73 void display(void)
74 {
75 1 uchar i;
76 1 switch (digbit)
77 1 {
78 2 case 1: i=0;break;
79 2 case 2: i=1;break;
80 2 case 4: i=2;break;
81 2 case 8: i=3;break;
82 2 default: break;
83 2 }
84 1
85 1 DIGPORT = 0; // 关闭显示
86 1 WORDPORT = getcode(wordbuf[i]); // 送字型码
87 1 DIGPORT = digbit; // 送字位码
88 1
89 1 if (digbit<0x08)
90 1 digbit = digbit*2;
91 1 else
92 1 digbit = 0x01;
93 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 317 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 ----
IDATA SIZE = 2 ----
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 + -