




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金属打火机制作工持续改进强化考核试卷含答案
- 三 电流的磁场教学设计初中物理九年级全册北师大版(闫金铎)
- 人才测评师安全操作模拟考核试卷含答案
- 基于m法的机械连接桩在水平荷载作用下的桩身响应研究
- 基于聚合物链及体相微结构调控的高性能固态电解质研究
- 矿山电机车司机安全应急能力考核试卷含答案
- 消费电子行业上市公司环境会计信息披露质量评价研究-以H公司为例
- 危险货物运输作业员安全技能测试模拟考核试卷含答案
- 2023四年级数学上册 一 万以上数的认识 2 万以上数的写法说课稿 西师大版
- 七年级语文上册 第一单元 3雨的四季说课稿 新人教版
- 铸牢中华民族共同体意识心得感悟7篇
- 《中国海洋大学》课件
- 神话故事民间故事《后羿射日》绘本课件
- “雄鹰杯”全国小动物医师技能大赛考试题库(660题)
- 2024-2025学年江苏省南通市海安市高二(上)月考物理试卷(10月份)(含答案)
- 2024年度中国钠离子电池报告
- 2024-2025学年人教版七年级地理上学期 期中复习专练03 易错点梳理
- 2024年小学六年级语文阅读理解讲义:记叙文阅读训练
- 中建三局三公司安装分公司劳务企业定额
- DL∕T 1487-2015 单相智能电能表技术规范
- 中国少年先锋队队史
评论
0/150
提交评论