📄 ynxfzd.lst
字号:
C51 COMPILER V8.02 YNXFZD 01/18/2009 18:58:53 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE YNXFZD
OBJECT MODULE PLACED IN ynxfzd.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ynxfzd.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <AT89X52.H>
2
3
4 unsigned char code DAT[11]={0xfd,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0x00};
5 unsigned char code DIG[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
6 /* led"=",0x5b"[",0x25"% 空秤"0x24重秤"$"0x23有卡"#"};*/
7 void delay(int ) ;
8 sbit SCL=P2^4;
9 sbit SDA=P2^5;
10
11
12 sbit SE=P1^0; //4寸数码管
13 sbit SCK=P1^1;
14 sbit RCK=P1^2;
15
16 sbit SE1=P1^4; //汉字屏
17 sbit SCK1=P1^5;
18 sbit RCK1=P1^6;
19
20 sbit LED=P1^3; //指示灯
21 sbit DOT=P1^7; //冒号
22
23 sbit KEY=P2^7; //键盘
24 sbit IRB=P2^6; //红外
25
26 sbit GREEN=P2^3;//绿灯
27 sbit RED=P2^2;//红灯
28 sbit UP=P2^0;//升栏杆机
29 sbit DOWN=P2^1;//降栏杆机
30
31 unsigned char str1[16];
32 unsigned char str2[16];
33 unsigned char str3[16];
34 unsigned char str4[16];
35 unsigned char str5[16];
36 unsigned char str6[16];
37 unsigned char str7[16];
38 unsigned char idata str8[16];
39
40 int tj_bytes;
41 unsigned char g_232,hz,g_232_led,led,zt;
42 //bit hz;
43
44
45 void out_disp_8(unsigned char);
46 void out_disp_led(unsigned char);
47 unsigned char led_8(char);
48
49 void init_rs232();
50 void tx_char( char );
51 unsigned char rx_char();
52
53
54 //unsigned char s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16,s17,s18,s19,s20,s21,s22,s23,s24
-,s25,s26,s27,s28,s29,s30,s31,s32,
C51 COMPILER V8.02 YNXFZD 01/18/2009 18:58:53 PAGE 2
55 // s33,s34,s35,s36,s37,s38,s39,s40,s41,s42,s43,s44,s45,s46,s47,s48,s49,s50,s51,s52,s53,s54,s
-55,s56,s57,s58,s59,s60,s61,s62,s63;
56
57
58
59 void main()
60 { // unsigned char dat1,dat2,zt,i;
61 1 delay(5000);
62 1 //定时器设置
63 1 TH0=0xfb;
64 1 TL0=0x30;
65 1 IE=0x82;
66 1
67 1 TMOD=0x20;//
68 1
69 1 EA=1;
70 1 TR0=1;
71 1 init_rs232();
72 1 ET1=1;
73 1 ES=1;
74 1 IP=0x10;
75 1 KEY =1;
76 1 GREEN =1;/*绿灯*/RED=0;/*红灯*/UP=1;/*栏杆机升*/DOWN=0;/*栏杆机降*/
77 1
78 1 P0=0x00;
79 1 out_disp_8(0x00);
80 1 out_disp_8(DAT[0]);
81 1 out_disp_8(DAT[0]);
82 1 out_disp_8(DAT[0]);
83 1 out_disp_8(DAT[0]);
84 1 out_disp_8(DAT[0]);
85 1 out_disp_8(DAT[0]);
86 1 out_disp_8(DAT[0]);
87 1 out_disp_8(DAT[0]);
88 1
89 1 RCK=0;RCK=1;
90 1
91 1 while (1){
92 2
93 2 LED=~LED; delay(2000);}
94 1
95 1
96 1
97 1
98 1
99 1 }
100
101
102
103
104 void init_rs232()
105 { /*PCON=0x80; 波特率加倍 */
106 1 //PCON&=0xef; // 波特率不加倍
107 1 SCON=0x50;
108 1 TMOD=0x20;
109 1 TH1=0xfd;
110 1 TL1=0xfd;
111 1 TR1=1;
112 1 TI=1;
113 1
114 1 }
115
C51 COMPILER V8.02 YNXFZD 01/18/2009 18:58:53 PAGE 3
116
117
118
119 void delay(int t) {
120 1 int i;
121 1 for (i=0;i<t;i++) ;
122 1 }
123
124 void out_disp_8(unsigned char dd) {
125 1
126 1 unsigned char i,k;
127 1 for (i=0;i<8;i++) { k=dd & 0x01;SE=k;SCK=1;dd=dd>>1;SCK=0; }
128 1 }
129
130 void out_disp_led(unsigned char dd) {
131 1 unsigned char i,k;
132 1 for (i=0;i<8;i++) { k=dd & 0x80;SE1=k;SCK1=1;dd=dd<<1;SCK1=0; }
133 1 }
134
135 unsigned char led_8( char dd){
136 1 unsigned char i;
137 1 i=0;
138 1 while(1) {if(dd==DIG[i]) break;
139 2 i++;if(i>9) break;}
140 1 if(i>9) return(DAT[0]);
141 1 return DAT[i];}
142
143
144 void get_disp (void) interrupt 4 using 0
145
146 {
147 1 unsigned char rx;
148 1 TR0=0;
149 1 if((SCON & 0x01)==0x01) //如果是串口输入引起中断
150 1 {
151 2 rx= SBUF;
152 2 if( rx==0x5b) {g_232=0;hz=1;led=0;}
153 2
154 2
155 2 if (rx==0x23) zt=1;
156 2 if((rx==0x25) && (zt==1) && (IRB==1))/*空秤*/ {GREEN=1;/*绿灯*/RED=0;/*红灯*/UP=1;/*栏杆
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -