基于ds18b20的多点温度采集系统设计(lcd内容摘要:
NT LCALL LOOK_ALARM JB K3,$ LCALL BEEP_BL JMP PROC_K2 PROC_K1: JB K2,PROC_END LCALL BEEP_BL JNB K2,$ MOV DPTR,RST_A1 MOV A,1 LCALL LCD_PRINT LCALL SET_ALARM LCALL RE_18B20。 将设定的 TH,TL 值写入 DS18B20 LCALL WRITE_E2 PROC_K2: LCALL MENU_OK LCALL TEMP_BJ PROC_END:RET。 *************************** 设定温度报警值 TH、 TL *************************** SET_ALARM:LCALL LOOK_ALARM AS0: JB K1,AS00 LCALL BEEP_BL JNB K1,$ CPL。 UP/DOWN 标记 AS00: JB ,ASZ01。 =1,增加 JMP ASJ01。 =0,减小 ASZ01: JB K2,ASZ02。 TH 值调整 (增加 ) LCALL BEEP_BL INC TEMP_TH MOV A,TEMP_TH CJNE A,120,ASZ011 MOV TEMP_TH,0 ASZ011: LCALL LOOK_ALARM MOV R5,10 LCALL DELAY JMP ASZ01 ASZ02: JB K3,ASZ03。 TL 值调整 (增加 ) LCALL BEEP_BL INC TEMP_TL MOV A,TEMP_TL CJNE A,99,ASZ021 MOV TEMP_TL,00H ASZ021: LCALL LOOK_ALARM MOV R5,10 LCALL DELAY JMP ASZ02 ASZ03: JB K4,AS0。 确定调整 LCALL BEEP_BL JNB K4,$ RET ASJ01: JB K2,ASJ02。 TH 值调整(减少) LCALL BEEP_BL DEC TEMP_TH MOV A,TEMP_TH 14 CJNE A,0FFH,ASJ011 JMP ASJ022 ASJ011: LCALL LOOK_ALARM MOV R5,10 LCALL DELAY JMP AS0 ASJ02: JB K3,ASJ03。 TL 值调整(减少) LCALL BEEP_BL DEC TEMP_TL MOV A,TEMP_TL CJNE A,0FFH,ASJ021 JMP ASJ022 ASJ021: LCALL LOOK_ALARM。 MOV R5,10 LCALL DELAY JMP AS0 ASJ022: CPL JMP ASZ01 ASJ03: JMP ASZ03 RET RST_A1: DB SET ALERT CODE ,0。 *********************** 实测温度值与设定温度值比较子程序 ********************** TEMP_COMP:MOV A,TEMP_TH SUBB A,TEMP_ZH。 减数 被减数,则 JC CHULI1。 借位标志位 C=1,转 MOV A,TEMPFC CJNE A,0BH,COMP SJMP CHULI2 COMP: MOV A,TEMP_ZH SUBB A,TEMP_TL。 减数 被减数,则 JC CHULI2。 借位标志位 C=1,转 MOV DPTR,BJ5 LCALL TEMP_BJ3 CLR RELAY RET CHULI1: MOV DPTR,BJ3 LCALL TEMP_BJ3 SETB RELAY LCALL BEEP_BL RET CHULI2: MOV DPTR,BJ4 LCALL TEMP_BJ3 SETB RELAY LCALL BEEP_BL RET。 TEMP_BJ3: MOV A,0CEH LCALL WCOM MOV R1,0 MOV R0,2 BBJJ3: MOV A,R1 MOVC A,@A+DPTR LCALL WDATA INC R1 DJNZ R0,BBJJ3 RET BJ3: DB H BJ4: DB L BJ5: DB !。 **************************** 显示温度标记子程序 *************************** TEMP_BJ: MOV A,0CBH 15 LCALL WCOM MOV DPTR,BJ1。 指针指到显示消息 MOV R1,0 MOV R0,2 BBJJ1: MOV A,R1 MOVC A,@A+DPTR LCALL WDATA INC R1 DJNZ R0,BBJJ1 RET BJ1: DB 00H,C。 ******************************** 显示正确信息子程序 *************************** MENU_OK: MOV DPTR,M_OK1。 指针指到显示消息 MOV A,1。 显示在第一行 LCALL LCD_PRINT MOV DPTR,M_OK2。 指针指到显示消息 MOV A,2。 显 示在第一行 LCALL LCD_PRINT RET M_OK1: DB DS18B20 OK ,0 M_OK2: DB TEMP: ,0。 ******************************** 显示出错信息子程序 *************************** MENU_ERROR:MOV DPTR,M_ERROR1。 指针指到显示消息 MOV A,1。 显示在第一行 LCALL LCD_PRINT MOV DPTR,M_ERROR2。 指针指到显示消息 1 MOV A,2。 显示在第一行 LCALL LCD_PRINT RET M_ERROR1: DB DS18B20 ERROR ,0 M_ERROR2: DB TEMP: ,0。 ****************************DS18B20 复位子程序 ***************************** RST: SETB DQ NOP CLR DQ MOV R0,6BH。 主机发出延时复位低脉冲 MOV R1,04H TSR1: DJNZ R0,$ MOV R0,6BH DJNZ R1,TSR1 SETB DQ。 拉高数据线 NOP NOP NOP MOV R0,32H TSR2: JNB DQ,TSR3。 等待 DS18B20 回应 DJNZ R0,TSR2 JMP TSR4。 延时 TSR3: SETB FLAG1。 置 1 标志位 ,表示 DS1820 存在 JMP TSR5 TSR4: CLR FLAG1。 清 0 标志位 ,表示 DS1820 不存在 JMP TSR7 TSR5: MOV R0,06BH TSR6: DJNZ R0,$。 时序要求延时一段时间 TSR7: SETB DQ RET。 ************************ DS18B20 暂存器操作子程序 *************************** RE_18B20:JB FLAG1,RE_18B20A RET 16 RE_18B20A: LCALL RST MOV A,0CCH。 跳过 ROM 匹配 LCALL WRITE WR_SCRAPD: MOV A,4EH。 写暂器 LCALL WRITE MOV A,TEMP_TH。 TH(报警上限) LCALL WRITE MOV A,TEMP_TL。 TL(报警下限) LCALL WRITE MOV A,7FH。 12 位精度 LCALL WRITE RET。 ************************ 复制暂存器子程序 ******************************* WRITE_E2:LCALL RST MOV A,0CCH。 跳过 ROM 匹配 LCALL WRITE MOV A,48H。 把暂存器里的温度报警值拷贝到 EEROM LCALL WRITE RET。 *********************** 重读 EEROM 子程序 ******************************** READ_E2:LCALL RST MOV A,0CCH。基于ds18b20的多点温度采集系统设计(lcd
相关推荐
e II、 Stratix II 系列、 Stratix GX 系列等。 支持 IP 核,包含了 LPM/Mega Function 宏功能模块库,用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。 此外, Quartus II 通过和 DSP Builder 工具与Matlab/Simulink 相结合,可以方便地实现各种 DSP 应用系统;支持 Altera 的片上可编程系统(
过一根下载线(如 ByteBlasterII) 来下载程序 ,这种模式特别方便、简单。 但它的缺点就是不能掉电保存程序。 因此限制了其商业化的目的。 主动和被动模式都使用外部存储器来存放配置数据,达到掉电保存配置数据的目的。 在专用的配置芯片较贵时,普遍采用被动方式来配置,即采用微处理器和一片大容量的 ROM 来代替专用芯片,但是必须自己编写程序来模仿下载时序对芯片进行配置,比较烦琐。
EPROM、 PROM编程器即可。 由于配置时间很短,因而不会影响系统正常工作。 当然也有少数 FPGA 采用反熔丝或 FLASH 工艺,对这种 FPGA 就不需要外加专用的配置芯片了。 这样,同一片 PFGA,不同的编程数据可以产生不同的电路功能。 因此, FPGA 的使用非常灵活 [8]。 随着的不断发展以及用户需求的不断提出, FPGA 的技术也在不断地发展。
为距离 4+边 2,4 的长度 距离 2,所以不更新 ) 医院 1 已 标号 距离 0 医院 2 未标号 距离 ∞ 医院 3 已 标号 距离 4 医院 4 未标号 距离 9 12 4 5 6 医院 1 已 标号 距离 0 医院 2 未标号 距离 ∞ 医院 3 未标号 距离 4 医院 4 未标号 距离 ∞ 12 4 5 6 10 找所 有未标号中距离最短的顶点为 医院 2,将 2做标号 ,已没有与
EY3 段产生一个低电平脉冲, picture 计数加 1。 不按 KEY3 时 picture 不变。 当 SW0 为高电平时为自动模式,此时隔一定的时间 picture 自动加 1,并且在自动模式下,每按一次 KEY3, picture 也加 1。 达到了手动与自动相结合控制的目的。 entity control is port( VGA_VS_period :in std_logic。
找尾 { while ( parent[f] 0) { f = parent[f]。 } return f。 关键代码输出最小生成树 以下是主函数部门 int main(void)//主函数 { MGraph *G。 G = (MGraph*)malloc(sizeof(MGraph))。 if (G == NULL) { printf(memory allcation failed