📄 baozhan_one.lst
字号:
C51 COMPILER V7.06 BAOZHAN_ONE 05/23/2007 15:14:55 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE BAOZHAN_ONE
OBJECT MODULE PLACED IN baozhan_one.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE baozhan_one.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include"intrins.h"
2 #include"STC89C58RD.h"
3 #include"baozhan_one.h"
4
5
6 unsigned char idata cur_state=0; //全局变量,指示当前站点状态信息
7 unsigned int xdata isd_addr[30]; //全局变量,指示当前录放音地址信息(行数)
8 unsigned char idata init_R_addr=1; //标志位,指示是否需要初始化录音地址,1是0否
9
10
11 void main()
12 {
13 1
14 1 init();
15 1 EA=0;
16 1 enable_in_ram(); //允许内部1024byteRAM,允许ALE.默认是允许的
17 1 dis_ale(); //禁止ale,允许内部扩展1024byteRAM
18 1 init_isd();
19 1 dis_low=1; //关数码管显示
20 1 dis_high=1;
21 1 EA=1;
22 1
23 1
24 1
25 1 while(1)
26 1 {
27 2 if(rec_ctrl==0) //录音键按下
28 2 {
29 3 delay_kb(10); //延时,消抖
30 3 if(rec_ctrl==0)
31 3 {
32 4 isd_rec();
33 4 init_R_addr=0;
34 4 }
35 3 else
36 3 break;
37 3 }
38 2 else
39 2 {
40 3 kbscan();
41 3 switch(kbscan())
42 3 {
43 4 case 0: cur_state=0;
44 4 isd_play(isd_addr);
*** WARNING C214 IN LINE 44 OF BAOZHAN_ONE.C: 'Argument': conversion: pointer to non-pointer
45 4 break;
46 4 case 1: cur_state=1;
47 4 isd_play(isd_addr);
*** WARNING C214 IN LINE 47 OF BAOZHAN_ONE.C: 'Argument': conversion: pointer to non-pointer
48 4 break;
49 4 case 2: cur_state=2;
50 4 isd_play(isd_addr);
*** WARNING C214 IN LINE 50 OF BAOZHAN_ONE.C: 'Argument': conversion: pointer to non-pointer
51 4 break;
52 4 case 3: cur_state=3;
C51 COMPILER V7.06 BAOZHAN_ONE 05/23/2007 15:14:55 PAGE 2
53 4 isd_play(isd_addr);
*** WARNING C214 IN LINE 53 OF BAOZHAN_ONE.C: 'Argument': conversion: pointer to non-pointer
54 4 break;
55 4 case 4: cur_state=4;
56 4 isd_play(isd_addr);
*** WARNING C214 IN LINE 56 OF BAOZHAN_ONE.C: 'Argument': conversion: pointer to non-pointer
57 4 break;
58 4 case 5: cur_state=5;
59 4 isd_play(isd_addr);
*** WARNING C214 IN LINE 59 OF BAOZHAN_ONE.C: 'Argument': conversion: pointer to non-pointer
60 4 break;
61 4 case 6: cur_state=6;
62 4 isd_play(isd_addr);
*** WARNING C214 IN LINE 62 OF BAOZHAN_ONE.C: 'Argument': conversion: pointer to non-pointer
63 4 break;;
64 4 case 7: cur_state=7;
65 4 isd_play(isd_addr);
*** WARNING C214 IN LINE 65 OF BAOZHAN_ONE.C: 'Argument': conversion: pointer to non-pointer
66 4 break;
67 4 case 8: cur_state=8;
68 4 isd_play(isd_addr);
*** WARNING C214 IN LINE 68 OF BAOZHAN_ONE.C: 'Argument': conversion: pointer to non-pointer
69 4 break;
70 4 case 9: cur_state--;
71 4 isd_play(isd_addr);
*** WARNING C214 IN LINE 71 OF BAOZHAN_ONE.C: 'Argument': conversion: pointer to non-pointer
72 4 break;
73 4 case 10:isd_play(isd_addr);
*** WARNING C214 IN LINE 73 OF BAOZHAN_ONE.C: 'Argument': conversion: pointer to non-pointer
74 4 break;
75 4 case 11:cur_state++;
76 4 isd_play(isd_addr);
*** WARNING C214 IN LINE 76 OF BAOZHAN_ONE.C: 'Argument': conversion: pointer to non-pointer
77 4 break;
78 4 default:break;
79 4 }
80 3 }
81 2 }
82 1 }
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98 void init(void) //初始化系统参数
99 {
100 1 PCON=0x00; //smod=0;
101 1 SCON=0x40; //串口工作方式1,8位UART,ren=0禁止接收
102 1 TMOD=0x21; //定时器1工作方式2,8位自动重载T/C
103 1 //定时器0工作方式1,16位定时器,用于定时产生中断进行显示扫描
104 1 TH1=253; //TH1=256-(28800/baudrate),9600bps
105 1 TL1=253;
C51 COMPILER V7.06 BAOZHAN_ONE 05/23/2007 15:14:55 PAGE 3
106 1 TH0=0xf8; //定时器0定时2MS
107 1 TL0=0x30;
108 1
109 1 TR1=1; //启动T1
110 1 TR0=1; //启动T0
111 1 ET0=1; //开定时器0中断
112 1 ES=1; //开串口中断
113 1 EA=1; //开总中断
114 1 REN=1; //使能串口接收
115 1 }
116
117
118 void init_isd(void)
119 {
120 1 ss=1;
121 1 sclk=1;
122 1 rac=1;
123 1 int0=1;
124 1 }
125
126
127
128
129
130 void timer0(void) interrupt 1 using 2
131 {
132 1 unsigned char bitselect=0; //显示位切换标志位
133 1 unsigned char disply[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
134 1 0x88,0x83,0xc6,0xal,0x86,0x8e}; //字形数0-9,A-F;
135 1 static unsigned char cur_dpy;
136 1 cur_dpy=cur_state;
137 1
138 1 TH0=0xf8; //重装计数初值
139 1 TL0=0x30;
140 1
141 1 if(cur_dpy>=10&&cur_dpy<20)
142 1 {
143 2 dis_low=1; //关显示
144 2 dis_high=1;
145 2 cur_dpy-=10;
146 2 disdata=disply[cur_dpy]; //从p0口输出字形数
147 2 dis_low=0;
148 2 }
149 1 else
150 1 {
151 2 switch(bitselect)
152 2 {
153 3 case 0:
154 3 {
155 4 if(cur_dpy>=20&&cur_dpy<30)
156 4 {
157 5 dis_low=1;
158 5 cur_dpy-=20;
159 5 disdata=disply[cur_dpy];
160 5 dis_low=0;
161 5 }
162 4 else if(cur_dpy>=30&&cur_dpy<40)
163 4 {
164 5 dis_low=1;
165 5 cur_dpy-=30;
166 5 disdata=disply[cur_dpy];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -