微机原理课程设计交通灯温控系统实验报告.docx
《微机原理课程设计交通灯温控系统实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计交通灯温控系统实验报告.docx(18页珍藏版)》请在冰豆网上搜索。
微机原理课程设计交通灯温控系统实验报告
序号
山东理工大学计算机学院
课程设计
(微机原理及接口技术)
班级
姓名
学号
指导教师
二○一二年一月九日
课程设计任务书及成绩评定
课题名称
交通灯控制系统,温度测控系统的设计
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
系统测试,演示设计成果。
整理课程设计说明书,并上交
III、主要参考资料及文献
[1]戴梅萼等.微型计算机技术及应用.清华大学出版社出版,2008.2
[2]徐建平,成贵学,朱萍等主编,微机原理与接口技术,北京航空工业出版社,2010
[3]马金忠编,微机原理及应用学习指导,重庆大学出版社,2009
IV、成绩评定:
设计成绩:
(教师填写)
指导老师:
(签字)
二〇一二年月日
目录
一、交通灯控制系统………………………………………………………2
(一)系统概述………………………………………………………………2
(二)系统分析与设计………………………………………………………3
(三)程序设计流程图………………………………………………………4
(四)源程序代码……………………………………………………………5
(五)实验结果及分析………………………………………………………9
二、温度测控系统…………………………………………………………10
(一)系统概述………………………………………………………………10
(二)系统分析与设计……………………………………………………11
(三)程序设计流程图……………………………………………………15
(四)源程序代码…………………………………………………………16
(五)实验结果及分析……………………………………………………20
三、设计总结………………………………………………………21
一、交通灯控制系统
(一)系统概述
1.本课程设计意义
课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。
课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。
《微机原理与接口技术》是一门重要的专业课。
2.课题意义和设计目标
学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
在本交通灯控制系统中,要求按照时间控制原则,利用并行接口和定时器,采用时间中断方式设计一套十字路口的交通灯管理系统,通行时间(或禁止时间)30秒,准备时间3秒,在准备时间里黄灯闪烁3次,闪烁频率为0.5秒,周而复始。
可利用8255、8253、8259等接口电路。
(二)系统分析与设计
芯片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。
(三)程序设计流程图
在交通灯的控制系统中,通过对8255的初始化及赋予不同的控制字可以实现交通指示灯的不同变化。
设计流程如下图:
实验台上的四个灯分东西和南北两组,根据调用程序的不同实现不同方向的颜色变化及亮灭控制。
(四)源程序代码
源程序文件为GXM.asm
CODESEGMENT;本实验中控制字的偶数位控制南北,奇数位控制东西
ASSUMECS:
CODE,DS:
CODE
START:
;两位控制一个方向,00黄,01绿,10红,11灭
MOVDX,203H;A口输出,8255片选CS55接200H-207H
MOVAL,80H;10000000b,A口输出,B,C口本实验不用
OUTDX,AL
CALLSTATUS0;状态0,初始状态(都是红灯)
LOOP:
CALLSTATUS1;状态1,南北绿灯,东西红灯
CALLSTATUS2;状态2,南北绿灯闪转黄灯,东西红灯
CALLSTATUS3;状态3,南北红灯,东西绿灯
CALLSTATUS4;状态4,南北红灯,东西绿灯闪转黄灯
JMPLOOP;周而复始
STATUS0:
MOVAL,0F0H;南北红灯,东西红灯11110000
MOVDX,200H
OUTDX,AL
MOVBL,50
CALLDELAY;延时5秒
RET
STATUS1:
MOVAL,0A5H;10100101南北绿灯,东西红灯
MOVDX,200H
OUTDX,AL
MOVBL,50
CALLDELAY;该状态保持5秒
RET
STATUS2:
MOVCX,3;绿灯闪3次,隔0.5秒闪一次
FLASH:
MOVAL,0A0H;10100000南北黄灯,东西红灯
MOVDX,200H
OUTDX,AL
MOVBL,5
CALLDELAY;延时0.5秒
MOVAL,0A5H;10100101南北绿灯,东西红灯
MOVDX,200H
OUTDX,AL
MOVBL,5
CALLDELAY;延时0.5秒
LOOPFLASH
MOVAL,0F5H;11110101南北灭灯,东西红灯
MOVDX,200H
OUTDX,AL
MOVBL,10
CALLDELAY;南北灭灯延时1秒
RET
STATUS3:
MOVAL,05AH;01011010南北红灯,东西绿灯
MOVDX,200H
OUTDX,AL
MOVBL,50
CALLDELAY;延时5秒
RET
STATUS4:
;南北红灯,东西绿灯闪转黄灯
MOVCX,3;绿灯闪3次
FLASH1:
MOVAL,050H;10100000南北红灯,东西黄灯,01010000
MOVDX,200H
OUTDX,AL
MOVBL,5
CALLDELAY;延时0.5秒
MOVAL,05AH;10100101南北红灯,东西绿灯01011010
MOVDX,200H
OUTDX,AL
MOVBL,5
CALLDELAY;延时0.5秒
LOOPFLASH1
MOVAL,0FAH;11110101南北红灯,东西灭灯11111010
MOVDX,200H
OUTDX,AL
MOVBL,10
CALLDELAY;东西灭灯一秒
RET
DELAYPROCNEAR
PUSHCX
DL1:
MOVCX,8000H
DL2:
LOOPDL2
DECBL
CMPBL,0
JNEDL1
POPCX
RET
DELAYENDP
CODEENDS
ENDSTART
(五)实验结果及分析
在实验台的三色交通灯区,两组指示交通灯的变化规律为:
1、实验开始时,南北和东西的灯均为红灯状态。
2、南北转绿灯、东西保持红灯。
3、南北绿灯、黄灯交替闪烁共计3秒,东西继续保持红灯。
4、南北黄灯灭、红灯亮,同时东西方向的红灯灭、绿灯亮。
5、南北保持红灯,同时东西方向的绿灯、黄灯交替闪烁共计3秒。
6、状态转至2重复执行。
二、温度测控系统的设计
(一)系统概述
1、本课程设计意义
学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
2、设计要求
温度测控系统的设计:
利用ADC0809采用中断方式设计一个温度测控系统,在LED数码显示器上显示温度值,并对温度进行测试和控制,当检测温度到达温度上限60℃时开风扇(即开启电动机),低于下限30℃时关闭风扇,LED上的显示内容为:
XX℃(采用十进制显示)。
(二)系统分析与设计
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转换结束时,此端输出一个高电平(转换期间一直为低电平)。
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引脚示意图
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。
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响应中断并进入中断子程序的处理过程后,中断控制器仍负责对外部中断请求的管理。
(三)程序设计流程图
上图实现了本次实验所要要求的功能:
检测温度到达温度上限60℃时启动直流电动机,而温度低于下限30℃时停止电动机,并在数码管上显示所采集到的数字量和转换后的模拟量。
系统功能框图:
(四)源程序代码
codesegment;8255的CS接210H-217H,8259的CS接208H-20FH
assumecs:
code,ds:
code;ADC0809的CS接200H-207H
start:
movax,cs
movds,ax
movdx,213h
moval,80h
outdx,al;8255初始化
moval,13h;8259初始化
movdx,208h
outdx,al;ICW1初始化
moval,08h
movdx,209h
outdx,al;ICW2初始化
moval,01h
outdx,al;ICW4初始化
inal,dx
andal,0feh
outdx,al;OCW1打开非屏蔽位
pushds
movax,0
movds,ax
movax,offsetintr
movds:
wordptr[4*08h],ax
movax,cs
movds:
wordptr[4*08h+2],ax;设置中断向量
popds
movdx,200h
movax,0
outdx,al;开始转化
sti
rel:
nop
jmprel
初始界面显示程序
printprocnear
pushbx
pushax
pushdi
pushcx
leabx,TABLE
leadi,BUFDA
movcl,11110111b;位码
next:
movdx,211h
moval,cl
outdx,al;输出位码
moval,[di];取段码
xlat
movdx,210h;输出段码
outdx,al
pushcx
movcx,030h
delay1:
loopdelay1;软件延迟
popcx
cmpcl,11111110b;判断是否扫完一遍
jzr1;显示完一遍则返回
incdi
rorcl,1;循环右移一位
jmpnext
r1:
popcx
popdi
popax
popbx
ret
printendp
intrprocnear
pushax
pushbx
movdx,200h
inal,dx
movdl,100
muldl
movdl,255
divdl
pushax
callbinidec
callprint
popax
cmpal,30
jlrunoff
cmpal,60
jlr2
runon:
movdx,213h
moval,1
outdx,al
jmpr2
runoff:
movdx,213h
moval,0
outdx,al
r2:
movdx,200h
moval,0
outdx,al
moval,20h
movdx,208h
outdx,al
popbx
popax
iret
intrendp
binidecprocnear
pushdx
pushsi
movah,0
movdl,100
divdl
movsi,offsetBUFDA
mov[si],al
movdl,10
moval,ah
movah,0
divdl
incsi
mov[si],al
moval,ah
incsi
mov[si],al
popsi
popdx
ret
binidecendp
TABLE:
db3fh;"0"的段码
db06h;"1"的段码
db5bh;"2"的段码
db4fh;"3"的段码
db66h;"4"的段码
db6dh;"5"的段码
db7dh;"6"的段码
db07h;"7"的段码
db7fh;"8"的段码
db6fh;"9"的段码
db39h;"C"的段码
BUFDA:
db0,0,0,10
codeends
endstart
(五)、实验结果及分析
在实验的过程中,会发现实验台左下区域的六位七段数码管显示的数值会随着温度传感的变化而时刻变化着,并且当显示的数值温度到达温度上限60℃时启动直流电动机,而温度低于下限30℃时停止电动机。
做实验的过程中,总是出现大大小小不同的问题,归结一下主要有:
连线时错误,未分清楚每个引脚的具体作用,还有就是导线与插孔的接触不良,这就要求在连线前要先确定一下导线的好坏,以免使用不良导线产生无法预知、不易检查出的错误,给实验带来不便。
三、设计总结
短短的一周多的课程设计结束了但它却让我懂得了很多东西,也锻炼了我亲自动手操作的能力。
一直以来我们只学书本的知识,却不懂得去实践课本上的知识,甚至是不屑于亲自动手锻炼,这样我们学的知识就不会完全被吸收,有可能我们学的又会很快就忘记,那样我们付出的时间和精力就白费了。
而这次的课程设计让我们真正感受到动手操作的魅力,它不光会加深我们已学的课本知识,而且会使我们认识一些常用芯片是怎么工作的,当我们调试程序正确执行后,我们会有一种成就感,虽然它并不是多么值得自豪的事情,可毕竟甚至是我们第一次做东西,无疑会提升我们的兴趣。
通过这次课程设计,我懂得了要把学到的东西充分应用到实践中去,就算会遇到各种各样的问题,只要我们仔细,用心的去思考,总会有解决的办法,锻炼了我们的动手能力,这对我们毕业后就业会有很大的帮助的。
很感谢这次的课程设计安排。