完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
程序延迟可能有问题
#include "reg51.h" #include "absacc.h" #define uchar unsigned char #define uint unsigned int code uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uchar dspbuf[8] = {10,10,10,10,10,10,10,10}; uchar dspcom=0; uchar temp; ***it DQ=P1^4; void delay(uint t); void init_ds18b20(); void write_ds18b20(uchar dat); uchar read_ds18b20(); uchar readtemperature(); void display(); void main() { TMOD|=0X01; TH0=(65536-2000)/256; TL0=(65536-2000)%256; EA=1; ET0=1; TR0=1; while(1) { temp=readtemperature(); dspbuf[6]=temp/10; dspbuf[7]=temp%10; } } void zhongduan () interrupt 1 { TH0=(65536-2000)/256; TL0=(65336-2000)%256; display(); } void delay(uint t) { while(t--); } void init_ds18b20() { uchar n; DQ=1; delay(8); DQ=0; delay(80); DQ=1; delay(8); n=DQ; delay(4); } void write_ds18b20(uchar dat) { uchar i; for(i=0;i<8;i++) { DQ=0; DQ=dat&0x01; delay(4); DQ=1; dat>>=1; } delay(4); } uchar read_ds18b20() { uchar i,value; for(i=0;i<8;i++) { DQ=0; value>>=1; DQ=1; if(DQ) value|=0x80; delay(4); } return value; } uchar readtemperature() { uchar a,b; init_ds18b20(); write_ds18b20(0xcc); write_ds18b20(0x44); delay(300); init_ds18b20(); write_ds18b20(0xcc); write_ds18b20(0xbe); a=read_ds18b20(); b=read_ds18b20(); b<<=4; b+=(a&0xf0)>>4; return b; } void display() { XBYTE[0xE000]=0xff; XBYTE[0XC000]=1< if(++dspcom==8) dspcom=0; } |
|
相关推荐
2个回答
|
|
|
错误是uchar dspbuf[8]写入和读出时序错误,一次读出的内容包含两次写入的部分拼接的结果,显示必然闪烁
readtemperature()应当也放入中断,display()可以跟在后面,最好用定时器中断 |
|
|
|
|
|
主函数中:
temp=readtemperature(); dspbuf[6]=temp/10; dspbuf[7]=temp%10; 在 dspbuf[6]=temp/10; dspbuf[7]=temp%10; 之前关中断,之后开中断,中断响应中调用的display()函数读取这两个字节时数据就是同步的 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
506 浏览 0 评论
607 浏览 0 评论
837 浏览 0 评论
832 浏览 0 评论
RT-Thread与英飞凌(infineon)合作得板子PSOC 6 板子学习
768 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
17058 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-14 08:23 , Processed in 3.032291 second(s), Total 78, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4412