📄 scomm.lst
字号:
C51 COMPILER V8.02 SCOMM 05/12/2008 23:46:50 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE SCOMM
OBJECT MODULE PLACED IN scomm.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE scomm.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2 //ZC-51学习板实验源程序
3 //学习板和PC通信--串口通信实验
4 //http://www.ednchina.com/blog/zhichengdz/
5 //E-mail: zhicheng_dz@163.com
6
7 #include <reg52.h>
8 #include <main_.h>
9 #define uchar unsigned char
10 #define uint unsigned int
11
12 uchar chrec;
13 bit brec;
14
15 void commini (void) //串口初始化
16 {
17 1 SCON = 0x50; //01010000 //方式1,允许接收
18 1 TMOD |= 0x21; //8位自动装入常数的定时器
19 1 TH1 = 0xfd; //波特率产生器自动装入常数
20 1 TR1 = 1; //T1开始运行
21 1
22 1 ES = 1; //打开串口中断
23 1 EA=1; //打开全局中断
24 1 }
25
26 putbyte(unsigned char c) //放入一个字节到发送缓冲区
27 {
28 1 SBUF=c;
29 1 while(!TI);TI=0;
30 1 }
31
32 void putstring(uchar *puts) //发送一个定义在程序存储区的字符串到串口
33 {
34 1 for(;*puts!=0;puts++) //遇到停止符0结束
35 1 putbyte(*puts);
36 1 }
37
38 void serial () interrupt 4 //串口中断处理
39 {
40 1 if (RI)
41 1 {
42 2 RI = 0;
43 2 brec=1;
44 2 chrec=SBUF;
45 2 SBUF=chrec;
46 2 }
47 1 }
48 uchar code arrhex[]={"0123456789ABCDEF"};
49 void LCM1602 (uchar ch) //以十六进制显示从PC接收到的数据
50 { uchar cht;
51 1
52 1 cht=ch%16;
53 1 lcdchar (13,1,arrhex[cht]);
54 1
55 1 cht=ch/16;
C51 COMPILER V8.02 SCOMM 05/12/2008 23:46:50 PAGE 2
56 1 lcdchar (12,1,arrhex[cht]);
57 1 }
58 void main ()
59 {
60 1 commini (); //串口初始化
61 1
62 1 lcdreset(); //LCM初始化
63 1 lcdwda(0,0,"ZC-51 comm. Exp.");
64 1 lcdwda(0,1," rec. char: ");
65 1 putstring("ZC-51 communications Exp.");
66 1 while (1)
67 1 {
68 2 if (brec)
69 2 { brec=0;
70 3 LCM1602 (chrec); //以十六进制显示从PC接收到的数据
71 3 }
72 2 }
73 1 }
74
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 144 ----
CONSTANT SIZE = 77 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 1
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -