📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 02/08/2009 11:41:36 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c OPTIMIZE(4,SPEED) BROWSE DEBUG OBJECTEXTEND
line level source
1 /*红外遥控器解码仿真*/
2 /*作者:田开坤*/
3 /*时间:2009年2月*/
4
5 #include <reg52.h>
6 #include "irm_int.h"
7
8 extern void led_disp(unsigned int number);
9
10 /*数码管地址定义*/
11 #define SEG_Q XBYTE[0xffec]//千位,LEFT
12 #define SEG_B XBYTE[0xffed]//百位
13 #define SEG_S XBYTE[0xffee]//十位
14 #define SEG_G XBYTE[0xffef]//个位,RIGHT
15
16 void main()
17 {
18 1 irm_int2_init();
19 1 led_disp(2009);
20 1
21 1 while(1)
22 1 if(irm_code!=0xff) {
23 2 led_disp(irm_code);
24 2 irm_code=0xff;
25 2 }
26 1 }
27
28 //通用数码管显示函数,传入数据0~9999
29 void led_disp(unsigned int number)
30 {
31 1 unsigned char code tab1[20]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};
32 1 unsigned char temp,flag=0;
33 1
34 1 if(number < 10000)
35 1 {
36 2 //千位数码管
37 2 temp = number/1000%10;
38 2 if (temp) {
39 3 SEG_Q = tab1[temp];
40 3 flag = 1;
41 3 }
42 2 else {
43 3 SEG_Q = 0xff;//数码管熄灭
44 3 flag = 0;
45 3 }
46 2
47 2 //百位数码管
48 2 temp = number/100%10;
49 2 if(flag | temp) {
50 3 SEG_B = tab1[temp];
51 3 flag = 1;
52 3 }
53 2 else {
54 3 SEG_B = 0xff;//数码管熄灭
55 3 flag = 0;
C51 COMPILER V8.02 MAIN 02/08/2009 11:41:36 PAGE 2
56 3 }
57 2
58 2 //十位数码管
59 2 temp = number/10%10;
60 2 if(flag | temp) SEG_S = tab1[temp];
61 2 else SEG_S = 0xff;//数码管熄灭
62 2
63 2 //个位数码管
64 2 temp = number%10;
65 2 SEG_G = tab1[temp];
66 2 }
67 1 else {
68 2 SEG_Q = 0xbf;//"-"
69 2 SEG_B = 0xbf;
70 2 SEG_S = 0xbf;
71 2 SEG_G = 0xbf;
72 2 }
73 1 }
74
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 208 ----
CONSTANT SIZE = 20 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 2
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 + -