📄 bb.lst
字号:
C51 COMPILER V8.02 BB 04/17/2008 19:49:59 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE BB
OBJECT MODULE PLACED IN bb.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE bb.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <REG931.H>
2 #include <INTRINS.H>
3
4 typedef unsigned char uchar;
5 typedef unsigned int uint;
6
7 #define ClkDown OCC = 0 //P1.7
8 #define ClkUp OCC = 1
9
10 #define DataLow KB0 = 0 //P0.0
11 #define DataHigh KB0 = 1
12
13 #define LEDown OCD = 0 //P2.1
14 #define LEUp OCD = 1
15
16
17 sbit LED1 = P2^2;
18 sbit LED2 = P2^3;
19 sbit KB = P1^6;
20 sbit adcs = P2^4; //out
21 sbit dout = P2^3; //in
22
23 sbit adclk = P1^4; //out
24
25 // 间接访问方式地址定义
26 // 控制引脚定义
27 sbit RS =P1^7;
28 sbit RW =P2^1;
29 sbit Elcm=P2^0;
30
31
32
33 ////////////////////////////////////////////////////////////////////////////
34 #define DataPort P0// 数据端口
35 //instruction
36 #define Busy 0x80
37 #define Work_M 0x38//n=1,f=0
38 #define Cls 0x01
39 #define Input_M 0x06//i/d=1 ac++ s=0 screen move=off
40 #define Screen_Off 0x08
41 #define Disp_M 0x0c//d=1 disp=on c=0 cursor=off
42 #define Ddram_Al1 0x80;
43 #define Ddram_Al2 0xc0;//0x80+0x40
44 #define Wait1us _nop_();
45 #define Wait2us {_nop_();_nop_();}
46 #define Wait4us {Wait2us;Wait2us;}
47 #define Wait8us {Wait4us;Wait4us;}
48 #define Wait10us {Wait8us;Wait2us;}
49
50
51
52 /* 设为全局变量 */
53 unsigned char com,dat;
54
55
C51 COMPILER V8.02 BB 04/17/2008 19:49:59 PAGE 2
56
57 ///////////////////////////////////////////////
58 uchar dispc[2][16]=
59 {
60 ' ',' ','O','U','T','P','U','T',' ','P','O','W','E','R',' ',' ',
61 ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','d','B','m',' ',' ',' '
62 };
63
64 uchar low[2][16]=
65 {
66 ' ',' ','O','U','T','P','U','T',' ','P','O','W','E','R',' ',' ',
67 ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','d','B','m',' ',' ',' '
68 };
69 uchar pllfreq[6]={2,0,8,0,0,0};
70 uchar pllstate=1;
71 /////////////////////////////////////////
72 code unsigned char ctab[16]={'0','1','2','3','4','5','6','7','8','9','a','b','c','<','o','w'};
73
74 /////////////////////////////////////////
75
76
77
78 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
79 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
80 uchar rflag=0; //定义读标志
81 uchar sflag=0; //定义发送标志
82
83 ///////////////////
84 #define SCOUNT 10
85 #define RCOUNT 10 //note : cause the invalid ip --> 0000
86 //idata <256 data <128 bdata bit pdata movx @ri xdata movx @dptr
87 unsigned char data countsms;
88
89 unsigned char data rpoint;//point the next address
90 unsigned char data spoint;
91 //**********************
92 unsigned char idata ssbuf[SCOUNT+1];
93 //**********************
94 unsigned char data rbuf[RCOUNT+1];
95 uchar rtemp;
96
97 //======================================================================
98 //串口接收中断
99 void UART_ISR(void) interrupt 4 using 3//当接收完一个字节RI置1进入Recieve中断
100 {
101 1 rtemp=SBUF; //保存所读取的数据
102 1 RI=0; //RI清0以等待下次发送 // set flag for polling in main loop
103 1
104 1 //rflag--1 已接收到AA,2--命令字节已接收到
105 1 if (rflag==1)
106 1 {
107 2 rbuf[rpoint]=rtemp;
108 2 if (rpoint<RCOUNT)
109 2 {
110 3 rpoint++;
111 3 }
112 2 }
113 1 if (rtemp==0xaa)
114 1 {
115 2 rpoint=0;
116 2 rflag=1;
117 2 }
C51 COMPILER V8.02 BB 04/17/2008 19:49:59 PAGE 3
118 1 }
119
120 //=======================================================================
121 //串口发送
122 void sendm(unsigned char sl)
123 {
124 1 EA=0;//dellete????????????????????????????duplex
125 1 for(spoint=0;spoint<sl;spoint++) // send string
126 1 {
127 2 // clear transmit interrupt flag
128 2 SBUF=ssbuf[spoint]; //start sending one byte
129 2 while (!TI);
130 2 TI=0;
131 2 // wait until sent
132 2 }
133 1 EA=1;
134 1 }
135
136 //=======================================================================
137 //串口初始化
138 void UART_init(void)
139 {
140 1 SCON =0x50; //SCON: serail mode 1, 8-bit UART, enable ucvr
141 1 SSTAT=0x60; // separate Rx / Tx interrupts
142 1
143 1 BRGR0=0xF0; // setup BRG for 9600 baud @ 7.373MHz internal RC oscillator
144 1 BRGR1=0x02;
145 1
146 1
147 1 BRGCON = 0x03; // enable BRG
148 1
149 1 //header of sending string
150 1 rpoint=0;
151 1 spoint=0;
152 1 rbuf[RCOUNT]=0;
153 1 ssbuf[SCOUNT]=0;
154 1 ssbuf[0]=0xaa;
155 1
156 1 rflag=0;
157 1
158 1
159 1 ESR=1; //ESR=Enable Serial Recieve
160 1 EST=1; //EST=Enable Serial Transmit
161 1 // EA=1; //使能中断
162 1
163 1 }
164
165 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
166 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
167
168 void initio(void)
169 {
170 1
171 1 P0M1 = 0x00;
172 1 P0M2 = 0x00;//P0
173 1
174 1 P1M1 = 0x2c;
175 1 P1M2 = 0x0c; //P1.2 P1.3 0C OUTPUT
176 1
177 1 P2M1 = 0x00;
178 1 P2M2 = 0x00;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -