完善资料让更多小伙伴认识你,还能领取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去掉,首先得确定串口通信是否正确,再判断波形是否正确。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
使用Keil建立完整的工程,并使用外部中断0触发数码管显示903
418 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
1083 浏览 0 评论
846 浏览 0 评论
886 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
882 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11831 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 19:14 , Processed in 0.486429 second(s), Total 73, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号