?? main.lst
字號:
C51 COMPILER V8.02 MAIN 04/14/2007 08:25:46 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 BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "STC89C51RC.H"
2
3 sbit DQ = P4^3;
4 sbit SPK = P1^0;
5
6
7 #include <absacc.h>
8
9 #define seg1 XBYTE[0xffec]
10 #define seg2 XBYTE[0xffed]
11 #define seg3 XBYTE[0xffee]
12 #define seg4 XBYTE[0xffef]
13 unsigned char IRMcode[4];
14
15 unsigned char code ledmap[]= //共陰LED數碼管譯碼表
16 {
17 0x3f,0x06,0x5b,0x4f,0x66, //0,1,2,3,4,
18 0x6d,0x7d,0x07,0x7f,0x6f, //5,6,7,8,9,
19 0x77,0x7C,0x39,0x5E,0x79, //A,b,C,d,E,
20 0x71, //F,
21 };
22
23 void delay(unsigned int);
24
25 void main()
26 {
27 1 EA = 1;
28 1 EX2 = 1;
29 1 while(1)
30 1 {
31 2
32 2 if (IRMcode[2]==~IRMcode[3]){
33 3 seg1 = ~ledmap[IRMcode[2]/100];
34 3 seg2 = ~ledmap[IRMcode[2]/10%10];
35 3 seg3 = ~ledmap[IRMcode[2]%10];
36 3 seg4 = 0xff;//熄滅
37 3 }
38 2 }
39 1 }
40
41 void Sound(void)
42 {
43 1 SPK = 0;
44 1 delay(10000);
45 1 SPK = 1;
46 1 }
47
48 void IRMint(void) interrupt 6 using 2
49 {
50 1 unsigned char count;
51 1 unsigned int count1;
52 1 unsigned char i,j;
53 1 EA = 0;
54 1 count = 9;
55 1 while(--count)
C51 COMPILER V8.02 MAIN 04/14/2007 08:25:46 PAGE 2
56 1 {
57 2 delay(100);//440us
58 2 if(DQ){EA = 1;return;}
59 2 }
60 1 while(DQ==0);//通過引導碼余下的低電平
61 1 //以上完成引導碼4.5ms的低電平檢測
62 1
63 1 count = 9;
64 1 count1 = 0;
65 1 while(--count)
66 1 {
67 2 delay(100);//440us
68 2 if(DQ==0){EA = 1;return;}
69 2 }
70 1 while(DQ==1)//通過引導碼余下的高電平
71 1 {
72 2 if(count1++>1000) {
73 3 P1=0x55;EA = 1;return;}
74 2 }
75 1 //以上完成引導碼4.5ms的高電平檢測
76 1
77 1 count1 = 0;
78 1 for(j=0;j<4;j++)//有效字節數設定
79 1 {
80 2 for(i=0;i<8;i++)//字節bit數
81 2 {
82 3 while(DQ==0);//通過編碼低電平
83 3 delay(200);//延時判斷編碼高電平維持長度
84 3 IRMcode[j]<<=1;
85 3 if(DQ)IRMcode[j]|=0x01;
86 3 while(DQ==1){//通過編碼余下的高電平
87 4 if(count1++>2000){EA = 1;return;}
88 4 }
89 3 }
90 2 }
91 1
92 1 Sound();
93 1 EA = 1;
94 1 }
95
96 //通用延時函數
97 //22.1184,10 = 48.4 us (5us+43.4)
98 //22.1184,100 = 439 us (43.4*10+5)
99 //22.1184,1000 = 4345 us(43.4*100+5)
100 //22.1184,10000 = 43450 us(43.45*1000+5)
101 void delay(unsigned int t)
102 {
103 1 while(--t);
104 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 299 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 5
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 + -