📄 receive.lst
字号:
1: //*******************introduction******************************
2: /*下面程序主要目的是PC机向MCU发送一字符串,MCU把其中以0x55
3: 开始以0xAA结束,连续少于五个的且中间无0x55、0xAA的字符串返回,
4: 下面这段程序未完成若0xAA之前数大于五则这段字符不回传这个任务*/
5: //*************************************************************
6: #include <pic.h>
7: /////////////////////////////////////////////////
8: /*下面是对PIC状态字进行设置*/
9: __CONFIG(HS&UNPROTECT&PWRTDIS&BORDIS&WDTDIS&LVPDIS);
10: /////////////////////////////////////////////////
11: unsigned char data[10]; //接收与发送数据存取处
12: unsigned char in; //本次数据接收起始位置
13: unsigned char counter; //本次数据存储位置
14: unsigned char svnumber; //已存数据数
15: unsigned char renumber; //本次已接收数据个数
16: unsigned char out; //发送数的位置
17: unsigned char txendadd; //发送结束标志位
18: bit save; //数据接收状态标志位
19: bit send; //数据发送状态标志位
20: bit over; //存满一转标志位
21: /*下面一个函数是对各中断标志的设定*/
22: void initial()
23: {
24: TRISC=0x80; //RC端口RC6与RC7分别为输出与输入
25: TXSTA=0x24; //异步方式,高波特率,发送使能
26: SPBRG=0x19; //设定波特率为9600,系统时钟4MHZ
27: PIE1=0x30 ; //允许接收与发送中断
28: RCSTA=0x90; //设置连续接收数据
29: INTCON=0x00; //清除所有中断标志
30: INTCON=0xc0; //开总中断与外围设备中断
31: }
32:
33:
34: void main ()
35: {
36: initial();
37: TXREG=0;
38: save=0;
39: send=0;
40: in=0;
41: svnumber=0;
42: counter=0;
43: out=0;
44: while(1);
45: }
46:
47: void interrupt uasrt(void)
48: {
49: if(RCIE&RCIF==1) //是接收中断
50: {
51: if(save==0) //未进入接收状态
52: {if(RCREG==0x55) //判是否为0x55
53: save=1; //是则进入接收态
54: } /**********以下是接收态***************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -