完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
小弟,做毕业设计,写了一段程序,有错误 ,keil编译出错,希望哪位大神帮我看一下。。。。。。 不甚感谢!
程序如下: “#include #include #include #define ui unsigned int #define uc unsigned char ***it aa=P1^3;//启动测温 ***it date=P1^2;//TN9数据接收 ***it huanjing=P1^0;//环境温度按键定义 ***it mubiao=P1^1;//目标温度按键定义 uc code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x39};//数码管形的数组表 uc ge,shi,bai,qian,chewen;//用于显示的变量定义(全局变量) bit bdata ff,pp;//测温启动的位定义 uc item,m***,l***,sum,cr,temp,m;//用于记录温度数据的变量定义(全局变量) ui wendu;//存储温度的变量定义 void delay(ui k)//延时函数 { uc i,j; for(i=k;i>0;i--) for(j=110;j>0;j--); } void xianshi()//显示函数 { ge=10; shi=wendu%10; bai=wendu%100/10; qian=wendu/100; P2=0x08; P0=tab[qian]; delay(5); P2=0x04; P0=tab[bai]; delay(5); P2=0x02; P0=tab[shi]; delay(5); P2=0x01; P0=tab[ge]; delay(5); } void ex0() interrupt 0//外部中断读取TN9数据 { if(ff!=1) { pp=data; //提取P1^3这个位的数据,TN9数据口 temp=temp+pp;//把这个位数据存到temp这个变量里 m++;//用这个变量记录存储的是第几个数据 if((m!=8)&&(m!=16)&&(m!=24)&&(m!=32)&&(m!=40))//8个位为一组数据(一共5组数据) { temp=_crol_(temp,1);//(不够8位就把高位向前移一位,够8位就不向前移位了) } else if(m==8)//第一组数据接收完毕 { item=temp;//把第一组数据存在item(此帧代表环境温度或目标温度)这个变量里 temp=0; } else if(m==16)//第二组数据接收完毕 { m***=temp;//把第二组数据存在m***(高八位数据)这个变量里 temp=0; } else if(m==24)//第三组数据接收完毕 { l***=temp;//把第三组数据存在l***(低八位数据)这个变量里 temp=0; } else if(m==32)//第四组数据接收完毕 { sum=temp;//把第四组数据存在sum(验证码sun=m***+l***+item)这个变量里 temp=0; } else if(m==40)//第五组数据接收完毕 { cr=temp;//把第五组数据存在cr(结束标志)这个变量里 temp=0; m=0; if((cr==0x0d)&&(item==chewen))//检查结束标志和第一组数据是否为所要的环境或目标数据(是就计算出温度值) { ff=1;//停止测温 aa=1;//关闭测温 wendu=m****256+l***;//把高八位和低八位拼在一起 wendu=wendu/16-273.15;//温度计算公式(目标温度/环境温度=temp/16-273.15) } else//不是正确的数据 { aa=0;//启动测温 } } } } void init()//初始化函数 { delay(500); EA=1; IT0=1; EX0=1; P1=0xff; chewen=0x66; } void main() { init(); while(1) { if(huanjing==0) delay(200); if(huanjing==0) { chewen=0x66;//环境温度数据的标志 aa=0; ff=0; while(huanjing==0); } if(mubiao==0) delay(200); if(mubiao==0) { chewen=0x4c;//目标温度数据的标志 aa=0; ff=0; while(mubiao==0); } xianshi(); } } |
|
相关推荐
2个回答
|
|
#include
#include #include #define ui unsigned int #define uc unsigned char ***it aa=P1^3;//启动测温 ***it date=P1^2;//TN9数据接收 ***it huanjing=P1^0;//环境温度按键定义 ***it mubiao=P1^1;//目标温度按键定义 uc code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x39};//数码管形的数组表 uc ge,shi,bai,qian,chewen;//用于显示的变量定义(全局变量) uc bdata ff,pp;//测温启动的位定义 uc item,m***,l***,sum,cr,temp,m;//用于记录温度数据的变量定义(全局变量) ui wendu;//存储温度的变量定义 void delay(ui k)//延时函数 { uc i,j; for(i=k;i>0;i--) for(j=110;j>0;j--); } void xianshi()//显示函数 { ge=10; shi=wendu%10; bai=wendu%100/10; qian=wendu/100; P2=0x08; P0=tab[qian]; delay(5); P2=0x04; P0=tab[bai]; delay(5); P2=0x02; P0=tab[shi]; delay(5); P2=0x01; P0=tab[ge]; delay(5); } void ex0() interrupt 0//外部中断读取TN9数据 { if(ff!=1) { pp=date; //提取P1^3这个位的数据,TN9数据口 temp=temp+pp;//把这个位数据存到temp这个变量里 m++;//用这个变量记录存储的是第几个数据 if((m!=8)&&(m!=16)&&(m!=24)&&(m!=32)&&(m!=40))//8个位为一组数据(一共5组数据) { temp=_crol_(temp,1);//(不够8位就把高位向前移一位,够8位就不向前移位了) } else if(m==8)//第一组数据接收完毕 { item=temp;//把第一组数据存在item(此帧代表环境温度或目标温度)这个变量里 temp=0; } else if(m==16)//第二组数据接收完毕 { m***=temp;//把第二组数据存在m***(高八位数据)这个变量里 temp=0; } else if(m==24)//第三组数据接收完毕 { l***=temp;//把第三组数据存在l***(低八位数据)这个变量里 temp=0; } else if(m==32)//第四组数据接收完毕 { sum=temp;//把第四组数据存在sum(验证码sun=m***+l***+item)这个变量里 temp=0; } else if(m==40)//第五组数据接收完毕 { cr=temp;//把第五组数据存在cr(结束标志)这个变量里 temp=0; m=0; if((cr==0x0d)&&(item==chewen))//检查结束标志和第一组数据是否为所要的环境或目标数据(是就计算出温度值) { ff=1;//停止测温 aa=1;//关闭测温 wendu=m****256+l***;//把高八位和低八位拼在一起 wendu=wendu/16-273.15;//温度计算公式(目标温度/环境温度=temp/16-273.15) } else//不是正确的数据 { aa=0;//启动测温 } } } } void init()//初始化函数 { delay(500); EA=1; IT0=1; EX0=1; P1=0xff; chewen=0x66; } void main() { init(); while(1) { if(huanjing==0) delay(200); if(huanjing==0) { chewen=0x66;//环境温度数据的标志 aa=0; ff=0; while(huanjing==0); } if(mubiao==0) delay(200); if(mubiao==0) { chewen=0x4c;//目标温度数据的标志 aa=0; ff=0; while(mubiao==0); } xianshi(); } } |
|
1 条评论
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
503 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1756 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1183 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1053 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1287 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12022 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 21:14 , Processed in 0.407755 second(s), Total 47, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号