《微机原理课程设计交通灯,温控系统实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计交通灯,温控系统实验报告.docx(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 序号山东理工大学计算机学院课 程 设 计(微机原理及接口技术)班 级 姓 名 学 号 指导教师 二 一二 年 一月 九 日课程设计任务书及成绩评定课题名称直流电机速度控制器的设计,I、 题目的目的和要求: 学习和掌握计算机中常用接口电路的应用和设计技术,熟悉和掌握微机系统的软硬件的设计方法和步骤,熟悉微机汇编程序编写和应用软硬件调试的基本流程,进一步加强理论知识和应用相结合的实践和锻炼,加深对专业知识的学习和理解,掌握8253,,8259等芯片的连线及使用方式。使自己的设计水平和对所学的知识的应用能力以及分析问题和解决问题的能力得到全面提高。 一、利用按键控制直流电动机的转速。按键定义如下:
2、0 停止,1 1/10转速, 2 2/10转速 9 最高速(D/A输出满量程),键号每加1,D/A输出增加0.5V 。二、II、设计进度及完成情况日 期内 容III、主要参考资料及文献IV、成绩评定:设计成绩: (教师填写)指导老师: (签字)年 月 日3目录一、电机速度控制器的设计2(一) 2(二)3 (三)4(四)5(五)9二、10(一)10(二)11 (三)15(四)16(五)20三、设计总结21一、直流电机速度控制器的设计(一)系统概述(二) 系统分析与设计芯片8255并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU 和接口之间的数据传送总是并行的,即可以同时
3、传递8 位、16 位、32 位等。8255 可编程外围接口芯片是Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,用+5V 单电源供电,能在以下三种方式下工作:方式0:基本输入输出方式1:选通输入输出方式2:双线传送芯片8255功能及引脚图三种工作方式由工作方式控制字决定,方式控制字由CPU通过输入/输出指令来提供。三个端口中C口被分为两个部分,上半部分随A口称为A组,下半部分随B口称为B组.其中A口可工作与方式0、1和2,而B口只能工作在方式0和1。(三) 程序设计流程图在交通灯的控制系统中,通过对8255的初始化及赋予不同的控制字可以实现交通指示灯的不同变化。
4、设计流程如下图:实验台上的四个灯分东西和南北两组,根据调用程序的不同实现不同方向的颜色变化及亮灭控制。(四) 源程序代码源程序文件为 GXM.asmCODE SEGMENT ;本实验中控制字的偶数位控制南北,奇数位控制东西ASSUME CS:CODE,DS:CODESTART: ;两位控制一个方向,00黄,01绿,10红,11灭 MOV DX,203H ;A口输出,8255片选CS55接200H-207H MOV AL,80H ;1000 0000b,A口输出,B,C口本实验不用 OUT DX,AL CALL STATUS0 ;状态0,初始状态(都是红灯) LOOP: CALL STATUS1
5、 ;状态1,南北绿灯,东西红灯 CALL STATUS2 ;状态2,南北绿灯闪转黄灯,东西红灯 CALL STATUS3 ;状态3,南北红灯,东西绿灯 CALL STATUS4 ;状态4,南北红灯,东西绿灯闪转黄灯 JMP LOOP ;周而复始 STATUS0: MOV AL,0F0H ;南北红灯,东西红灯 1111 0000 MOV DX,200H OUT DX,AL MOV BL,50 CALL DELAY ;延时5秒 RET STATUS1: MOV AL,0A5H ;1010 0101 南北绿灯,东西红灯 MOV DX,200H OUT DX,AL MOV BL,50 CALL DEL
6、AY ;该状态保持5秒 RET STATUS2: MOV CX,3 ;绿灯闪3次,隔0.5秒闪一次 FLASH: MOV AL,0A0H ; 1010 0000 南北黄灯,东西红灯 MOV DX,200H OUT DX,AL MOV BL,5 CALL DELAY ;延时0.5秒 MOV AL,0A5H ;1010 0101 南北绿灯,东西红灯 MOV DX,200H OUT DX,AL MOV BL,5 CALL DELAY ;延时0.5秒 LOOP FLASH MOV AL,0F5H ;1111 0101 南北灭灯,东西红灯 MOV DX,200H OUT DX,AL MOV BL,10
7、CALL DELAY ;南北灭灯延时1秒 RETSTATUS3: MOV AL,05AH ;0101 1010南北红灯,东西绿灯 MOV DX,200H OUT DX,AL MOV BL,50 CALL DELAY ;延时5秒 RET STATUS4: ;南北红灯,东西绿灯闪转黄灯 MOV CX,3 ;绿灯闪3次 FLASH1: MOV AL,050H ;1010 0000南北红灯,东西黄灯,0101 0000 MOV DX,200H OUT DX,AL MOV BL,5 CALL DELAY ;延时0.5秒 MOV AL,05AH ;1010 0101 南北红灯,东西绿灯 0101 1010
8、 MOV DX,200H OUT DX,AL MOV BL,5 CALL DELAY ;延时0.5秒 LOOP FLASH1 MOV AL,0FAH ;1111 0101南北红灯,东西灭灯 1111 1010 MOV DX,200H OUT DX,AL MOV BL,10 CALL DELAY ;东西灭灯一秒 RET DELAY PROC NEAR PUSH CXDL1: MOV CX,8000HDL2: LOOP DL2 DEC BL CMP BL,0 JNE DL1 POP CX RET DELAY ENDP CODE ENDSEND START(五) 实验结果及分析在实验台的三色交通灯区
9、,两组指示交通灯的变化规律为: 1、实验开始时,南北和东西的灯均为红灯状态。2、南北转绿灯、东西保持红灯。 3、南北绿灯、黄灯交替闪烁共计3秒,东西继续保持红灯。4、南北黄灯灭、红灯亮,同时东西方向的红灯灭、绿灯亮。 5、南北保持红灯,同时东西方向的绿灯、黄灯交替闪烁共计3秒。 6、状态转至2重复执行。二、温度测控系统的设计(一)系统概述1、本课程设计意义学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以
10、及分析问题解决问题的能力得到全面提高。2、设计要求温度测控系统的设计:利用ADC0809采用中断方式设计一个温度测控系统,在LED数码显示器上显示温度值,并对温度进行测试和控制,当检测温度到达温度上限60时开风扇(即开启电动机),低于下限30时关闭风扇,LED上的显示内容为:XX (采用十进制显示)。(二)系统分析与设计1、ADC0809是采样分辨率为8位的、以逐次逼近原理进行模数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。(1)内部结构ADC0809是CMOS单片型逐次逼近式AD转换器,内部结构如图1322所示,它由
11、8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近 (2)外部特性(引脚功能)ADC0809芯片有28条引脚,采用双列直插式封装,如图1323所示。下面说明各引脚功能。 IN0IN7:8路模拟量输入端。 2-12-8:8位数字量输出端。 ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路 ALE:地址锁存允许信号,输入,高电平有效。 START: AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 EOC: AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一
12、直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一5V。 GND:地。 (3)、ADC0809的工作过程首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请
13、。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。ADC0809引脚示意图2、8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。 (1)、特性:a.一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口。 b.具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB口和PC口.它们又可分为两组12位的I/O口,A组包括A口
14、及C口(高4位,PC4PC7),B组包括B口及C口(低4位,PC0PC3).A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定。 (2)、引脚功能:RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。 CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输. RD:读信号线,当这个输入引脚为低电平时,即/R
15、D=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。 WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。 D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。 PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 PC0PC7:端口C输入输出线,一个8
16、位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。 A0,A1:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器.当A0=0,A1=0时,PA口被选择; 当A0=0,A1=1时,PB口被选择; 当A0=1,A1=0时,PC口被选择; 当A0=1.A1=1时,控制寄存器被选择.3、8259的功能:就是在有多个中断源的系统中,接受外部的中断请求,并进行判断,选中当前优先级最高的中断请求,再将此请求送到cpu的INTR端;当c
17、pu响应中断并进入中断子程序的处理过程后,中断控制器仍负责对外部中断请求的管理。(三)程序设计流程图 开始初始化8255A选ADC0809通道0并启动A/D读A/D转换结果温度60启动直流电动机温度=30停止电动机数码管数值显示延时上图实现了本次实验所要要求的功能:检测温度到达温度上限60时启动直流电动机,而温度低于下限30时停止电动机,并在数码管上显示所采集到的数字量和转换后的模拟量。系统功能框图:单片机控制电路温度传感A/D转换电路数码管显示(四)源程序代码code segment ;8255的CS接210H-217H,8259的CS接208H-20FHassume cs:code,ds:
18、code ;ADC0809的CS接200H-207Hstart:mov ax,csmov ds,axmov dx,213hmov al,80hout dx,al ;8255初始化mov al,13h ;8259初始化 mov dx,208h out dx,al ;ICW1初始化 mov al,08h mov dx,209h out dx,al ;ICW2初始化 mov al,01h out dx,al ;ICW4初始化 in al,dx and al,0feh out dx,al ;OCW1打开非屏蔽位 push ds mov ax,0 mov ds,ax mov ax,offset intr
19、 mov ds:word ptr4*08h,ax mov ax,cs mov ds:word ptr4*08h+2,ax ;设置中断向量 pop ds mov dx,200h mov ax,0 out dx,al;开始转化 sti rel:nop jmp rel 初始界面显示程序print proc near push bx push ax push di push cx lea bx,TABLE lea di,BUFDA mov cl,11110111b ;位码next: mov dx,211h mov al,cl out dx,al ;输出位码 mov al,di ;取段码 xlat mo
20、v dx,210h ;输出段码 out dx,al push cx mov cx,030hdelay1: loop delay1 ;软件延迟 pop cx cmp cl,11111110b ;判断是否扫完一遍 jz r1 ;显示完一遍则返回 inc di ror cl,1 ;循环右移一位 jmp nextr1: pop cxpop dipop axpop bxretprint endpintr proc nearpush axpush bxmov dx,200hin al,dxmov dl,100mul dlmov dl,255div dlpush axcall binideccall pri
21、ntpop axcmp al,30jl runoffcmp al,60jl r2runon:mov dx,213hmov al,1out dx,aljmp r2runoff:mov dx,213hmov al,0out dx,alr2:mov dx,200hmov al,0out dx,almov al,20hmov dx,208hout dx,alpop bxpop axiretintr endpbinidec proc nearpush dxpush simov ah,0mov dl,100div dlmov si,offset BUFDAmov si,almov dl,10mov al,
22、ahmov ah,0div dlinc simov si,almov al,ahinc simov si,alpop sipop dxretbinidec endpTABLE:db 3fh ;0的段码db 06h ;1的段码db 5bh ;2的段码db 4fh ;3的段码db 66h ;4的段码db 6dh ;5的段码db 7dh ;6的段码db 07h ;7的段码db 7fh ;8的段码db 6fh ;9的段码db 39h ;C的段码BUFDA:db0,0,0,10code ends end start(五)、实验结果及分析 在实验的过程中,会发现实验台左下区域的六位七段数码管显示的数值会随
23、着温度传感的变化而时刻变化着,并且当显示的数值温度到达温度上限60时启动直流电动机,而温度低于下限30时停止电动机。 做实验的过程中,总是出现大大小小不同的问题,归结一下主要有:连线时错误,未分清楚每个引脚的具体作用,还有就是导线与插孔的接触不良,这就要求在连线前要先确定一下导线的好坏,以免使用不良导线产生无法预知、不易检查出的错误,给实验带来不便。三、设计总结短短的一周多的课程设计结束了但它却让我懂得了很多东西,也锻炼了我亲自动手操作的能力。一直以来我们只学书本的知识,却不懂得去实践课本上的知识,甚至是不屑于亲自动手锻炼,这样我们学的知识就不会完全被吸收,有可能我们学的又会很快就忘记,那样我们付出的时间和精力就白费了。而这次的课程设计让我们真正感受到动手操作的魅力,它不光会加深我们已学的课本知识,而且会使我们认识一些常用芯片是怎么工作的,当我们调试程序正确执行后,我们会有一种成就感,虽然它并不是多么值得自豪的事情,可毕竟甚至是我们第一次做东西,无疑会提升我们的兴趣。通过这次课程设计,我懂得了要把学到的东西充分应用到实践中去,就算会遇到各种各样的问题,只要我们仔细,用心的去思考,总会有解决的办法,锻炼了我们的动手能力,这对我们毕业后就业会有很大的帮助的。很感谢这次的课程设计安排。21