完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
#define uchar unsigned char #define uint unsigned int #define T 10000 uchar i; ***it CLK1=P2^0; ***it CWB1=P2^1; ***it CLK2=P2^2; ***it CWB2=P2^3; ***it K1=P1^0; ***it K2=P1^1; ***it K3=P1^2; ***it K4=P1^3; /* 定时器0服务子程序 */ void time0() interrupt 1 // 用定时器0中断来产生CLK1时钟 { unsigned char a; TH0 = -T/256; TL0 = -T%256; a++; if(a=100) { CLK1 = ~CLK1; } } /* 定时器1服务子程序 */ void tim1() interrupt 3 // 用定时器1中断来产生CLK2时钟 { unsigned char b; TH1 = -T/256; TL1 = -T%256; b++; if(b=100) { CLK2= ~CLK2; } } /*串口初始化*/ void init_uart(void) { TMOD=0x21; TH1=0xfd; TL1=0xfd; SCON=0x50; PCON=0x00; TR1=1; ES=1; } /* 主程序 */ void main() { EA=1; ET0=1; ET1=1; init_uart(); while(1) { if(RI==1) //查看是否接收到数据 { i=SBUF; //读取数据 RI=0; } //清除标志位 switch(i) { case 0x01: TH0 = -T/256; TL0 = -T%256; TR0=1; break; case 0x02: TR0=0; break; case 0x03: CWB1=0; break; case 0x04: CWB1=1; break; case 0x05: TR1=0; TMOD=0x10; TH1=-T/256; TL1=-T%256; TR0=1; break; case 0x06: TR1=0; break; case 0x07: CWB2=0; break; case 0x08: CWB2=1; break; default:break; } } } 串口接收程序 发送03 04是对的 01 02不对 |
|
相关推荐
1个回答
|
|
楼主都没用到中断就不要开中断了,串口初始化 ES=1去掉,首先得确定串口通信是否正确,再判断波形是否正确。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2024年上海海思MCU开发者体验官招募,手机/MatePad大奖等你拿!
609 浏览 0 评论
【xG24 Matter开发套件试用体验】蓝牙控制板载LED
633 浏览 0 评论
768 浏览 0 评论
电赛:mspm0l1306的开发板可以烧录程序,但是程序运行不了,怎么解决这个问题?
952 浏览 1 评论
【xG24 Matter开发套件试用体验】Silicon Labs 基于 EFR32MG24 Explorer Kit 开发板 开箱试用体验
768 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10501 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-5 01:28 , Processed in 0.516889 second(s), Total 73, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191