《单片机应用技术》实训任务书06.docx

上传人:太** 文档编号:46214545 上传时间:2022-09-25 格式:DOCX 页数:5 大小:67.63KB
返回 下载 相关 举报
《单片机应用技术》实训任务书06.docx_第1页
第1页 / 共5页
《单片机应用技术》实训任务书06.docx_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《《单片机应用技术》实训任务书06.docx》由会员分享,可在线阅读,更多相关《《单片机应用技术》实训任务书06.docx(5页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、本任务用两个共阴极数码管来实现温度数据的显示,具体实施过程如下:一、电路连接如图6.11所示两个共阴极数码管以动态显示的方式连接在P0端口上,公共端分别连接 在P3.5和P2.7上,DS18B20连接在P3.7端口上。VCCmwi4.7K1 工三3 工二 至ToTTH 亘道 立 叵 叵 20T2/P1.0 J7VCCT2EX/PL1P0.0/AD0Pl.2P0.1/AD1Pl.3P0.2/AD2Pl.4P0.3/AD3Pl.5P0.4/AD4Pl.6P0.5/AD5Pl.7P0.6/AD6RSTP0.7/AD7RXD/P3.0EATXD/P3.1ALE7PROGINT0/P3.2PSENINT

2、1/P3.3P2.7/A15T0/P3.4P2.6/A14T1/P3.5P2.5/A13WR7P3.6P2.4/A12RDyP3.7P2.3/A11XTAL2P2.2/A10XTAL1P2.1/A9VSSP2.0/A8STC89C52RCU3STC89C52RC40 39383735343337 3T3029三2726 15470VCC24232221 4.7KllDS18B20123D3 LED43 工7二工To图6.11数据温度计电路连接二、程序实现 ttinclude ttinclude sbit LED1 = P36; sbit LEDO = P27; sbit dq=P37;数据接口

3、为单片机的P3.2 口sfr WDT CONTR=OXE1; 定义看门 口bit init (void) ; /初始化温度传感器函数,返回18b20存在标志位 void writebyte(unsigned char);写温度传感器8位函数,需要传递一个无符号char参数 unsigned char readbyte (void);读温度传感器8位函数,无参数,需返回无符号char量 void xianshi (unsigned char);代表十位的数码管显示数字void xianshi_l (unsigned char);代表个位的数码管显示数字void delay (unsigned c

4、har); 延时函数 void delay(unsigned char w) unsigned char k;for(k=w;k0;k-);延时时间计算二(参数T) *8+19初始化函数 bit init (void) bit fig;设置18b20存在标志位dq=0;将数据线清零delay (60) ;/延时,此处延时时间处在48011s到960us之间dq=l ;释放总线等待dsl8b20将总线拉低产生应答delay (6);延时,此处的延时时间必处在15us到60us之间if (dq=0)判断dsl8b20是否处于低电平 flg=dq; else flg=l; delay (25); 延

5、时,此处的延时时间必处在60us到240us return fig;)写8位的字节void writebyte (unsigned char chardata)unsigned char i;循环8次/dq清零延时,此处延时lus以上即可for (i=8; i0; i一) dq = 0;_nop_();_nop_();dq = chardata & 0x01;可以改变总线的数据了,可以改变总线的数据了,从传递过来的函数取最低位出来,发送出去delay (8);dq = 1;chardata = 1;)读8位的字节unsigned char readbyte (void) unsigned ch

6、ar i=0;unsigned char dat = 0; for (i=8;i0;i一) dat = 1; dq = 0; _nop_ (); _nop_ (); dq = 1; _nop_ (); _nop_ (); if(dq) dat|=0x80; delay ;delay (8);dq = 1;chardata = 1;)读8位的字节unsigned char readbyte (void) unsigned char i=0;unsigned char dat = 0; for (i=8;i0;i一) dat = 1; dq = 0; _nop_ (); _nop_ (); dq

7、= 1; _nop_ (); _nop_ (); if(dq) dat|=0x80; delay ;延时释放总线数据移位循环8次移位清零延时lus以上/释放总线在lus到15ns之间油控制器采样控制器采样如果dq为1那么输出dat内容否那么会到循环读时间隙,最少在60usreturn(dat);return(dat);返回dat值主函数void main ()bit fig 20;unsignedcharshi;unsignedcharge;unsignedchartemp_s;unsignedchartemp_l;unsignedchartemph;WDT_C0NTR=0X3C;while

8、(1)flg 20=init ();温度的十位温度的个位数据处理后的暂存暂存低八位暂存高八位看门狗禁止循环初始化if(flg_20=l)xianshi(10); 判断18b20的存在位,没有的话显示错误数据writebyte(OxCC);writebyte(0x44);flg_20=init ();if(fig 20=l)xianshi (10); writebyte(OxCC);writebyte(OxBE);temp二readbyte ();temp_h=readbyte ();/skip rom 命令温度转换命令再次初始化判断18b20的存在位,没有的话显示错误数据/skip rom 命

9、令读温度暂存器内容先读取低位存入temp_l再读取高位存入temp_htemp l=_cror_(temp 1, 4) & OxOf;低八位循环右移四位,省略小数局部,只取整数局部temp_h=_crol_(temp_h, 4) & 0x70;高八位循环左移四位,只取有效的三位temp_s=temp_h | temp_l;将有效的高位和地位合并在一起shi二(temp_s%100)/10;ge=temp s%10;xianshi_l (ge);xianshi (shi);求十位数据求个位数据调用函数用数码管显示个位调用函数用数码管显示十位显示十位void xianshi (unsigned c

10、har j) /P1=0x00;/P2=0x00;if(j=0)LEDl=l;LEDO=O;PO=Oxbf; else if (j=l)LEDl=l;LED0=0:P0=0x06;else if (j=2)如果数据为0那么给P2 口赋值0x82否那么如果数据为1那么给P2 口赋值0xb7以下依次类推LEDl=l;LED0=0;P0=0x5b;else if (j=3)LEDl=l;LED0=0;P0=0x4f;else if (j=4)LEDl=l;LED0=0;P0=0x66;else if (j=5)LEDl=l;LED0=0;P0=0x6d;else if (j=6)LED1=1;LED

11、O=0;P0=0x7d;else if (j=7)LEDl=l;LED0=0;P0=0x07;else if (j=8)LEDl=l;LED0=0;P0=0x7f;else if (j=9)LEDl=l;LEDO=O;PO=Oxef; delay (200);)显示个位void xianshi l (unsigned char j) (如果个位为0那么给Pl 口赋值0x82否那么如果为1那么赋值为0xb7依次类推如果个位为0那么给Pl 口赋值0x82否那么如果为1那么赋值为0xb7依次类推if (j=0)LED0=l;LEDl=0;P0=0xbf;else if (j=l)LED0=l;LED

12、l=0;P0=0x06;else if (j=2)LED0=l;LEDl=0;P0=0x5b;else if (j=3)LED0=l;LEDl=0;P0=0x4f;else if (j=4)LED0=l;LEDl=0;P0=0x66;else if (j=5)LED0=l;LEDl=0;P0=0x6d;else if (j=6)LED0=l;LEDl=0;P0=0x7d;else if (j=7)LED0=l;LEDl=0;P0=0x07;else if (j=8)LED0=l;LEDl=0;P0=0x7f;else if (j=9)LED0=l;LEDl=0;P0=0xef;delay (200);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com