




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/DS18B20温度传感器和数码管显示/编程时间:2010.4.7-2010.4.9/*/连线表: CPU=stc89C52 SysClock=12MHz / LEDLE=P1.0 控制位高电平有效 LEDSEG=P2 KEYBOARD=P3 LEDWEI=P0.5-0,LED高到底/*/DS18B20/*/连线表: CPU=stc89C52 SysClock=12MHz */单总线: TMDAT=P1.1/ /* #include #define uchar unsigned char#define uint unsigned intuchar discount=0;/显示扫描位计数uchar last=0;/最终温度值uchar itcount=0x13;/定时器延时计数uchar seg4;/数码管显示暂存uchar tem2;/读取温度暂存uchar flag=0;/温度正负标志位/*LED引脚定义*/ sfr LEDSEG=0x80;/P2 sfr LEDWEI=0xA0;/P3/*DS18B20引脚定义*/ sbit TMDAT=P10; /温度传感器数据位/*DS18B20函数定义*/void dmsec(uint count);/延时(count)毫秒void tmreset(void); /产生复位信号void tmpre(void); /检测器件应答信号bit tmrbit(void); /从总线读一个bituchar tmrbyte(void); /从总线读一个字节void mwbyte(uchar dat);/向总线写一个字节void tmstart(void); /启动一次温度转换uchar tmrtemp(void); /读取温度数据/*LED函数定义*/uchar * uchartodectoseg(uchar unm);/字符转换为十进制然后转换为数码管段表void disp(uchar *seg);/显示函数void delay_ms(uint t); /延时函数/*/uchar code table= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0xc6;/*数码表*0 1 2 3 4 5 6 7 8 9 无显示 C*/*/ uchar * uchartodectoseg(uchar unm)uchar x00,xx,x0,x,n;x00=unm/100;/取百位xx=unm%100;/取余x0=xx/10;/取十位x=xx%10;/取余即取个位n=0;segn=tablex00;n+;segn=tablex0;n+;segn=tablex;n+;segn=table11;/最后一位显示摄氏度符号Cif(flag=1)seg0=0x40;/显示负号-if(seg0=table0)seg0=table10; /如果百位为零则不显示if(seg0=table0)&(seg1=table0)seg1=table10;/如果百位为零且十位为零则十位不显示return seg; /*/*DELAY*/void delay_ms(uint t)uint m,n;for(m=0;mt;m+)for(n=0;n950;n+);/*/*显示LEDSEG*/void disp(uchar *seg)uchar wei=0x08,0x04,0x02,0x01;/位扫描码/LEDSEG=seg10; LEDWEI =weidiscount;LEDSEG = segdiscount;delay_ms(1);discount+; if(discount=4)delay_ms(1);discount=0;/LEDSEG=seg10; LEDWEI=weidiscount;LEDSEG=segdiscount;/检测是否扫描完,扫描完的话则重新置初值/*/*DS18B20函数体定义*/void dmsec(uint count)uint i;while(count-) for(i=0;i0) i-;TMDAT=1;i=4;while(i0) i-;void tmpre(void)uint i;while(TMDAT);while(TMDAT);i=4;while(i0) i-;bit tmrbit(void)uint i;bit dat;TMDAT=0;i+;TMDAT=1;i+;i+;dat=TMDAT;i=8;while(i0) i-;return(dat);uchar tmrbyte(void)uchar i,j,dat;dat=0;for(i=1;i=8;i+) j=tmrbit(); dat=(j1);return(dat);void tmwbyte(uchar dat)uint i;uchar j;bit testb;for(j=1;j1; if(testb) TMDAT=0; i+; i+; TMDAT=1; i=8; while(i0) i-; else TMDAT=0; i=8; while(i0) i-; TMDAT=1; i+; i+; void tmstart(void)tmreset();tmpre();dmsec(1);tmwbyte(0xcc);tmwbyte(0x44);uchar tmrtemp(void)uchar y1,y2,y3;tmreset();tmpre();dmsec(1);tmwbyte(0xcc);tmwbyte(0xbe);tem0=tmrbyte();tem1=tmrbyte();if(tem1127) tem1=(255-tem1);tem0=(255-tem0);flag=1; /负温度求补码y1=tem04;y2=tem14;y3=y1|y2;return(y3);/*/void main()TMOD=0X01;TL0=0XB0;TH0=0X3C;EA=1;ET0=1;TR0=1;dmsec(1);tmstart();while(1)uchartodectoseg(las
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB32/T 3949-2020普通国省干线绿色公路建设技术规程
- DB32/T 3725-2020屋久岛紫薇硬枝扦插育苗技术规程
- DB32/T 3720-2020开放式综合公园服务规范
- DB32/T 3677-2019高速儿童汽车安全座椅技术规范
- DB31/T 856-2014陆上公共货运标志
- DB31/T 714-2013假肢矫形器装配机构服务规范
- DB31/T 299-2018乡村民宿服务质量要求
- DB31/T 1346-2022规模化畜禽养殖场主要动物疫病净化本底调查技术规范
- DB31/T 1237-2020空压机系统运行能效评估技术规范
- DB31/T 1205-2020医务社会工作基本服务规范
- 幼儿园大班科学《痕迹》
- 静脉用药安全输注药护专家指引
- DB61T1755-2023放心消费示范创建认定与管理规范
- 企业借款申请书
- 乙醇管施工方案
- 项目七 信息素养与社会责任
- 电气施工安全技术交底记录范本
- 说课稿【全国一等奖】
- 急性扁桃体炎临床诊疗指南
- 第七讲 社会主义现代化建设的教育科技人才战略PPT习概论2023优化版教学课件
- 室间质评记录表
评论
0/150
提交评论