微机原理课程设计交通灯,温控系统实验报告

更新时间:2024-04-17 22:26:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

序号

山东理工大学计算机学院

课 程 设 计

(微机原理及接口技术)

班 级 姓 名 学 号 指导教师

二○ 一二 年 一月 九 日

1

课程设计任务书及成绩评定

课题名称 交通灯控制系统,温度测控系统的设计

I、 题目的目的和要求:

学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知

识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。

一、交通灯控制系统:按照时间控制原则,利用并行接口和定时器,采用时间中断方式设计一套十字路口的交通灯管理系统,通行时间(或禁止时间)30秒,准备时间3秒,在准备时间里黄灯闪烁3次,闪烁频率为0.5秒,周而复始。可利用8255、8253、8259等接口电路。

二、温度测控系统的设计:利用ADC0809采用中断式设计一个温度测控系统,在LED数码显示器上显示温度值,并对温度进行测试和控制,当检测温度到达温度上限60℃时开风扇(即开启电动机),低于下限30℃时关闭风扇,LED上的显示内容为:XX ℃(采用十进制显示)。

II、设计进度及完成情况

日 期 2012.1.4 2012. 1.5 2012.1.6 2012.1.9 内 容 选取参考书,初步设计。 创建相关流程图、原理图,编写源程序 调试程序并记录调试中的问题。 系统测试,演示设计成果。整理课程设计说明书,并上交

2

III、主要参考资料及文献

[1] 戴梅萼等.微型计算机技术及应用.清华大学出版社出版,2008.2

[2] 徐建平, 成贵学, 朱萍等主编,微机原理与接口技术,北京航空工业出版社,2010 [3] 马金忠编 ,微机原理及应用学习指导,重庆大学出版社,2009

IV、成绩评定:

设计成绩:

指导老师:

(教师填写)

(签字)

二〇一二 年 月 日

3

目录

一、交通灯控制系统………………………………………………………2

(一)系统概述 ………………………………………………………………2 (二)系统分析与设计………………………………………………………3 (三)程序设计流程图………………………………………………………4

(四)源程序代码……………………………………………………………5 (五)实验结果及分析………………………………………………………9

二、温度测控系统…………………………………………………………10

(一)系统概述………………………………………………………………10 (二)系统分析与设计 ……………………………………………………11 (三)程序设计流程图 ……………………………………………………15

(四)源程序代码 …………………………………………………………16 (五)实验结果及分析 ……………………………………………………20

三、设计总结………………………………………………………21

1

一、交通灯控制系统

(一)系统概述

1.本课程设计意义

课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。《微机原理与接口技术》是一门重要的专业课。 2.课题意义和设计目标

学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。

在本交通灯控制系统中,要求按照时间控制原则,利用并行接口和定时器,采用时间中断方式设计一套十字路口的交通灯管理系统,通行时间(或禁止时间)30秒,准备时间3秒,在准备时间里黄灯闪烁3次,闪烁频率为0.5秒,周而复始。可利用8255、8253、8259等接口电路。

2

(二) 系统分析与设计

芯片8255并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU 和接口之间的数据传送总是并行的,即可以同时传递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。

3

(三) 程序设计流程图

在交通灯的控制系统中,通过对8255的初始化及赋予不同的控制字可以实现交通指示灯的不同变化。设计流程如下图:

实验台上的四个灯分东西和南北两组,根据调用程序的不同实现不同方向的颜色变化及亮灭控制。

4

(四) 源程序代码 源程序文件为 GXM.asm

CODE SEGMENT ;本实验中控制字的偶数位控制南北,奇数位控制东西 ASSUME CS:CODE,DS:CODE

START: ;两位控制一个方向,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 ;状态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

5

STATUS1:

MOV AL,0A5H ;1010 0101 南北绿灯,东西红灯 MOV DX,200H OUT DX,AL MOV BL,50

CALL DELAY ; RET STATUS2:

MOV CX,3 ;

FLASH: MOV AL,0A0H ; 1010 0000 MOV DX,200H OUT DX,AL MOV BL,5

CALL DELAY ; MOV AL,0A5H ;1010 0101 MOV DX,200H OUT DX,AL MOV BL,5

CALL DELAY ; LOOP FLASH

该状态保持5秒 绿灯闪3次,隔0.5秒闪一次 南北黄灯,东西红灯 延时0.5秒

南北绿灯,东西红灯 延时0.5秒 6

MOV AL,0F5H ;1111 0101 南北灭灯,东西红灯 MOV DX,200H OUT DX,AL MOV BL,10

CALL DELAY ;南北灭灯延时1秒 RET STATUS3:

MOV AL,05AH ;0101 1010 MOV DX,200H OUT DX,AL MOV BL,50

CALL DELAY ; RET

STATUS4: ; MOV CX,3 ;

FLASH1: MOV AL,050H ;1010 MOV DX,200H OUT DX,AL MOV BL,5

CALL DELAY ; MOV AL,05AH ;1010 MOV DX,200H OUT DX,AL

南北红灯,东西绿灯 延时5秒 南北红灯,东西绿灯闪转黄灯 绿灯闪3次 0000南北红灯,东西黄灯,0101 0000 延时0.5秒

0101 南北红灯,东西绿灯 0101 1010 7

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 CX DL1: MOV CX,8000H DL2: LOOP DL2 DEC BL CMP BL,0 JNE DL1 POP CX RET

DELAY ENDP CODE ENDS END START

东西灭灯一秒 8

(五) 实验结果及分析

在实验台的三色交通灯区,两组指示交通灯的变化规律为: 1、实验开始时,南北和东西的灯均为红灯状态。 2、南北转绿灯、东西保持红灯。

3、南北绿灯、黄灯交替闪烁共计3秒,东西继续保持红灯。

