📄 红外.lst
字号:
C51 COMPILER V8.02 红外 05/03/2007 18:27:29 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 红外
OBJECT MODULE PLACED IN 红外.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 红外.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<at89x51.h>
2 #include<absacc.h>
3 #include<INTRINS.H>
4 #define SEGMENT P0
5 #define BIT_LED P2
6 #define fosc 12
7 #define time0 2600 //26us
8
9 unsigned char data display_bit,display_buffer[8];
10 unsigned char data time0_h,time0_l;
11 unsigned int idata time0_times;
12 unsigned char data send_data[6]={0xc1,0x60,0x11,0x22,0x33,0x55};
13
14 unsigned int showdata;
15 unsigned char data TEMP;
16 int *point;
17 unsigned int shdata;
18 unsigned int keyin;
19 unsigned int kbempty;
20
21 sbit C =0xA0;
22 sbit ACC_0=0xE0;
23 sbit ACC_1=0XE1;
24 sbit ACC_2=0XE2;
25 sbit ACC_3=0XE3;
26 sbit ACC_4=0XE4;
27 sbit ACC_5=0XE5;
28 sbit ACC_6=0XE6;
29 sbit ACC_7=0XE7;
30 sbit dataout=0xB7;//P3.7
31
32 unsigned char get_code(unsigned char i);
33 void display(void);
34 void breakdata(void);
35 void unitial(void);
36 void delay13us(void);
37 void send(void);
38 void getkeyin(void);
39
40 /**************************主程序*****************************/
41 main()
42 {
43 1
44 1 unitial();
45 1 _nop_();
46 1 delay13us();
47 1 ACC_0=1;
48 1 ACC_1=0;
49 1 ACC_2=1;
50 1 keyin=ACC;
51 1 send();
52 1 while(1)
53 1 {
54 2 getkeyin();
55 2 display();
C51 COMPILER V8.02 红外 05/03/2007 18:27:29 PAGE 2
56 2
57 2 }
58 1
59 1 }
60 /**************初始化******************************/
61 void unitial(void)
62 {
63 1 //point=&display_buffer[0];
64 1 display_bit=0x01;
65 1 BIT_LED=0;
66 1 TMOD=0X02;
67 1 // time0_times=65536-time0*fosc/12;
68 1 // time0_h=(time0_times/256);
69 1 // time0_l=(time0_times%256);
70 1 //TH0=time0_h;
71 1 //TL0=time0_l;
72 1 TH0=0X00;
73 1 TL0=0XC0;
74 1 TR0=1;
75 1 EA=1;
76 1 //ET0=1;
77 1 dataout=1;
78 1 P3_2=1;
79 1 P3_7=1;
80 1 shdata=keyin;
81 1 }
82 /*********************************************/
83 void time0_int(void) interrupt 1
84 {
85 1 //TH0=time0_h;
86 1 //TL0=time0_l;
87 1 P1=~P1;
88 1 }
89 /***********************************************/
90 unsigned char get_code (unsigned char i)
91 {
92 1 unsigned char p;
93 1 switch(i)
94 1 {
95 2 case 0: p=0x3F; break; /*0*/
96 2 case 1: p=0x06; break; /*1*/
97 2 case 2: p=0x5B; break; /*2*/
98 2 case 3: p=0x4F; break; /*3*/
99 2 case 4: p=0x66; break; /*4*/
100 2 case 5: p=0x6D; break; /*5*/
101 2 case 6: p=0x7D; break; /*6*/
102 2 case 7: p=0x07; break; /*7*/
103 2 case 8: p=0x7F; break; /*8*/
104 2 case 9: p=0x67; break; /*9*/
105 2 case 10: p=0x77; break; /*A*/
106 2 case 11: p=0x7C; break; /*B*/
107 2 case 12: p=0x39; break; /*C*/
108 2 case 13: p=0x5E; break; /*D*/
109 2 case 14: p=0x79; break; /*E*/
110 2 case 15: p=0x71; break; /*F*/
111 2 case 16: p=0x00; break; /*灭灯*/
112 2 default: break;
113 2 }
114 1 return ((~p) & 0x7F);
115 1 }
116
117 /**************************************************/
C51 COMPILER V8.02 红外 05/03/2007 18:27:29 PAGE 3
118 void display(void)
119 {
120 1 int f;
121 1 showdata=keyin;
122 1 breakdata();
123 1 for(f=0;f<6;f++)
124 1 {unsigned char i;
125 2 switch(display_bit)
126 2 {
127 3 case 1:i=0;break;
128 3 case 2:i=1;break;
129 3 case 4:i=2;break;
130 3 case 8:i=3;break;
131 3 case 16:i=4;break;
132 3 // case 32:i=5;break;
133 3 // case 64:i=6;break;
134 3 // case 128:i=7;break;
135 3 default:break;
136 3 }
137 2 BIT_LED=0;
138 2 SEGMENT=get_code(display_buffer[i]);
139 2 TEMP=SEGMENT;
140 2 BIT_LED=display_bit;
141 2 if(display_bit<0x32)
142 2 {display_bit=display_bit*2;}
143 2 else display_bit=0x01;
144 2 }
145 1 }
146
147 /******************数据拆分**********************/
148 void breakdata(void)
149 { int j;
150 1 for(j=0;j<6;j++)
151 1 {
152 2 display_buffer[j]=showdata%10;
153 2 showdata=showdata/10;
154 2 //*(point+1);
155 2 }
156 1
157 1 }
158 /*******************************延时13us*********************************/
159 void delay13us(void)
160 { _nop_();
161 1 _nop_();
162 1 _nop_();
163 1 _nop_();
164 1 _nop_();
165 1 _nop_();
166 1 _nop_();
167 1 }
168 /**************************数据发送程序********************************/
169 void send (void)
170 { int n;
171 1 unsigned p;
172 1 int q;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -