基于89c51和ds18b20的数字温度计设计内容摘要:
============= TEMPDIN BIT。 ============================= 中断向量区 ========================= ORG 0000H LJMP START ORG 00BH LJMP T0IT。 =============================系统初始化 ========================== ORG 100H START: MOV SP,60H CLSMEM: MOV R0,20H MOV R1,60H CLSMEM1: MOV @R0,00H INC R0 DJNZ R1,CLSMEM1 MOV TMOD,00100001B。 定时器 0 工作方式 1( 16BIT) MOV TH0,TIMEL MOV TL0,TIMEH。 20ms 右图为 DS18B20 引脚 图 DS18S20 采用 3脚 PR35 封装(或 8 脚 SOIC 封装), DQ为数据输入 /输出脚, VDD 为电源电压。 11 SJMP INIT ERROR: NOP LJMP START NOP INIT: NOP SETB ET0 SETB TR0 SETB EA MOV PSW,00H CLR TEMPONEOK LJMP MAIN。 ====================== 定时器 0 中断服务程序 ======================= T0IT: PUSH PSW MOV PSW,10H MOV TH0,TIMEH MOV TL0,TIMEL INC R7 CJNE R7,32H,T0IT1 MOV R7,00H SETB TIME1SOK。 1s 定时到标志 T0IT1: POP PSW RETI。 ============================= 主程序 ============================= MAIN: LCALL DISP1。 调用显示子程序 JNB TIME1SOK,MAIN CLR TIME1SOK。 测温每 1s 一次 JNB TEMPONEOK,MAIN2。 上电时先温度转换一次 LCALL READTEMP1。 读出温度值子程序 LCALL CONVTEMP。 温度 BCD 码计算处理子程序 LCALL DISPBCD。 显示区 BCD 码温度值刷新子程序 LCALL DISP1。 消闪烁,显示一次 MAIN2: LCALL READTEMP。 温度转换开始 SETB TEMPONEOK LJMP MAIN。 ============================= 子程序区 ===========================。 RESET DS18B20。 ================================================================ INITDS1820:SETB TEMPDIN NOP NOP CLR TEMPDIN MOV R6,0A0H。 DELAY 480us DJNZ R6,$ MOV R6,0A0H 12 DJNZ R6,$ SETB TEMPDIN MOV R6,32H。 DELAY 70us DJNZ R6,$ MOV R6,3CH LOOP1820: MOV C,TEMPDIN JC INITDS1820OUT DJNZ R6,LOOP1820 MOV R6,064H DJNZ R6,$ SJMP INITDS1820 RET INITDS1820OUT: SETB TEMPDIN RET。 ====== 读 DS18B20 的程序,从 DS18B20 中读出一个字节的数据 ============= READDS1820: MOV R7,08H SETB TEMPDIN NOP NOP READDS1820LOOP: CLR TEMPDIN NOP NOP NOP SETB TEMPDIN MOV R6,07H。 DELAY 15us DJNZ R6,$ MOV C,TEMPDIN MOV R6,3CH。 DELAY 120us DJNZ R6,$ RRC A SETB TEMPDIN DJNZ R7,READDS1820LOOP MOV R6,3CH。 DELAY 120 us DJNZ R6,$ RET。 ======== 写 DS18B20 的程序,从 DS18B20 中写一个字节的数据 ============= WRITEDS1820: MOV R7,08H SETB TEMPDIN NOP NOP WRITEDS1820LOP: CLR TEMPDIN MOV R6,07H。 DELAY 15us DJNZ R6,$ RRC A 13 MOV TEMPDIN,C MOV R6,34H。 DELAY 104us DJNZ R6,$ SETB TEMPDIN DJNZ R7,WRITEDS1820LOP RET。 ========================= READ TEMP =========================== READTEMP: LCALL INITDS1820 MOV A,0CCH LCALL WRITEDS1820。 SKIP ROM MOV R6,34H。 DELAY 104us DJNZ R6,$ MOV A,44H LCALL WRITEDS1820。 START CONVERSION MOV R6,34H。 DELAY 104 DJNZ R6,$ RET READTEMP1: LCALL INITDS1820 MOV A,0CCH LCALL WRITEDS1820。 SKIP ROM MOV R6,34H。 DELAY 104us DJNZ R6,$ MOV A,0。基于89c51和ds18b20的数字温度计设计
相关推荐
数字电路或单片机、价格低等优点。 频率 /温度输出式集成湿度传感器。 典型产品为 HTF3223 型。 它除具有 HF3223 的功能以外,还增加了温度信号输出端,利用负温度系数( NTC)热敏电阻作为温度传感器。 当环境温度变化时,其电阻值也相应改变并且从 NTC 端引出,配上二次仪表即可测量出温度值。 系统简介 系统功能简介 本系统实现的功能如下: 对环境 温 、 湿度数据的 采集、 处理
C2440 开发板简介 这里所用的 S3C2440 嵌入式系统开发板功能比较强大 ,配备了完备的硬件资源和开发软件 ,开发板的结构如图 所示。 图 开发板结构图 S3C2440A 是韩国三星公司推出的 16/32 位 RISC 微控制器 ,其 CPU 采 用的是 ARM920T 内核。 电源电路实现了 5v 直流输入到 、 、 输出转换的功能 ,为板上各功能模组的正常工作提供所需电压。
信息也通过数据总线传送。 PA0~ PA7:端口 A 输入输出线,一个 8 位的数据输出锁存器 /缓冲器, 一个 8 位的数据输入锁存器。 PB0~ PB7:端口 B 输入输出线,一个 8 位的 I/O 锁存器, 一个 8 位的输入输出缓冲器。 PC0~ PC7:端口 C 输入输出线,一个 8 位的数据输出锁存器 /缓冲器, 一个 8 位的数据输入缓冲器。 端口 C 可以通过工作方式设定而分成
write_1602dat(Error[j])。 } ThreeAlam()。 //错误提示 pass=0。 ReInputEn=0。 //关闭重置功能, ReInputCont=0。 DisplayChar()。 break。 } } if(i==6) { //DisplayListChar(0,1,ResetOK)。 write_1602(er)。 for(j=0。 j16。 j++) {
者方便用户对现有事件作出一定的修改或者删除。 ( 3) 课程管理模块:在课程管理模块中需要有星期的标识,在某一天记录课程时,需要对这门课程的时间有一定的显 示,还有作业的情况方面的提醒,其他的增添删除操作基本同日程管理模块类似。 ( 4) 设置界面模块:其中包含了一些对界面的设置以及对日程的设置选项。 ( 5) 关于信息模块:其中包含了一些本软件的设计信息及使用的一些基本信息。
系统硬件电路的设计 为使硬件电路设计尽可能合理,应注意以下几方面: ( 1) 尽可能采用功能强的芯片,以简化电路,功能强的芯片可以代替若干普通芯片,随着生产工艺的提高,新型芯片的的价格不断下降,并不一定比若干普通芯片价格的总和高。 ( 2)留有设计余地。 在设计硬件电路时,要考虑到将来修改扩展的方便。 因为很少有一锤定音的电路设计,如果现在不留余地