基于89c52的数字温度传感器设计课程设计(编辑修改稿)内容摘要:
char dat) { unsigned char i=0。 for(i=0。 i8。 i++) { DQ=0。 DQ=datamp。 0x01。 delay(5)。 DQ=1。 dat=1。 } } /**********************************/ ReadTemperature(void) { unsigned char a=0。 unsigned char b=0。 unsigned int t=0。 float tt=0。 Init_DS18B20()。 WriteOneChar(0xcc)。 WriteOneChar(0x44)。 Init_DS18B20()。 WriteOneChar(0xcc)。 WriteOneChar(0xbe)。 a=ReadOneChar()。 b=ReadOneChar()。 t=b。 t=8。 t=t|a。 tt=t*。 t=tt*10+。 return(t)。 } /***************************/ ifndef __18B20_H__ define __18B20_H__ include sbit DQ=P2^2。 Init_DS18B20(void)。 ReadOneChar(void)。 WriteOneChar(unsigned char dat)。 ReadTemperature(void)。 void delay(unsigned int i)。 endif 液晶显示子函数 include include uchar hanzi0[]=时间 :。 uchar hanzi1[]=温度 :。 uchar hanzi2[]=高报警 :。 uchar hanzi3[]=低报警 :。 void delay_ms(uchar a) { uint i,j。 for(i=a。 i0。 i) for(j=6245。 j0。 j)。 } /************************************************/ /******************************* //在 12m 晶振时延时 50us **********************************/ void delayus(uchar t) { uint i,j。 for(i=t。 i0。 i) for(j=19。 j0。 j)。 } /********************************/ void write_(uchar ) { rs=0。 rw=0。 e=0。 lcd_dat_port=。 delayus(1)。 e=1。 delayus(10)。 e=0。 delayus(2)。 } /***********************************/ void write_data(uchar dat) { rs=1。 rw=0。 e=0。 lcd_dat_port=dat。 delayus(1)。 e=1。 delayus(10)。 e=0。 delayus(2)。 } /********************************/ void init() { uchar i。 delay_ms(2)。 write_(0x30)。 delayus(4)。 write_(0x30)。 delayus(4)。 write_(0x0c)。 delayus(4)。 write_(0x01)。 delayus(240)。 write_(0x06)。 delayus(10)。 /******************/ write_(0x80)。 delay_ms(1)。 for(i=0。 i9。 i++) { write_data(hanzi0[i])。 } write_(0x90)。 delay_ms(1)。 for(i=0。 i9。 i++) { write_data(hanzi1[i])。 } write_(0x88)。 delay_ms(1)。 for(i=0。 i16。 i++) { write_data(hanzi2[i])。 } write_(0x98)。 delay_ms(1)。 for(i=0。 i16。 i++) { write_data(hanzi3[i])。 } delay_1ms(10)。 } ifndef __LCD12864_H__ define __LCD12864_H__ include include define lcd_dat_port P0 sbit rs=P3^5。 sbit e=P3^4。 sbit rw=P3^6。 void write_(uchar )。 void write_data(uchar dat)。 void delay_ms(uchar a)。 void delayus(uchar t)。 void init()。 void lcd_char_write(uchar x_pos,y_pos,lcd_dat)。 endif 延时函数 include void delayshu(void) { int k。 for(k=0。 k1000。 k++)。 } /**********************/ void lcd_delay(uint ms) { uint i。 while(ms) { for(i=0。 ii++) {。 } } } /***************************************/ /**********************************/ void delay_1ms(uchar x) { uchar i=0,j=0。 for(i=0。 ix。 i++) { for(j=0。 j113。 j++) {。 } } } ifndef __DELAY_H__ define __DELAY_H__ include define uchar unsigned char define uint unsigned int void lcd_delay(uchar ms)。 void delayshu(void)。 void delay_1ms(uchar x)。 endif 时钟函数 include include /******************************************************************** 函 数 名: RTInputByte() 功 能:实时时钟写入一字节 说 明:往 DS1302 写入 1Byte 数据 (内部函数 ) 入口参数: d 写入的数据 返 回 值:无 设 计: zhaojunjie 日 期: 20200319 修 改: 日 期:。基于89c52的数字温度传感器设计课程设计(编辑修改稿)
相关推荐
灵活、超有效的解决方案。 具有以下标准功能: 8k字节 Flash, 512 字节 RAM, 32 位 I/O 口线, 看门狗定时器 ,内置 4KB EEPROM, MAX810加热模式 0 加热模式 1 加热模式 2 加热模式 3 模式选择 单 片 机 温度传感器 数码管 继电器 定时器(模式 1) 外部中断(模式 3) 单片机设计报告 7 复位电路, 2 个 16 位 定时器 /计数器,一个
转换时间为 32μS; ( 6) 一般功耗仅为 15mW; ( 7) 8P、 14P— DIP(双列直插)、 PICC 多种封装; ( 8) 商用级芯片 温宽为 0176。 C to +70176。 C,工业级芯片温宽为 −40176。 C to +85176。 C; 其 芯片接口说明 为 : ( 1) CS_ 片选使能,低电平芯片使能。 ( 2) CH0 模拟输入通道 0,或作为 IN+/使用
)。 RS( 4 脚): RS 为寄存器选择,高电平 1 时选择数据寄存器、低电平 0 时选择指令寄存器。 R/W( 5 脚): R/W 为读写信号线,高电平 (1)时进行读操作,低电平 (0)时进行写 操作。 E( 6 脚): E(或 EN)端为使能 (enable)端,下降沿使能。 DB0( 7 脚): 低 4 位三态、 双向数据总线 0 位(最低位) DB1( 8 脚): 低 4 位三态、
CJNE R6,N,SET_TAB START:MOV TMOD, 61H MOV TH1,0FFH MOV TL1,0FFH SETB ET1 SETB ET0 CLR PT0 SETB PT1 SETB IT0 SETB PX0 SETB IT1 SETB PX1 SETB EX1 SETB EX0 SETB EA SETB TR1 CLR OUT CLR F0 MOV R7,00H
0 0 星期数据 年 06H 8CH 8DH 00~99 年数据 多字节读写 BEH BFH — — 表 345 片内时钟数据寄存器 ≈ SCLK SCLK K I/O 5 0 0 0 7 0 0 0 1 3 0 0 0 5 0 0 0 7 0 0 0 2 0 0 0 1 0 0 0 0 2 4 0 0 0 6 0 0 0 0 0 0 0 ≈ 4 0 0 0 6 0 0 0 R/C A2 A3
} irpro_ok=1。 //处理完毕标志位置 1 } 第 14 页 共 32 页 (6)器件采购 元件名称 数量 元件名称 数量 STC89C52RC芯片 一个 12MHZ晶振 一个 LCD显示屏 一个 二极管 一个 三极管 两个 按键 十七个 LED 一个 103滑动变阻器 一个 蜂鸣器 一个 SRA06VDC继电器 一个 AT24C02芯片 一个 红外遥控器 一个 红外接收头 一个 导线