📄 serial port_1602.lst
字号:
C51 COMPILER V8.08 SERIAL_PORT_1602 10/04/2008 08:31:09 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE SERIAL_PORT_1602
OBJECT MODULE PLACED IN serial port_1602.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE serial port_1602.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /**********************
2 编写时间:2008年09月28日
3 编辑:小鱼儿
4 功能:用串口通讯发送一个十六进制数,用1602显示,并有八个发光二极管
5 以二进制的形式点亮,其十六进值与1602显示一致。
6 ***********************/
7
8 #include "reg52.h" //头文件
9 #include "intrins.h"
10
11 #define uchar unsigned char
12 #define uint unsigned int
13 uchar a,b,flag,num;
14 sbit lcden=P3^4; //LCD使能位引脚定义
15 sbit lcdrs=P3^5; //LCD数据命令选择引脚定义
16 sbit dula=P2^6;//数码管段选
17 sbit wela=P2^7;//数码管位选
18 sbit beep=P2^3;//蜂鸣器引脚定义
19 uchar code table[]=" ";
20
21 void delay(uint z)//延时子程序
22 {
23 1 uint x,y;
24 1 for(x=z;x>0;x--)
25 1 for(y=125;y>0;y--);
26 1 }
27
28 /*************************
29 1602
30 **************************/
31 void write_com(uchar com) //写命令
32 {
33 1 lcdrs=0;
34 1 P0=com;
35 1 delay(1);
36 1 lcden=1;
37 1 delay(1);
38 1 lcden=0;
39 1 }
40
41 void write_data(uchar date) //写数据
42 {
43 1 lcdrs=1;
44 1 P0=date;
45 1 delay(1);
46 1 lcden=1;
47 1 delay(1);
48 1 lcden=0;
49 1 }
50
51 void init() //初始化
52 {
53 1 dula=0;
54 1 wela=0;
55 1 lcden=0;
C51 COMPILER V8.08 SERIAL_PORT_1602 10/04/2008 08:31:09 PAGE 2
56 1 write_com(0x38);//显示模式设置
57 1 write_com(0x0c);//不显示光标
58 1 write_com(0x06);
59 1 write_com(0x01);//显示清零
60 1 write_com(0x80+0x10);
61 1 }
62
63
64 void main()
65 {
66 1 init();
67 1 TMOD=0x20;//设置定时/计数器T1的工作方式为方式2
68 1 TH1=0xfd;
69 1 TL1=0xfd;
70 1 TR1=1;//运行控制位
71 1 SM0=0;
72 1 SM1=1;//SCON 串行口的工作方式为方式1
73 1 REN=1;//允许串行接受
74 1 EA=1; //开总中断
75 1 ES=1;//开串行口中断允许位
76 1 PCON=0x00;
77 1 beep=1;//关蜂鸣器
78 1 while(1)
79 1 {
80 2 // display1(SBUF);
81 2 delay(1);
82 2 write_com(0x80);
83 2 for(num=0;num<3;num++)
84 2 {
85 3 write_data(table[SBUF]); //第一行显示
86 3 delay(100);
87 3 }
88 2 if(flag==1)
89 2 {
90 3 ES=0;//
91 3 flag=0;
92 3 SBUF=a;
93 3 while(!TI);
94 3 TI=0;//TI为发送中断标志位,硬件置1,软件置0
95 3 ES=1;
96 3 }
97 2 }
98 1 }
99
100 void serial() interrupt 4
101 {
102 1 P1=SBUF;
103 1 a=SBUF;
104 1 flag=1;
105 1 RI=0;//接受中断标志位,硬件置1,软件置0
106 1 }
107
108
109
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 193 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 ----
C51 COMPILER V8.08 SERIAL_PORT_1602 10/04/2008 08:31:09 PAGE 3
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -