基于单片机的温度测量装置设计(编辑修改稿)内容摘要:

应用方便,可直接用 USB 线下载代码。 晶振选取 12MHz,晶振旁电容选取 20pF。 采用按键复位电路,电阻分别选取 100Ω 和 10K, 电容选取。 以下为单片机最小系统硬件电路图: 图 单片机最小系统硬件电路 数码管显示电路 本课程设计采用八位数码管显示,为了节约 I/O 口资源,从而采用动态扫描的方式, P0 口段选, P2 位选,由于是 P0 口段选所以要接上拉电阻,显示电路部分如下: 5 图 数码管显示硬件电路图 报警器电路 当温度大于 80℃ 时,蓝灯 亮,当温度小于等于 80℃ 时,绿灯亮。 图 报警器电路 图 报警器电路 4 系统软件设计 主程序设计 主程序既把以上各子程序串连成一个整体,使整个程序循环运行。 主程序一直调用 显示 电路,若 温度改变 ,则会进入以下的主程序部分执行相应的 A/D 转换 操作并作出相应的处理。 通过 转换 后, 显示的值也会同时发生改变。 之后再 返回到程序 6 始端 ,如此反复运行,就构成了程序的整体。 图 主程序流程图 A/D 转换 子程序设计 这次课程设计采用的是 8 位串行 A/D 转换芯片 ADC0831,每一个时钟信号下降沿开始,输出一位数据,直到 8 位数据全部输完为止,输出的顺序是从最高位到最低位。 A/D 转换子程序的工作原理: 开启 A/D 转换芯片, 将 A/D 转换结果送进位 C,然后左移 A 寄存器,直到 8 位数全部送到 A 寄存器, 关闭 A/D 转换,最后将 A/D 转换结果存储到 30H 单元。 图 AD转换子程序 启动 A/D 转换 8 送 R0 AD 转换结果送 A R01=0。 关闭 AD 转换 N Y 开始 初始化 开计数器 T0 读 TL0 数据 A/D 转换 调用显示程序 7 A/D 转换 子程序如下: AD_CONY: SETB CS CLR CLK NOP NOP CLR CS NOP NOP SETB CLK NOP NOP CLR CLK NOP NOP SETB CLK NOP NOP CLR CLK MOV R0,08H AD_READ: CLR CLK MOV C,DO RLC A SETB CLK NOP NOP DJNZ R0,AD_READ SETB CS MOV AD_TMP,A RET 8 显示子 程序设计 将 AD 转换的结果送 A 寄存器,将 100 送 B 寄存器,然后 A 除以 B,得到的商存到百位存储单元。 再将 B 寄存器里的数送 A 寄存器, 把 10 送 B 寄存器,再 A除以 B,得到的商存十位存储单元,余数存个位单元。 图 显示子程序流程图 显示子程序如下: DISPLAY: MOV A,AD_TMP MOV DPTR,TAB1 MOVC A,@A+DPTR CJNE A,80,S1 SJMP S3 S1: JNC S2 SJMP S4 S2: CLR SJMP S4 S3: SETB S4: MOV B,100 100 送 B A 除以 B 商存百位存储单元 B 送 A 10 送 B 商存十位存储单元 余数存个位存储单元 AD 转换结果送 A RET 9 DIV AB MOV AD_TMP_1,A MOV A,B MOV B,10 DIV AB MOV AD_TMP_2,A MOV AD_TMP_3,B MOV DPTR,TAB MOV A,AD_TMP_1 MOVC A,@A+DPTR MOV P0,A SETB LCALL DLY CLR MOV A,AD_TMP_2 MOVC A,@A+DPTR MOV P0,A SETB LCALL。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。