微机原理与接口技术课程设计——温度报警器_第1页
微机原理与接口技术课程设计——温度报警器_第2页
微机原理与接口技术课程设计——温度报警器_第3页
微机原理与接口技术课程设计——温度报警器_第4页
微机原理与接口技术课程设计——温度报警器_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、微机原理与接口技术课程设计报告设计名称:温度报警器专 业: 计算机科学与技术班 级: 姓 名: 学 号: 指导教师: 一、 功能分析本设计采且pc微机一台和td-pit+实验系统一套实现了温度报警的功能,输入由a/d转换单元可调电位器提供05v来模拟0255的温度,具体所能实现的功能如下:输出数字量显示在显示器屏幕上,显示形式为:the temperature is:xxx;输出数字量显示在数码管上;当温度大于等于50时,报警器发出声音报警,否则不发声。二、 设计原理设计中采用的芯片有adc0809,8254和8255。1.adc0809:adc0809包括一个8位的逐次逼近型的adc部分,并

2、提供一个8通道的模拟多路开关和联合寻址逻辑。用它可直接输入8个单端的模拟信号,分时进行a/d转换,在多点巡回检测、过程控制等应用领域中使用非常广泛。adc0809的主要技术指标为: 分辨率:8位单电源:5v总的不可调误差:1lsb转换时间:取决于时钟频率模拟输入范围:单极性 05v时钟频率范围:10khz1280khz adc0809的外部管脚如图1所示,地址信号与选中通道的关系如表1所示。图1 adc0809引脚图表1 地址输入线与模拟输入端的关系addcaddbadda模拟信号通道000in0001in1010in2011in3100in4101in5110in6111in7设计中使用通道

