首页 ds18b20c程序proteus仿真

ds18b20c程序proteus仿真

举报
开通vip

ds18b20c程序proteus仿真U1>XTAL1XTAL2RSTPOOXADOP01XAD1P0.2XAD2P0.3XAD3P0.4XAD4P0.5XAD5P0.6XAD6P0.7XAD7P2VA8P2.1/A9P2.2fA10PSENP2.3fA11ALEP2.4fA12EAP2.5GM3P2.6fA14P2.7fA15F1.0P3.OTRXDP1.1P3.1/TXDP1.2P3.2HNTOP1.3P3.3flNT1P1.4P3.4/T0P1.5P3.5fT1...

ds18b20c程序proteus仿真
U1>XTAL1XTAL2RSTPOOXADOP01XAD1P0.2XAD2P0.3XAD3P0.4XAD4P0.5XAD5P0.6XAD6P0.7XAD7P2VA8P2.1/A9P2.2fA10PSENP2.3fA11ALEP2.4fA12EAP2.5GM3P2.6fA14P2.7fA15F1.0P3.OTRXDP1.1P3.1/TXDP1.2P3.2HNTOP1.3P3.3flNT1P1.4P3.4/T0P1.5P3.5fT1P1.6P3.&WRP1.7P3^RD19迅22iin■73.R1J2■39■38■372G-21)318B204k7In3匚U1■27■7R■23・24■2!5■:?642■彳3X■佔■化±1LDQC—®GND•e>XTAL1KTAL2POOJADOP0/1JAD1P0.2.IAD2PO3JAD3PO4JAD^P0.5.IAD5PO6JAD6RSTP0.7JAD7PQ.0/A8P2.1/A9P2.2T1PI.5nf7P3.6M®.r*1yrdIIhU191B-C5.i-21AU22A»30"31"GND••PT7DS1B02O■22■2224■25°262丁■28■10■114213・14■45■RiABCDEFGD尸AU24刃订ESP■36DS18B20bEXTfJ1i38AT69C51MALIPOOXA.DOPO4佩DIP02XAD2KTAL2PO3/AD3P0.4/AD4PO5佩D5P0.6/AD6RSTPO7XAD7rJ.UJMorJ.I/MWdoy1nPSENr/C.ZlAlUdr41r2.3fAlIOO4/A4OALEexrz.4iAizcAr^.ulAl3OOQ/A14rz.biAl4oy1=dJJIAUIUDOQ/IMT1riP14P3.4/T0P1.5P3.OT1P1604TP3&陛DOTiori'r1.?亠・32■i-a2n口■21■22■23■24■25■26■27■2Aoox1S3■12■13■11,J■W■51■21VCCDQGND•DS18B20测温显示,proteus仿真。Writtenbyjinsongliang具体程序如下#include<>#incIude""#include""#incIude""voidmain(void){unsignedchardisp[5]={10,0,0,14,2};signedchartemp=0;while(1){/*1.读取温度值*/temp二Get_Temputer();//2、显示前处理*/if(temp<0){disp[0]=13;temp=一temp;disp[1]=temp/10;disp[2]=temp%10;}else{disp[0]=temp/100;disp[1]=temp/10-disp[0]*10;disp[2]=temp%10;if(!disp[0])”百位数不为Q則显示■\其注絆持disp[0]=10;}//3、显示*/Seg_Display(disp);voidDelay_Nus(unsignedcharn){while(n—);//for(;n>0;n—);}/******************************************************************时序很重要,移植时注意延时函数************************:♦:*********水*******************************/#defineB20__P0RT#defineB20_CHANNEL#defineR_B20_CHANNEL()#defineW_B20_CHANNEL_1()#defineW_B20_CHANNEL_0()#defineSKIP_ROM#defineTEMPUTER_CONVERT#defineREAD_ROMP1〃此处可以设JLI/O口0B20_P0RT&(1«B2O_CHANNEL)B20_P0RT|=(1«B20_CHANNEL)B20_P0RT&「(1«B20_CHANNEL)OxCC0x44OxBE//one/*初始化函数,失敗会返回1,初始化过程见注释若单片机读到了数据线上的低电平-0"后,还要做延时,其延时的时间从单片机发出的高电平算是最少要480微秒。之后单片机将数据线再次拉爲剑高电平-1"后结束。♦/staticunsignedcharlnit_18b20(void)unsignedcharx=0;W_B20_CHANNEL_1();DeIay_Nus⑻;W_B20_CHANNEL_0();DeIay_Nus(81);W_B20_CHANNEL_1();DeIay_Nus(14);x=R_B20_CHANNEL();〃1、从单片机拉高数据线开始//6*nuseconds//2、单片机拉低数抿线480us以上,拉高数扌松线,释放7/3.之后ds18b20,15飞Ous以后反应,拉高数据线//4.单片机读取数据线if(x)//x二0代表复位成功returnx;DeIay_Nus(20);returnx;//twostaticvoidWrite_18b20(unsignedcharw_data){unsignedchari;unsignedchartemp;for(i=0;i<8;i++){W_B20_CHANNEL_1();temp=w_data&(1«0);W_B20_CHANNEL_00;//单片机从高到低,拉低1us以上•并在15us内产生写问障B20_P0RT=temp«B20_CHANNEL;//写敌据,(先写低位)DeIay_Nus(刀;//15飞Ous内18B20采样w_data»=1;}W_B20_CHANNEL_1();DeIay_Nus⑷;//threestaticunsignedcharRead_18b20(void){unsignedchari;unsignedchartemp;unsignedcharr_data二0x00;for(i=0;i<8;i++)r_data»=1;W_B20_CHANNEL_1();W_B20_CHANNEL_0();Delay_Nus(1);W_B20_CHANNEL_1();temp=B20_P0RT«(7-B20_CHANNEL);temp&=(1«7);r_data+二temp;DeIay_Nus(8);}W_B20_CHANNEL_1();returnr_data;//从高到低15us内,再到為,产生读间隙//读数摇,从低位开始〃整个读一位过程在60^120us//four/*若要读出当前的温度数据我们需要执行两次工作周期,第一个周期为复位、跳过ROM指令、执行温度转换存储器操作指令、等待500uS温度转换时间紧接着执行第二个周期为复位、跳过ROM指令、执行读RAM的存储器操作指令、读数据(最多为9个字节,中途可停止,只读简单温慶值則读祈2个字节即可)signedcharGet_Temputer(void){unsignedchartem_h,tem_l;signedchartemp;if(lnitJ8b20()==0){Write_18b20(SKIP_R0M);Write_18b20仃EMPUTER_CONVERT);}elsereturntemp=0;//Delay_Nus(100);if(lnit_18b20()==0){WriteJ8b20(SKIP_R0M);WriteJ8b20(READ^R0M);}elsereturntemp=0;tem_I=Read_18b20();tem_h=Read_18b20();返诃的帝H号字符煌・55幻・127:128无法显示.初枱亿失敗会星示//复位18b20//跳过ROM//温度变换〃复位18b20//跳过ROM//读暂存存储器//读数据/*只要高字符的低四位和低字符的离四位,温度范国0~99,temp为补码,直接由unsignedchar賦.值给signedchar内容不变,代表的值改变♦/temp二(tem_h«4)+(tem_I»4);returntemp;0〃共阳数码管1//共阴数码管0〃选择共阳数码管#defineCOMMON.ANODIC#defineCOMMON^CATHODAL#defineSEG.CATEGORY#defineSEG8_A(1«0)〃段A亮时为0,属共阳数码管#defineSEG8_B#defineSEG8_C#defineSEG8_D(1«D,«2)#defineSEG8.E#defineSEG8_F气1«3)^(1«4)(1«5)#defineSEG8.G#defineSEG8.DP气1<<7)#defineSEG8_CHAR_0#defineSEG8_CHAR_1#defineSEG8_CHAR_2#defineSEG8_CHAR_3#defineSEG8_CHAR_4#defineSEG8_CHAR_5#defineSEG8_CHAR.6#defineSEG8_CHAR_7#defineSEG8_CHAR_8#defineSEG8_CHAR_9#defineSEG8_CHAR_#defineSEG8_CHAR.E#defineSEG8_CHAR_R#defineSEG8_CHAR_SUB~(SEG8_G&SEG8_DP)W(SEG8_A&SEG8_D&SEG8_E&SEG8_F&SEG8_G&SEG8_DP)气SEG8_C&SEG8_F&SEG8_DP)”(SEG8_E&SEG8_F&SEG8_DP)〜(SEG8_A&SEG8_D&SEG8_E&SEG8_DP)_(SEG8_B&SEG8_E&SEG8_DP)“(SEG8_B&SEG8J)P)气SEG8_D&SEG8_E&SEG8_F&SEG8_G&SEG8_DP)*SEG8_DP"(SEG8_E&SEG8_DP)~0*(SEG8_B&SEG8-C&SEG8_DP),(SEG8_A&SEG8_B&SEG8_C&SEG8_D4SEG8_F&SEG8_DP)气SEG8A&SEG8B&SEG8C&SEG8D&SEG8E&SEG8F&SEG8DP)//#defineSEG8_CHAR_A//#defineSEG8_CHAR_B#defineSEG8_CHAR.C'(SEG8_B&SEG8-C&SEG8_G&SEG8-DP)//#defineSEG8_CHAR_D//#defineSEG8_CHAR_F//#defineSEG8_CHAR_H#ifSEG_CATEGORY=COMMON^ANODICstaticconstunsignedcharSEG8_C0DE[]={SEG8_CHAR_0,SEG8CHAR1,SEG8_CHAR_2,SEG8_CHAR_3,SEG8_CHAR_4,SEG8_CHAR_5,SEG8_CHAR_6,SEG8_CHAR_7,SEG8CHAR8,SEG8_CHAR_9,SEG8_CHAR_,//SEG8_C0DE[10]SEG8_CHAR_E,//SEG8.C0DE[11]SEG8_CHAR_R,//SEG8_CODE[12]SEG8_CHAR_SUB,〃SEG8_C0DE[13]SEG8_CHAR_C〃SEG8_C0DE[14]#elsei;staticconstunsignedcharSEG8_CODE[]={飞EG8-CHARJ),'SEG8_CHAR_1,"SEG8_CHAR_2,飞EG8_CHAR_3,飞EG8_CHAR_4,"SEG8.CHAR.5,飞EG8_CHAR_6,_SEG8_CHAR_7.~SEG8_CHAR_8,飞EG8_CHAR_9,"SEG8CHAR,〃SEG8_C0DE[10]飞EG8_CHAR_E,//SEG8_C0DE[11]■SEG8_CHAR_R.〃SEG8_C0DE[12]"SEG8_CHAR_SUB,//SEG8_CODE[13]飞EG8_CHAR_C〃SEG8_C0DE[14]#endif/;#defineSEG8_SLECT_P0RT#defineBITO#defineBIT1#defineBIT2#defineBIT3#defineSEG8_BITO_ON()#defineSEG8BITO_OFF()#defineSEG8#defineSEG8#defineSEG8#defineSEG8#defineSEG8#defineSEG8BIT1.ONOBIT1_OFF()BIT2_0N()BIT2_0FF()BIT3_0N()BIT3.OFFOP3//此处可以设JLI/O□0123SEG8_SLECT_P0RT|=(1«BITO)SEG8_SLECT_P0RT&="(1«BITO)SEG8_SLECT_P0RT|=(1«BIT1)SEG8-SLECT_P0RT&=・(1«BIT1)SEG8_SLECT_P0RT|=(1«BIT2)SEG8_SLECT_P0RT&「(1«BIT2)SEG8_SLECT_P0RT|=(1«BIT3)SEG8_SLECT_P0RT&「(1«BIT3)#defineSEG8_CODE_PORTP2〃此处可以设JLI/O口voidSeg_Display(char*p){unsignedchartemp[4];temp[0]=SEG8_C0DE[*p++];temp[1]=SEG8_C0DE[*p++];temp[2]=SEG8.C0DE[*p++];temp[3]=SEG8_C0DE[*p++];if(*p<4)#ifSEG_CATEGORY==COMMON_ANODICtemp[*p]&=SEG8_DP;#elsetemp[*p]|="SEG8_DP;#endifunsignedchari;for(i=0;i<150;i++){SEG8_C0DE_P0RT=temp[0];SEG8_BIT0_0N();//DeIay.Nus⑹;SEG8_BIT0_0FF();SEG8_C0DE_P0RT=temp[1];SEG8.BIT1.0N0;DeIay.Nus⑹;SEG8_BITL0FF();SEG8_C0DE_P0RT=temp[2];SEG8_B订2_0N();DeIay_Nus⑹;SEG8_BIT2_0FF();SEG8_C0DE_P0RT=temp[3];SEG8_BIT3_0N();DeIay_Nus(6);SEG8_BIT3_0FF();
本文档为【ds18b20c程序proteus仿真】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_597436
暂无简介~
格式:doc
大小:132KB
软件:Word
页数:0
分类:
上传时间:2018-07-18
浏览量:5