完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
单片机串口通信的数据缓冲器SBUF是8位的。
想在电脑输入0~65526的数据,然后通过串口传输到单片机。 再用数码管显示。 输入的数据大于8位没有问题,小于8位显示异常, 主要是串口中断函数怎么去判断呢。 #include #include #define uint unsigned int #define uchar unsigned char uchar num,t,temp; ***it fm=P2^3; ***it dula=P2^6; ***it wela=P2^7; int shu,shu1,shu2,wan ,qian,bai,shi,ge,i; uchar code table[]={ //数码管编码 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void delay(uint z) //延时函数 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void display(); void main() { TMOD=0x20; //定时器1工作在方式2,自动填充初值 TH1=0xfd; TL1=0xfd; EA=1; ES=1; SM1=1; SM0=0; REN=1; TR1=1; shu=0x00; fm=1; t=0; num=1; while(1) { shu=0x00ff&shu2; //低位数据 shu=_lrol_(shu1,8)|shu; //高位数据左移8位 wan=shu/10000; //求 个 十 百 千 万的值 分别用数码管显示 qian=shu%10000/1000; bai=shu%10000%1000/100; shi=shu%10000%1000%100/10; ge=shu%10; display(); P1=shu2; delay(10); } } void display() //数码管动态扫描函数 { dula=1; P0=table[wan]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(1); dula=1; P0=table[qian]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(1); dula=1; P0=table[bai]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(1); dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(1); dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delay(1); } void time() interrupt 4 //串口中断函数 { RI=0; i++; if(i==3) i=1; if(i==1) shu1=SBUF; //高位 else shu2=SBUF; //低位 } |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
377 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
536 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
540 浏览 0 评论
950 浏览 0 评论
如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板
1403 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11762 浏览 31 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 11:14 , Processed in 0.485959 second(s), Total 70, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号