4、南北黄灯灭、红灯亮,同时东西方向的红灯灭、绿灯亮。 5、南北保持红灯,同时东西方向的绿灯、黄灯交替闪烁共计3秒。 6、状态转至2重复执行。

9

二、温度测控系统的设计

(一)系统概述

1、本课程设计意义

学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。 2、设计要求

温度测控系统的设计:利用ADC0809采用中断方式设计一个温度测控系统,在LED数码显示器上显示温度值,并对温度进行测试和控制,当检测温度到达温度上限60℃时开风扇(即开启电动机),低于下限30℃时关闭风扇,LED上的显示内容为:XX ℃(采用十进制显示)。

10

(二)系统分析与设计

1、ADC0809是采样分辨率为8位的、以逐次逼近原理进行模—数转换的器

件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。 (1).内部结构

ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图13.22所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近

(2).外部特性(引脚功能)

ADC0809芯片有28条引脚,采用双列直插式封装,如图13.23所示。下面说明各引脚功能。

IN0~IN7:8路模拟量输入端。 2-1~2-8:8位数字量输出端。

ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路

ALE:地址锁存允许信号,输入,高电平有效。

START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。

EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。

11

OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一+5V。 GND:地。

(3)、ADC0809的工作过程

首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。

ADC0809引脚示意图

12

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口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3).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:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。

WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。

13

D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。

PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。

PB0~PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。

PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个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端;当cpu响应中断并进入中断子程序的处理过程后,中断控制器仍负责对外部中断请求的管理。

14

(三)程序设计流程图

开始 初始化8255A 选ADC0809通道0并读A/D转换结果 温度>60℃ 温度>=30℃ 启动直流电动机 停止电动机 延时 数码管数值显示

上图实现了本次实验所要要求的功能:检测温度到达温度上限60℃时启动直流电动机,而温度低于下限30℃时停止电动机,并在数码管上显示所采集到的数字量和转换后的模拟量。

系统功能框图:

温度传感 A/D转换电路 数码管显示 单片机控制电路

15

(四)源程序代码

code segment ;8255的CS接210H-217H,8259的CS接208H-20FH assume cs:code,ds:code ;ADC0809的CS接200H-207H start:

mov ax,cs mov ds,ax mov dx,213h mov al,80h

out 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

mov ds:word ptr[4*08h],ax mov ax,cs

mov ds:word ptr[4*08h+2],ax ;设置中断向量 pop ds

mov dx,200h mov ax,0

out dx,al ;开始转化 sti rel:nop jmp rel

16

初始界面显示程序 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

mov dx,210h ; out dx,al push cx

mov cx,030h delay1:

loop delay1 ; pop cx

cmp cl,11111110b ; jz r1 ; inc di

ror cl,1 ; jmp next r1:

pop cx pop di pop ax pop bx ret print endp

intr proc near push ax

位码 输出位码 取段码 输出段码 软件延迟 判断是否扫完一遍

显示完一遍则返回循环右移一位 17

push bx

mov dx,200h in al,dx mov dl,100 mul dl mov dl,255 div dl push ax

call binidec call print pop ax cmp al,30 jl runoff cmp al,60 jl r2 runon:

mov dx,213h mov al,1 out dx,al jmp r2 runoff:

mov dx,213h mov al,0 out dx,al r2:

mov dx,200h mov al,0 out dx,al mov al,20h mov dx,208h out dx,al pop bx pop ax iret intr endp

binidec proc near

18

push dx push si mov ah,0 mov dl,100 div dl

mov si,offset BUFDA mov [si],al mov dl,10 mov al,ah mov ah,0 div dl inc si

mov [si],al mov al,ah inc si

mov [si],al pop si pop dx ret

binidec endp TABLE:

db 3fh ;\ db 06h ;\ db 5bh ;\ db 4fh ;\ db 66h ;\ db 6dh ;\ db 7dh ;\ db 07h ;\ db 7fh ;\ db 6fh ;\ db 39h ;\BUFDA:

db 0,0,0,10 code ends end start

的段码 的段码 的段码 的段码 的段码 的段码 的段码 的段码 的段码 的段码

的段码19

(五)、实验结果及分析

在实验的过程中,会发现实验台左下区域的六位七段数码管显示的数值会随着温度传感的变化而时刻变化着,并且当显示的数值温度到达温度上限60℃时启动直流电动机,而温度低于下限30℃时停止电动机。

做实验的过程中,总是出现大大小小不同的问题,归结一下主要有:连线时错误,未分清楚每个引脚的具体作用,还有就是导线与插孔的接触不良,这就要求在连线前要先确定一下导线的好坏,以免使用不良导线产生无法预知、不易检查出的错误,给实验带来不便。

20

三、设计总结

短短的一周多的课程设计结束了但它却让我懂得了很多东西,也锻炼了我亲自动手操作的能力。一直以来我们只学书本的知识,却不懂得去实践课本上的知识,甚至是不屑于亲自动手锻炼,这样我们学的知识就不会完全被吸收,有可能我们学的又会很快就忘记,那样我们付出的时间和精力就白费了。而这次的课程设计让我们真正感受到动手操作的魅力,它不光会加深我们已学的课本知识,而且会使我们认识一些常用芯片是怎么工作的,当我们调试程序正确执行后,我们会有一种成就感,虽然它并不是多么值得自豪的事情,可毕竟甚至是我们第一次做东西,无疑会提升我们的兴趣。

通过这次课程设计,我懂得了要把学到的东西充分应用到实践中去,就算会遇到各种各样的问题,只要我们仔细,用心的去思考,总会有解决的办法,锻炼了我们的动手能力,这对我们毕业后就业会有很大的帮助的。很感谢这次的课程设计安排。

21

本文来源:https://www.bwwdw.com/article/nfip.html

Top