| 查看: 2946 | 回复: 0 | ||
[求助]
求助 KeilC 51单片机 利用定时器使串口每隔1s输出数据
|
|
主要是想将温度传感器DS18B20采到的温度值通过串口每隔1s输出。1s定时是通过定时器完成的,设定初值为50ms,中断20次,产生1s定时。但是问题是现在串口输出不了数据,包括数码管都无法显示温度值了。。。具体程序如下,希望高手帮忙看看思路是否有错误。。。。 主函数部分: void main() { int Data; ds_init(); //18B20初始化 init_serial() ; //串口初始化 TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; initTimer0(); while(1) { ds_getT();// DS18B20温度值获取 Data=(TemH+(float)(count&0xff)/100)*100; //将温度值扩大100倍,即去掉小数点的作用 display((Data/1000)%100,(Data/100)%10,(Data/10)%10,(Data%10));//温度发送到数码管显示 if(time_1s_flag==0) // 定时1s时间到 { time_1s_flag=1; senddata(Data);//串口输出 } } } 串口输出部分: void init_serial() //初始化串口 { TMOD=0x20; //定时器T1使用工作方式2 TH1=0xfd; //设置初值253 TH0=0xfd; TR1=1; //开始计时 PCON=0x00; //SMOD=0; SCON=0x50; //工作方式1,波特率9600bit/s,允许接收 TI=1; EA=1; } void sersend(char dat) { while(TI!=1); // TI为发送中断标志,在一帧数据发送完时被置位,sbuf已空 { SBUF=dat; TI=0; } } void senddata(int dat) { char senbuf[4]; char i; senbuf[0]=(dat/1000)%100+'0'; senbuf[1]=(dat/100)%10+'0'; senbuf[2]=(dat/10)%10+'0'; senbuf[3]=(dat%10)+'0'; for(i=0;i<4;i++) sersend(senbuf); // 将温度值传送完 sersend('\r'); sersend('\n'); 定时器部分: void initTimer0() { TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; } void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; tick_count++; if(tick_count>=20) { tick_count=0; time_1s_flag=0; } } |
» 猜你喜欢
导师想让我从独立一作变成了共一第一
已经有9人回复
博士读完未来一定会好吗
已经有23人回复
到新单位后,换了新的研究方向,没有团队,持续积累2区以上论文,能申请到面上吗
已经有11人回复
读博
已经有4人回复
JMPT 期刊投稿流程
已经有4人回复
心脉受损
已经有5人回复
Springer期刊投稿求助
已经有4人回复
小论文投稿
已经有3人回复
申请2026年博士
已经有6人回复

找到一些相关的精华帖子,希望有用哦~
乳酸的HPLC分析求助
已经有21人回复
真诚求助--关于底胶合成和应用的理论
已经有3人回复
分子生物学投稿,求助~
已经有4人回复
求助:水相分离
已经有16人回复
如何利用能谱分析钛合金锻造裂纹的形成?
已经有3人回复
洪堡申请找国外博后导师问题求助
已经有10人回复
求助硼氢化钠还原后处理问题
已经有26人回复
菜鸟求助 请大侠鉴定下这种XRD小角图
已经有8人回复
求助对JCED审稿意见的理解
已经有7人回复
【求助】氯化铝型离子液体循环伏安曲线图
已经有16人回复
Reaxys数据库相关问题
已经有7人回复
研二了没实验,没数据有木有!研究冰川的讨论一下!
已经有25人回复
转炉余热饱和蒸汽的合理利用
已经有4人回复
求助:选学校,上海交大和浙大的药化专业考研
已经有11人回复
【求助】求人帮忙分析一下xps C 1s谱图
已经有11人回复
【求助】请教对51单片机比较熟悉的朋友。
已经有17人回复
科研从小木虫开始,人人为我,我为人人













回复此楼
点击这里搜索更多相关资源