?? 串口通信有返回值.lst
字號:
C51 COMPILER V8.02 串口通信有返籣值 10/14/2010 13:46:06 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 串口通信有返籣值
OBJECT MODULE PLACED IN 串口通信有返回值.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 串口通信有返回值.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /********************************************************************
2 匯誠科技
3
4 實現功能:串口控制繼電器程序
5 使用芯片:AT89S52
6 晶振:11.0592MHZ
7 波特率:9600
8 編譯環境:Keil
9 作者:zhangxinchunleo
10 網站:www.ourhc.cn
11 淘寶店:匯誠科技 http://shop36330473.taobao.com
12 【聲明】此程序僅用于學習與參考,引用請注明版權和作者信息!
13
14 *********************************************************************/
15 /********************************************************************
16 單片機與PC機采用9針串口,MAX232通訊,波特率默認為9600.
17
18 單片機接收PC機發送的十六進制碼表如下:
19
20 01、全開:PC發送0xFF; 單片機返回0XFF;
21 02、全關:PC發送0X00; 單片機返回0X00;
22
23 03、第一路開:PC發送0x01;單片機返回0X01;
24 04、第二路開:PC發送0x02;單片機返回0X02;
25 05、第三路開:PC發送0x03;單片機返回0X03;
26 06、第四路開:PC發送0x04;單片機返回0X04;
27 19、輸入狀態查詢:PC發送0x55;單片機返回輸出狀態(返回值十六進制);
28 20、輸出狀態查詢:PC發送0xAA;單片機返回輸出狀態(返回值十六進制);
29 21、輸出取反指令:PC發送0X11;單片機返回0x11;
30
31
32
33
34
35
36 *********************************************************************/
37 #include<reg52.h> //庫文件
38 #define uchar unsigned char//宏定義無符號字符型
39 #define uint unsigned int //宏定義無符號整型
40 /********************************************************************
41 初始定義
42 *********************************************************************/
43
44 unsigned char dat; //用于存儲單片機接收發送緩沖寄存器SBUF里面的內容
45 /*定義八位出為單片機P2口*/
46 sbit K1=P2^0;
47 sbit K2=P2^1;
48 sbit K3=P2^2;
49 sbit K4=P2^3;
50
51 /*定義八位入為單片機P1口*/
52 sbit SB1=P1^0;
53 sbit SB2=P1^1;
54 sbit SB3=P1^2;
55 sbit SB4=P1^3;
C51 COMPILER V8.02 串口通信有返籣值 10/14/2010 13:46:06 PAGE 2
56
57
58 /********************************************************************
59 延時函數
60 *********************************************************************/
61 void delay(uchar t)
62 {
63 1 uchar i,j;
64 1 for(i=0;i<t;i++)
65 1 {
66 2 for(j=13;j>0;j--);
67 2 { ;
68 3 }
69 2 }
70 1 }
71
72 /********************************************************************
73 功能:串口初始化,波特率9600,方式1
74 *********************************************************************/
75 void Init_Com(void)
76 {
77 1 TMOD = 0x20;
78 1 PCON = 0x00;
79 1 SCON = 0x50;
80 1 TH1 = 0xFd;
81 1 TL1 = 0xFd;
82 1 TR1 = 1;
83 1 }
84 /********************************************************************
85 主函數
86 *********************************************************************/
87 void main()
88 {
89 1 Init_Com();//串口初始化
90 1 while(1)
91 1 {
92 2
93 2 if ( RI ) //掃描判斷是否接收到數據,
94 2 {
95 3 dat = SBUF; //接收數據SBUF賦與dat
96 3 RI=0; //RI 清零。
97 3
98 3 }
99 2 /********************************************************************
100 2 接收數據判斷函數
101 2 *********************************************************************/
102 2 switch(dat) //接收數據判斷
103 2 {
104 3 uchar k;
105 3 k=10;
106 3 case 0xff: P2=0X00;delay(k);SBUF = dat;dat=0xee;break; // 全開
107 3 case 0x00: P2=0XFF;delay(k);SBUF = dat;dat=0xee;break; // 全關
108 3
109 3
110 3 case 0x01: K1=0;delay(k);SBUF = dat;dat=0xee;break; // 第一路開
111 3 case 0x02: K2=0;delay(k);SBUF = dat;dat=0xee;break; // 第二路開
112 3 case 0x03: K3=0;delay(k);SBUF = dat;dat=0xee;break; // 第三路開
113 3 case 0x04: K4=0;delay(k);SBUF = dat;dat=0xee;break; // 第四路開
114 3
115 3
116 3 case 0xFE: K1=1;delay(k);SBUF = dat;dat=0xee;break; // 第一路關
117 3 case 0xFD: K2=1;delay(k);SBUF = dat;dat=0xee;break; // 第二路關
C51 COMPILER V8.02 串口通信有返籣值 10/14/2010 13:46:06 PAGE 3
118 3 case 0xFC: K3=1;delay(k);SBUF = dat;dat=0xee;break; // 第三路關
119 3 case 0xFB: K4=1;delay(k);SBUF = dat;dat=0xee;break; // 第四路關
120 3
121 3 case 0x55: SBUF = P1;delay(k);dat=0xee;break; // 讀輸入口狀態
122 3 case 0xAA: SBUF = P2;delay(k);dat=0xee;break; // 讀輸出口狀態
123 3
124 3 case 0x11: P2=~P2;delay(k);SBUF = dat;dat=0xee;break; // 輸出口取反
125 3
126 3 default:break; // 跳出
127 3 }
128 2
129 2 }
130 1 }
131
132 /********************************************************************
133 結束
134 *********************************************************************/
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 183 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 1
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 + -