历史上的今天
返回首页

历史上的今天

今天是:2025年01月07日(星期二)

正在发生

2020年01月07日 | PIC单片机对数字温度传感器的控制设计

2020-01-07 来源:eefocus

#include

#define uchar unsigned char

#define uint unsigned int

#define DQ RC1

#define DQ_HIGH() TRISC1=1

#define DQ_LOW() TRISC1=0;DQ=0

__CONFIG(0x3B31);

const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,

0x07,0x7f,0x6f};

const uchar table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,

0x87,0xff,0xef};

uint temper;

uchar a1,a2,a3,a4;

void delay(uint x);

void delayus(uint,uchar);

PIC单片机对数字温度传感器的控制设计

void init();

void disp(uchar num1,uchar num2,uchar num3,uchar num4);

void write_byte(uchar date);

uchar read_byte();

void get_tem();

void main()

{

init();

while(1)

{

/*delayus(0,0);//20

delayus(1,1);//30

delayus(2,2);//45

delayus(4,4);//70

delayus(70,30);//750

delayus(50,10);//500*/

//uchar num;

get_tem();

//for(num=20;num》0;num--)

//disp(a1,a2,a3,a4);

}

}

void reset()

{

uchar st=1;

DQ_HIGH();

NOP();NOP();

while(st)

{

DQ_LOW();

delayus(70,30);

DQ_HIGH();

delayus(4,4);

if(DQ==1)

st=1;

else

st=0;

delayus(50,10);

}

}

void write_byte(uchar date)

{

uchar i,temp;

DQ_HIGH();

NOP();NOP();

for(i=8;i》0;i--)

{

temp=date&0x01;//01010101

DQ_LOW();

delayus(0,0);

if(temp==1)

DQ_HIGH();

delayus(2,2);

DQ_HIGH();

date=date》》1;//00101010

}

}

uchar read_byte()

{

uchar i,date;

static bit j;

for(i=8;i》0;i--)

{

date=date》》1;

DQ_HIGH();

NOP();NOP();

DQ_LOW();

NOP();NOP();NOP();NOP();NOP();NOP();

DQ_HIGH();

NOP();NOP();NOP();NOP();

j=DQ;

if(j==1)

date=date|0x80;//1000 0000

delayus(1,1);

}

return (date);

}

void get_tem()

{

uchar tem1,tem2,num;

float aaa;

reset(); //复位

write_byte(0xCC);//跳过ROM

write_byte(0x44);//温度转换

for(num=100;num》0;num--)

disp(a1,a2,a3,a4);

reset();

write_byte(0xCC);

write_byte(0xBE);

tem1=read_byte();

tem2=read_byte();

aaa=(tem2*256+tem1)*6.25;

temper=(int)aaa;

a1=temper/1000;

a2=temper%1000/100;

a3=temper%100/10;

a4=temper%10;

}

void delayus(uint x,uchar y)

{

uint i;

uchar j;

for(i=x;i》0;i--);

for(j=y;j》0;j--);

}

void delay(uint x)

{

uint a,b;

for(a=x;a》0;a--)

for(b=110;b》0;b--);

}

void init()

{

TRISD=0;

TRISA=0;

PORTD=0;

PORTA=0;

}

void disp(uchar num1,uchar num2,uchar num3,uchar num4)

{

PORTD=table[num1];//显示第一个数码管

PORTA=0x20;//0010 0000

delay(2);

PORTD=table1[num2];//显示第二个数码管

PORTA=0x10;//0001 0000

delay(2);

PORTD=table[num3];//显示第三个数码管

PORTA=0x08;//0000 1000

delay(2);

PORTD=table[num4];//显示第四个数码管

PORTA=0x04;//0000 0100

delay(2);

/*PORTD=table[num5];//显示第五个数码管

PORTA=0x02;//0000 0010

delay(2);

PORTD=table[num6];//显示第六个数码管

PORTA=0x01;//0000 0001

delay(2);*/

}

推荐阅读

史海拾趣

Atlantic Microwave Ltd公司的发展小趣事

随着电子行业的快速发展,Atlantic Microwave Ltd公司意识到,只有不断创新才能在激烈的市场竞争中立于不败之地。公司投入大量研发资金,吸引了一批优秀的科研人才,专注于微波技术的研发与创新。经过数年的努力,公司成功推出了一款具有颠覆性的微波产品,凭借其卓越的性能和稳定性,迅速获得了市场的认可,为公司带来了可观的收益。

EOZ Secme公司的发展小趣事

EOZ Secme公司自创立之初,就致力于电子安全技术的研发。在2010年代初,随着物联网技术的兴起,EOZ Secme敏锐地捕捉到这一机遇,投入大量资源进行物联网安全技术的研发。经过数年的努力,公司成功开发出了一系列具有自主知识产权的物联网安全解决方案,并在市场上获得了广泛应用。这些技术的创新不仅提高了EOZ Secme的市场竞争力,也奠定了其在电子安全领域的领先地位。

