完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
得发送多次指令经过一段时间 才工作 关闭工作状态 也得发送多次指令经过一段时间
这是代码;#include __CONFIG(0x0182); __CONFIG(0x38FF); //芯片配置字 #define uint unsigned int #define uchar unsigned char void US_delay(uint i); void mcu_init(void); void LED(); void interrupt usart(void); unsigned char rece[11]; char jud=0; uchar n=0; void main() { mcu_init(); //USART初始化 //LED(); while(1) { if(jud==1) { if((rece[3]==0x12)&&(rece[5]==0x01)) { switch(rece[6]) { case 0x01: TRISC3=0,RC3=1;break; //5号开 case 0x00: TRISC3=0,RC3=0;break; //5号关 case 0x03: TRISC3=0,RC3=1;break; //5号开 case 0x02: TRISC3=0,RC3=0;break; //5号关 case 0x05: TRISC3=0,RC3=1;break; //5号开 case 0x04: TRISC3=0,RC3=0;break; //5号关 case 0x07: TRISC3=0,RC3=1;break; //5号开 case 0x06: TRISC3=0,RC3=0;break; //5号关 case 0x09: TRISA2=0,RA2=1;break; //6号开 case 0x08: TRISA2=0,RA2=0;break; //6号关 case 0x0B: TRISA0=0,RA0=1;break; //7号开 case 0x0A: TRISA0=0,RA0=0;break; //7号关 case 0x0D: TRISA1=0,RA1=1;break; //8号开 case 0x0C: TRISA1=0,RA1=0;break; //8号关 } jud=0; } else if((rece[3]==0x02)&&(rece[5]==0x01)) { switch(rece[6]) { case 0x00: TRISC1=0,RC1=1;break; //1号开 case 0x01: TRISC1=0,RC1=0;break; //1号关 case 0x02: TRISC2=0,RC2=1;break; //2号开 case 0x03: TRISC2=0,RC2=0;break; //2号关 case 0x04: TRISC4=0,RC4=1;break; //3号开 case 0x05: TRISC4=0,RC4=0;break; //3号关 case 0x06: TRISC5=0,RC5=1;break; //4号开 case 0x07: TRISC5=0,RC5=0;break; //4号关 } jud=0; } else { jud=0; } } } } void mcu_init(void) { ANSELB=0X00; ANSELC=0X00; ANSELA=0X00; APFCON0=0x00; TRISB=0x20; TRISC=0Xff; //设置RC口方向 TRISA=0xff; SPBRG=0X19; //设置波特率为9600BPS TXSTA=0X24; //使能串口发送,选择高速波特率 RCSTA=0X90; //使能串口工作,连续接收 RCIE=0X1; //使能接收中断 GIE=0X1; //开放全局中断 PEIE=0X1; //使能外部中断 RB7 =0; //RE_DE低电平,平时为接收状态 } void interrupt usart(void) { //判断是否USART中断 if(RCIE&&RCIF) //判断是否为串口接收中断 { RCIF=0; rece[n++]=RCREG; if(n==11) { jud=1; n=0; } } } /***************毫秒级延时*******************/ void US_delay(uint i) { uchar j; while(i--) { j=3; while(j--); } } 求解 各位大佬 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
求解外围电路实现的是4脚给持续低电平复位并正常工作,高电平不工作的原因
1930 浏览 1 评论
2999 浏览 3 评论
PIC1946程序有一个变量在运行过程中恢复初始值其他变量保持不变
2185 浏览 2 评论
2570 浏览 0 评论
PIC16F1825的RC5引脚,在主程序中操作无效,在中断中可以改变是为什么?
3699 浏览 5 评论
651浏览 0评论
用XC8编译PIC18F25K80时提示下面Error,求怎么解决这个问题
3163浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-27 10:06 , Processed in 0.573685 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号