微原课设_家用电热淋浴器的设计.doc_第1页
微原课设_家用电热淋浴器的设计.doc_第2页
微原课设_家用电热淋浴器的设计.doc_第3页
微原课设_家用电热淋浴器的设计.doc_第4页
微原课设_家用电热淋浴器的设计.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

重庆科技学院微机原理与接口技术课程设计报告摘 要随着社会和科学技术的日益发展,家用电热淋浴器也受到了广大家庭用户的信睐。本次课程设计设计的项目就是模拟电热水器控制器的设计,本项目的设计可通过实验平台上的一些功能模块电路组成,由于各模块电路内部已经连接,用户在使用时只要设计模块间电路的连接。因此,硬件电路的设计及实现相对简单。控制系统的硬件用8086系统构成:CPU 8086,8254定时器/计数器芯片,8255并行接口芯片,键盘单元,4位7段数码管单元,A/D转换单元,电子发声器等单元。关键字:8254定时器/计数器 8255并行接口 A/D转换 电子发声器等目 录1 概述11.1 设计内容11.2 设计要求11.3 设备需求12 概要设计22.1 硬件设计22.2 总体流程图22.3 硬件连线图43 详细设计53.1 A/D转换设计53.2 电子发声设计63.3 键盘扫描及数码管显示设计84 系统测试12总 结13参考文献14附件17II重庆科技学院微机原理与接口技术课程设计报告1 概述到2003年,我国城市家庭热水器产品的普及率已达到71.5%。中国家电市场调查研究课题组经过近4年的连续性调查发现,中国城市家庭热水器产品的普及率基本稳定在70%左右,城市家庭较高的普及率说明热水器市场总体上已进入成熟阶段。然而家用电热淋浴器控制器的设计也是相当重要的,是值得引起关注的。1.1 设计内容要求打开电源后,先设定水温,水温分为八档(30100,每10 为一档);按下启动键后,开始测量水温并显示,控制电热管加热。1.2 设计要求1)控制系统硬件用8086系统构成:CPU 8086,定时器/计数器芯片,并行接口芯片,中断控制器,键盘单元,4位7段数码管单元,模数单元,蜂鸣器等单元。2)设计控制系统应用软件。3)系统功能:智能启动电热管加热和停止加热、上下限水位报警等功能。4)设定两个按键,其中一个用来增加温度,另一个用来降低温度。5)超过上限水位和低于下限水位发出不同的报警音。1.3 设备需求PC微机一台、TD-PIT+实验系统一套2 概要设计本设计通过运用8254 、8255 和ADC0809等芯片来模拟设计一个家用电热淋浴器控制器。通过此模拟电热器,可以在打开电源后,先设定水温,水温分为4档(小于30、3060 、60100 、大于100为一档)并且这个四个档分别对应四个不同的LED灯;按下启动键后,开始测量水温并显示在相应的显示单元上,启动电热管加热和降温功能,当温度不在设置范围内时,将会启动报警装置,对其进行报警。2.1 硬件设计1)水温设定系统主要是通过键盘上的16个按键,选定其中三个键,分别作为加温、减温和确定。首先将X1X4初始化为07H,这样键盘上就只有一行可以实现按键的输出,然后通过Y1Y4判断哪一列有键按下,最后通过程序处理判断是否按下了此键。2) 分档加热控制系统通过0809芯片的调节旋转按钮来达到加热的控制。首先将温度分为四个档(030,30T0,T0100,100255),其中T0为用户自己设置的水温,设置了相应的指示灯来提示档数。还设置了水温不在30100范围内时,发出声音报警的功能。3)声音警报系统当水温过低时系统会有一种提示灯和一种声音提示,当水温过高时系统也会有另一种提示灯和另一种声音来提示4) LED显示灯的控制使用LED显示灯可以更直接地控制水温,当水温大于100时,一个红灯亮,当水温在100T0时,两个红灯亮,当水温在T030时,两个绿灯亮,当水温低于30时,一个绿灯亮。2.2 总体流程图如图2-1。开始初始化8255,LED显示初值读取键值是否为增加键YN初值+1初值-1为减少键LED显示改变值读取键值读A/D转换单元判断A/D单元值与LED显示值大于小于等于结束红灯显示绿灯显示A/D大于100摄氏度蜂鸣器发出一种提示音A/D小于30摄氏度YY蜂鸣器发出另一种提示音调节A/D单元NN图2-1 总体流程图 2.3 硬件连线图如图2-2图2-2 总的硬件接线图3 详细设计本项目的设计可通过实验平台上的一些功能模块电路组成,由于各模块电路内部已经连接,用户在使用时只要设计模块间电路的连接,因此,硬件电路的设计及实现相对简单。硬件电路由A/D转换模块、电子发声模块和键盘扫描及数码管显示模块组成。3.1 A/D转换设计ADC0809包括一个8拉的逐次逼近型的ACD部分,并提供一个8通道的模拟多路开关和联合寻址逻辑。用它可直接输入8个单端的模拟信号,分时进行A/D转换,在多点巡回检测、过程控制等应用领域中使用非常广泛。ADC0809的主要技术指标有分辨率、转换时间、电源灵敏度、时钟频率等。其芯片引脚图如图3-2,硬件接线图如图3-3。图3-2 ADC0809引脚图 图3-3 A/D硬件接线图其核心代码如下:MOV DX,AD0809 ;启动A/D转换 OUT DX,AL MOV DX,AD0809 ;读出转换结果 IN AL,DX MOV AH,0H MOVAD_N,AX CALL CMP_M ;确定安全范围 CALL LED ;LED显示十进制 MOV AH,1 ;判断是否有按键按下 INT 16H JZ LOOP1 ;无按键则跳回继续循环,有则退出QUIT: MOV AX,4C00H ;结束程序退出 INT 21H3.2 电子发声设计根据实验提供的音乐频率表和时间表,编写程序控制8254,8254内部结构和引脚图如图3-4所示。使其输出连接到扬声器上能发出相应的乐曲。利用8254的方式3“方波发生器”,将相应一种频率的计数初值写入计数器,就可产生对应频率方波。频率表和时间表是一一对应的,频率表的最后一项为0,作为重复的标志。根据频率表中的频率算出参应的计数初值,然后依次写入8254的计数器。将时间表中的相对时间值带入延时程序来得到音符演奏时间。其硬件接线图如图3-5所示。图3-4 8254内部结构图和引脚图图3-5 电子发声硬件接线图其核心代码如下:;扬声器报警发声-BAOJING PROC PUSH AX PUSH BX PUSH CX PUSH DXMOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,36H ;定时器0、方式3 OUT DX,ALMOV DX,0FHMOV DX,0FH ;输入时钟为1.0416667MHz,1.0416667M = 0FE502H MOV AX,0E502H MOV BX,FREQ DIV BX ;取出频率值计算计数初值,0F4240H / 输出频率 MOV DX,MY8254_COUNT0 OUT DX,AL ;装入计数初值 MOV AL,AH OUT DX,AL MOV DL,TIME CALL DELAY MOV DX,MY8254_MODE ;退出时设置8254为方式2,OUT0置0 MOV AL,10H OUT DX,AL POP DX POP CX POP BXPOP AX RETBAOJING ENDP3.3 键盘扫描及数码管显示设计实验系统中的键盘及数码管显示单元提供了4行4列共16个按键,4个7段数码管了接成扫描电路方式。共用段位控制信号ADp,各自独立的公共端主列选择信号X1X4,行扫描信号为Y1Y4。电路原理如图3-6所示。 图3-6 键盘及数码管显示单元电路结构图X1X4控制4位数码管的公共端,并连接到按键的一端,作为列选,确定是哪一列的按键按下。Y1Y4连接到按键的另一端,作为行选,用于检测哪一行的按键按下。结合行选和列选即可得出是哪一个按键按下。在软件设计上要注意消除按键抖动的处理以及数码管显示的刷新。其中需要用到8255,8255的内部结构和引脚图如图3-7 所示,其相应硬件连线图如图3-8所示。图3-7 8255内部结构和引脚图图3-8 8255与键盘及数码管硬件连线图 其核心代码如下:;LED显示LED PROC NEAR MOV AL,0EH MOV DX,MY8255_A ;初始化A口 指定显示管百位显示 OUT DX,AL ;MOV AX,INIT_N MOV AX,INIT_N MOV BL,64H DIV BL MOV BH,AH ;保存余数 MOV SI,OFFSET N_LED_CODE MOV AH,0H ADD SI,AX MOV AL,SI MOV DX,MY8255_B OUT DX,AL ;写B口 输出百位 CALL DALLY1 MOV AL,0DH MOV DX,MY8255_A OUT DX,AL MOV AL,BH ;回复余数 MOV AH,0H MOV BL,0AH DIV BL MOV BH, AH ;保存余数 MOV SI,OFFSET N_LED_CODE MOV AH,0H ADD SI,AX ;计算偏移量 MOV AL,SI MOV DX,MY8255_B OUT DX,AL ;写B口 输出十位 CALL DALLY1 MOV AL,0BH MOV DX,MY8255_A OUT DX,AL MOV SI,OFFSET N_LED_CODE MOV AL,BH MOV AH,0H ADD SI,AX MOV AL,SI MOV DX,MY8255_B OUT DX,AL ;输出个位 CALL DALLY1 RETLED ENDPSCAN PROC NEAR ;扫描是否有按键闭合子程序 MOV AL,07H MOV DX,MY8255_A ;将4列全选通,X1X4置0 OUT DX,AL MOV DX,MY8255_C IN AL,DX ;读Y1Y4 NOT AL AND AL,0FH ;取出Y1Y4的反值 RETSCAN ENDPCLEAR PROC NEAR ;清除数码管显示子程序 MOV DX,MY8255_B ;段位置0即可清除数码管显示 MOV AL,00H OUT DX,ALRETCLEAR ENDP4 系统测试按照系统连线图连接电路,运行程序。在实际的设计中,由于没有多余的8254芯片,则利用单次脉冲单元模拟。8254的计数程序中编译了循环语句,主程序则根据循环的语句进行系统的执行。在计数到0时执行中断程序,并使电子发声单元发声。在按下与程序中对应的时间表次数时,电子发声单元开始发声,程序中有电子发声单元的延时子程序。所以,在电子发声单元发声一段时间后停止发声,程序继续运行主程序。在测试的过程中,遇到一些问题。在最开始的测试中,由于粗心导致8254中没有一个频率输入,从而导致电子发声单元无法发声。则开始分别测试各个芯片的电路是否连接正确。我们把连接电子发声单元的线路连接到发光二极管上,测试8254中的连线是否正确。但是,发光二极管发光正常。然后在询问老师后了解到。电子发声单元要有一定频率才能发声,最后我们发现此系统并无频率输入,从而导致电子发声单元无法发声。在连接输入频率后再进行测试,系统能正常发声。但是,程序在运行到最后循环的时候又遇到一个比较棘手的问题。就是整个系统无法循环。在编译连接程序的过程中我们只注意程序是否又错误,并没有注意编译器中提示的警告。所以,程序的循环问题没有执行。我们重新检查程序中的循环问题,进过翻阅相关书籍和请老师帮组的情况下,顺利的解决了循环问题。最后,把所有的问题解决后,再次执行程序。系统能够正常的执行作息时间的功能。总 结此次为期两周的微机原理与接口技术的课程设计可以说是获益匪浅。通过查阅了很多资料,了解了许多汇编程序的思想,扩展了自己的视野,不再仅仅局限于书本中几条简短的程序,而且更重要的是明白写程序的态度:仔细谨慎,精益求精。本次设计主要用到了5254单元、8255单元、A/D转换单元以及键盘及数码管显示单元和电子发声单元。在系统调试过程中,针对一些问题,熟练掌握了根据原理分步测试,将错误之处缩小的最小范围内。通过该课程设计,掌握了什么是编译程序,编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程、构造工具及其相关的技术对课本上的知识有了更深的理解,课本上的知识师机械的,表面的。通过把该算法的内容,算法的执行顺序在计算机上实现,把原来以为很深奥的书本知识变的更为简单,对实验原理有更深的理解。而且在设计中,把死板的课本知识变得生动有趣,激发了学习的积极性。把学过的计算机编译原理的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。以前对与计算机操作系统的认识是模糊的,概念上的,现在通过自己动手做实验,从实践上认识了操作系统是如何处理命令的,如何协调计算机内部各个部件运行,对计算机编译原理的认识更加深刻。课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意指针,将不必要的命令去除。参考文献1 赵树升,赵雪梅.现代微机原理及接口技术M,北京:清华大学出版社,2008年8月2 戴梅萼.微型计算机技术及应用从16位到32位 (第2版) M,北京:清华大学出版社,2003年2月 3 王成耀等. 汇 编语言程序设计.北京:机械工业出版社,200414重庆科技学院微机原理与接口技术课程设计报告附件源程序代码如下:;*根据查看端口资源修改下列符号值*IOY0 EQU 0DA00H ;片选IOY0对应的端口始地址IOY1 EQU 0DA40H ;片选IOY1对应的端口始地址IOY2 EQU 0DA80H ;片选IOY2对应的端口始地址;*MY8255_A EQU IOY1+00H*4 ;8255的A口地址MY8255_B EQU IOY1+01H*4 ;8255的B口地址MY8255_C EQU IOY1+02H*4 ;8255的C口地址MY8255_MODE EQU IOY1+03H*4 ;8255的控制寄存器地址AD0809 EQU IOY0+00H ;AD0809的端口地址MY8254_COUNT0 EQU IOY2+00H*4 ;8254计数器0端口地址MY8254_COUNT1 EQU IOY2+01H*4 ;8254计数器1端口地址MY8254_COUNT2 EQU IOY2+02H*4 ;8254计数器2端口地址MY8254_MODE EQU IOY2+03H*4 ;8254控制寄存器端口地址;数据段DATASEGMENT;DATA INIT_N DW 40H AD_N DW 0 N_LED_CODEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H FREQ DW 0001 ;频率表 TIME DB 01 KEY_BUFF DB 0DATAENDS;STACKSTACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDS;代码段CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOVAX,DATA ;取数据段的段地址MOVDS,AX MOV DX,MY8255_MODE ;初始化8255工作方式 MOV AL,81H ;方式0,A口、B口输出,C口低4位输入,高4位输出 OUT DX,AL KEY_BEGIN: MOV AX,INIT_N MOV AD_N,AX CALL LED ;数码管显示SCAN_INIT: CALL CCSCAN ;扫描按键;如果有按键AL中不为0 JNZ ISKEY ;有键按下则跳置ISKEY JMP KEY_BEGIN ;跳转到开始,再循环检测按键 ISKEY: ;CALL DELAY MOV CH,0F7H;MOV CL,00H ;设置当前检测的是第几列 MOV AL,CH ;选取一列,将X1X4中一个置0 MOV DX,MY8255_A OUT DX,AL MOV DX,MY8255_C ;读Y1Y4,用于判断是哪一行按键闭合 IN AL,DX TEST AL,01H ;是否为第1行 JZ IS_UP ;判断是否按了加键,是的话的跳转不是的话继续判断 TEST AL,02H ;是否为第2行 JZ IS_DOWN ;判断是否按了减键,是的话的跳转不是的话继续判断 TEST AL,06H JZ SCAN_INIT TEST AL,08H ;是否为第4行 JZ LOOP1 ;判断是否按了确定键,是的话的跳转不是的话继续判断 IS_UP: CALL CLEAR ;清空数码管 MOV AX,AD_NADD AX,01H MOV INIT_N,AX MOV AD_N,AX CALL LED JMP SCAN_INIT IS_DOWN: CALL CLEAR MOV AX,AD_NSUB AX,01H MOV INIT_N,AX MOV AD_NUM,AXCALL LED JMP SCAN_INIT LOOP1: MOV DX,AD0809 ;启动A/D转换 OUT DX,AL MOV DX,AD0809 ;读出转换结果 IN AL,DX MOV AH,0H ;MOV BX,INIT_N MOVAD_N,AX;CALL LEDCALL CMP_M ;确定安全范围 CALL LED ;LED显示十进制 MOV AH,1 ;判断是否有按键按下 INT 16H JZ LOOP1 ;无按键则跳回继续循环,有则退出QUIT: MOV AX,4C00H ;结束程序退出 INT 21H ;报警子程序 ;初始化8254 ;安全范围比较子程序;30度100度之间为安全值;8255的PC口高4位灯闪烁;四灯全亮为安全值CMP_M: ;AND AX, 00FFHCMP AX,1EH JG LEVEL30 ;大于30度 MOV BX,371MOVFREQ,BXMOV BL,4MOV TIME,BLCALL BAOJING;报警 MOV DX, MY8255_C MOV AL,10H OUT DX, ALRET LEVEL30: MOV BX,INIT_N CMP AX,BX JG LEVEL_W ;大于LEVEL_W度 PUSH AX MOV DX, MY8255_C MOV AL,30H OUT DX,AL POP AX RETLEVEL_W: CMP AX,64H JG LEVEL100 PUSH AX MOV DX, MY8255_C MOV AL,0C0H OUT DX,AL POP AX RET LEVEL100: PUSH AXMOV BX,1665MOVFREQ,BXMOV BL,4MOV TIME,BLCALL BAOJING;报警 MOV DX, MY8255_C MOV AL,80H OUT DX, AL POP AX RET;LED显示LED PROC NEAR MOV AL,0EH MOV DX,MY8255_A ;初始化A口 指定显示管百位显示 OUT DX,AL ;MOV AX,INIT_N MOV AX,INIT_N MOV BL,64H DIV BL MOV BH,AH ;保存余数 MOV SI,OFFSET N_LED_CODE MOV AH,0H ADD SI,AX MOV AL,SI MOV DX,MY8255_B OUT DX,AL ;写B口 输出百位 CALL DALLY1 MOV AL,0DH MOV DX,MY8255_A OUT DX,AL MOV AL,BH ;回复余数 MOV AH,0H MOV BL,0AH DIV BL MOV BH, AH ;保存余数 MOV SI,OFFSET N_LED_CODE MOV AH,0H ADD SI,AX ;计算偏移量 MOV AL,SI MOV DX,MY8255_B OUT DX,AL ;写B口 输出十位 CALL DALLY1 MOV AL,0BH MOV DX,MY8255_A OUT DX,AL MOV SI,OFFSET NUM_LED_CODE MOV AL,BH MOV AH,0H ADD SI,AX MOV AL,SI MOV DX,MY8255_B OUT DX,AL ;输出个位 CALL DALLY1 RETLED ENDP;延时子程序1DELAY PROC PUSH AX PUSH CX MOV CX,0ffFFHD11: MOV AX,0ffFHD12: DEC AXJNZ D12LOOP D11POP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论