3、0,故addc,addb,adda全部接0。2.8254:8254是intel公司生产的可编程间隔定时器。是8253的改进型,比8253具有更优良的性能。8254具有以下基本功能:(1) 有3个独立的16位计数器;(2) 每个计数器可按二进制或十进制(bcd)计数;(3) 每个计数器可编程工作于6种不同工作方式;(4) 8254每个计数器允许的最高计数频率为10mhz(8253为2mhz);(5) 8254有读回命令(8253没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。(6) 计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值公式为n=fclkifouti、其

4、中fclki是输入时钟脉冲的频率,fouti是输出波形的频率。图2是8254的内部结构框图和引脚图,它是由与cpu的接口、内部控制电路和三个计数器组成。8254的工作方式如下述:(1) 方式0:计数到0结束输出正跃变信号方式。(2) 方式1:硬件可重触发单稳方式。(3) 方式2:频率发生器方式。(4) 方式3:方波发生器。(5) 方式4:软件触发选通方式。(6) 方式5:硬件触发选通方式。图2 8254内部结构和引脚图8254的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。这两个控制字共用一个地址,由标识位来区分。控制字格式如图3所示。图3

5、 8254方式控制字格式利用8254的方式3“方波发生器”,将对应发声频率的计数初值写入计数器,就可产生对应频率的方波。计数初值的计算如下: 计数初值 输入时钟 输出频率输入时钟采用系统总线上clk(1.041667mhz),报警时写入初值为1047,发声频率即为1041667/1047hz,然后调用一个软件延时程序,再将0001写入初值,发声频率变为1041667/1hz。由于正常人耳能听到的频率范围为2020khz,所以1041667hz是听不到的,也就达到了消声的目的。设计中正是不断执行“判断温度大于等于50发声消声再判断”这个循环来实现温度报警的功能。3.8255:8255可编程外围接

6、口芯片是intel公司生产的通用并行i/o接口芯片,它具有a、b、c三个并行接口,用+5v单电源供电,能在以下三种方式下工作:方式0-基本输入/出方式、方式1-选通输入/出方式、方式2-双向选通工作方式。8255的内部结构及引脚如图4所示,8255工作方式控制字和c口按位置位/复位控制字格式如图5所示。图4 8255内部结构及引脚图图5 8255工作方式控制字格式及c口置位/复位控制字实验系统中的键盘及数码管显示单元提供了4行4列共16个按键,4个7段数码管也接成扫描电路方式。共用段位控制信号adp,各自独立的公共端及列选择信号x1x4,行扫描信号为y1y4。电路原理如图6所示。图6 键盘及数

7、码管显示单元电路原理图8255的a,b口均为输出且为方式0,其中pa0pa3接x1x4用来选中需要显示的数码管;pb0pb7接共用段位控制信号adp,控制各个数码管具体显示的内容。4.接线图:综上所述,接线图如图7所示:图7 设计接线图对于此图有以下两点需要说明:(1)系统总线上的xa2,xa3分别接芯片的a0,a1,因此芯片的地址要在片选基础上左移两位,即*4,例如8255片选接ioy2,则方式字地址为ioy2+03h*4 ,a口地址为ioy2+00h*4 ;(2)作图软件中adc0809无cs端,故采用了如图的连接方式,实际中只需将系统总线ioy0与adc0809的cs连接即可。三、 软件

8、流程图四、 软件代码;*根据check配置信息修改下列符号值*ioy0 equ 0e000hioy1 equ 0e040hioy2 equ 0e080h;*ad0809 equ ioy0+00h*4my8254_0 equ ioy1+00h*4my8254_mode equ ioy1+03h*4my8255_a equ ioy2+00h*4my8255_b equ ioy2+01h*4my8255_mode equ ioy2+03h*4data segmentstr db the temperature is: $dtable db 3fh,06h,5bh,4fh,66h,6dh,7dh,07

9、h,7fh,67h ;初始化缓冲用于存放键值data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,my8255_mode ;初始化8255工作方式mov al,80hout dx,almov dx,my8254_mode ;初始化8254工作方式mov al,37hout dx,alloop1:mov dx,ad0809 ;启动a/d转换out dx,almov dx,offset str ;在屏幕上显示字符串“the temperature is:”mov ah,9int 21hmov dx,a

10、d0809 ;读出转换结果in al,dxmov cl,alcmp al,32h ;判断是否小于32hjb loop2mov dx,my8254_0 ;将计数初值1047装入8254计数器0, 发出对应频率声音mov al,47hout dx,almov al,10hout dx,alcall dallymov dx,my8254_0 ;将计数初值0001装入8254计数器0,停止发声mov al,01hout dx,almov al,00hout dx,alloop2:mov al,0fdh ;选中x2对应的数码管mov dx,my8255_aout dx,almov ah,00h ;将结果

11、转换成十进制,将百位显示在屏幕上mov al,clmov bl,64hdiv blmov ch,ahadd al,30hmov dl,al mov ah,02hint 21hsub al,30h ;将百位显示在数码管上,并调用延时子程序mov bx,offset dtableand ax,00ffhadd bx,axmov al,bxmov dx,my8255_bout dx,alcall dallymov al,0fbh ;选中x3对应的数码管mov dx,my8255_aout dx,almov al,ch ;将十位显示在屏幕上mov ah,00hmov bl,0ahdiv blmov c

12、h,ahadd al,30hmov dl,almov ah,02hint 21hsub al,30h ;将十位显示在数码管上,并调用延时子程序mov bx,offset dtableand ax,00ffhadd bx,axmov al,bxmov dx,my8255_bout dx,alcall dallymov al,0f7h ;选中x4对应的数码管mov dx,my8255_aout dx,aladd ch,30h ;将个位显示在屏幕上mov dl,chmov ah,02hint 21hsub ch,30h ;将个位显示在数码管上,并调用延时子程序mov al,chmov bx,offs

13、et dtableand ax,00ffhadd bx,axmov al,bxmov dx,my8255_bout dx,alcall dallymov dl,0dh ;回车,置光标到行首mov ah,02hint 21hmov ah,1 ;判断是否有按键按下int 16hjnz quit ;无按键则跳回继续循环,有则退出jmp loop1quit: mov ax,4c00h ;返回到dosint 21hdally proc near ;软件延时子程序push cxpush axmov cx,4000hd1: mov ax,0600hd2: dec axjnz d2loop d1pop axp

14、op cxretdally endpcode ends end start五、 设计收获通过紧张有序的课程设计实践,不仅让我对adc0809,8254,8255的原理,连接有了进一步的理解,更重要的是学会如何使用这些芯片解决实际问题,这让我的动手能力有了很大的提高,自信心也增强了。在课程设计中能够自己动脑解决所遇到的问题,书本上的知识有了用武之地,巩固和深化了自己的知识结构。设计中遇到了的问题基本上都是关于如何控制报警方面的,关于8254控制发声课本上没有涉及,通过查资料才知道采用方式3的方法。第一次运行程序时,只要温度大于等于50时就开始报警,但不会停,于是想到了在每次报警之后加上一个消声的程序段,然而结果是温度超过50也不响,最终才想到在两者之前加上软件延时,才能基本上完美实现报警功能。通过这次实践,我相信,只要自己在每一次实践中都能仔细思考,课程设计其实都不会很难,关键在于自己能不能认真思考,能不能亲自动

温馨提示

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

评论

0/150

提交评论