Amphenol RF公司的发展小趣事

在电子产品市场竞争日益激烈的背景下,EOZ Secme始终坚守品质至上的原则。公司从原材料采购、生产流程到售后服务都进行严格把控,确保每一件产品都符合高标准的质量要求。这种对品质的执着追求让EOZ Secme的产品在市场上赢得了良好的口碑,也使其品牌价值得到了显著提升。

Eclipse Magnetics公司的发展小趣事

随着环保意识的不断提高,EOZ Secme积极响应绿色环保的号召。公司在生产过程中采用了多项环保措施,减少了对环境的污染。同时,EOZ Secme还积极参与社会公益事业,通过捐款、赞助等方式回馈社会。这些举措不仅提升了公司的社会形象,也为其赢得了更多消费者的认可和支持。

Ememory Technology Inc公司的发展小趣事

随着电子行业的快速发展和市场竞争的加剧,eMemory始终保持着对新技术和新市场的敏锐洞察力。公司不断推出新的硅智财产品和解决方案,以满足客户不断变化的需求。同时,eMemory还积极拓展国际市场,与全球多家知名芯片设计厂商建立了长期稳定的合作关系。这些努力使得eMemory在电子行业中保持着领先地位,并为其未来的发展奠定了坚实的基础。

广东奥科公司的发展小趣事

在国内市场取得一定成绩后,广东奥科公司开始积极拓展国际市场。公司参加了多个国际电子展会,与国际知名企业建立了合作关系,成功将产品打入国际市场。同时,广东奥科公司还注重品牌建设,通过提升产品质量和服务水平,逐渐树立了良好的品牌形象。这些努力使得广东奥科公司在国际市场上也获得了广泛的认可和好评。

问答坊 | AI 解惑

将RVDS中的工程移植到RealView MDK

将RVDS中的工程移植到RealView MDK说明文档 请点击链接:http://arm.embedinfo.com/BBS/dispbbs.asp?boardid=3&Id=219…

查看全部问答>

AT89C51控制SAA1042驱动步进电机

AT89C51控制SAA1042驱动步进电机,当怎么调电机总是转不起来,不值是怎么回事? 麻烦大侠们指点指点,有程序的更好。…

查看全部问答>

大学生智能汽车设计整本书课件(超级推荐)

本帖最后由 paulhyde 于 2014-9-15 03:51 编辑 这是《大学生智能汽车设计》整本书的课件,内容很全面,希望对大家有所帮助~~~以下是目录 第1章 智能汽车设计导论 1.1 智能汽车 1.1.1 智能汽车设计的意义及研究内容 1.1.2 智能汽车设计的技术关 ...…

查看全部问答>

Crossing clock domains - Signal

A signal to another clock domain Let\'s say a signal from clkA domain is needed in clkB domain. It needs to be \"synchronized\" to clkB domain, so we want to build a \"synchronizer\" design, which takes a signal from clkA domain, ...…

查看全部问答>

求HP打印机PCL语言手册

我正在开发一个Windows Mobile的打印程序,想直接使用PCL来打印,但找不到PCL手册。…

查看全部问答>

wince下红外驱动

有人在wince下做过红外驱动吗?能提供一些资料吗?要有源码就更好了。…

查看全部问答>

英蓓特STM32V100可以SWD调试了

                                 如果要SWD调试,那么要用外部仿真器,然后把子板下的244去掉,把板子的JP3 JP7 JP9 JP13 JP10 ...…

查看全部问答>

基于DS18B20和四位LED的温度自动控制系统

基于DS18B20和四位LED的温度自动控制系统 1:采用DS18B20采集温度,精度在0.1度。 2:采用89S52芯片。 3:采用四位共阳LED数码显示,亮度高。 4:可以设定控制温度,达到设定值继电器A工作,低于设定值继电器A断开。 5:超温报警,超过设定温 ...…

查看全部问答>

用ATMEGA16控制NRF905进行简单的收发,调了一周了,希望哪位大侠能帮俺播开云雾!!

发送段代码: #include <iom16v.h>#include <macros.h>#define uint  unsigned int#define uchar unsigned char#define   Low_TX_EN      PORTD&=~(1 << PD7)#define   High ...…

查看全部问答>

求insight ME-52单片机的模拟环境运行软件

有10年没有怎么摸这个东西了,最近公司突然有了一个产品需要用到这个东西,硬件CPU是AT89C52,我手里有个10年前买的Insignt ME-52,但找不到运行环境的软件了.恳求专家指点,那里能够下载到这个软件?…

查看全部问答>