中山大学实验报告模板微机交通灯报告.doc_第1页
中山大学实验报告模板微机交通灯报告.doc_第2页
中山大学实验报告模板微机交通灯报告.doc_第3页
中山大学实验报告模板微机交通灯报告.doc_第4页
中山大学实验报告模板微机交通灯报告.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

中山大学 实验报告 SUN YAT-SEN UNIVERSITY 院(系) 学 号 审批 专 业 实验人 实验题目:实验八:交通灯控制一、实验目的通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口和计数器8253的使用。2、 实验内容(一)十字路口交通信号灯控制系统的设计基本要求:(1)南北与东西方向,每个方向由红黄绿三个灯控制(2)南北向:红(30秒),黄(5秒),绿(25秒)东西向: 红(35秒),黄(5秒),绿(25秒)采用8253定时,上述基本参数可以根据实际情况自行调整,灯的变化规律与实际路口规律相同,绿灯在最后5秒钟时,黄灯亮,然后红灯亮,不允许两个方向同时亮绿灯。(3)绿灯的时间在数码管上进行显示。(二)要求二:完成上述要求后,有条件的同学可以尝试以下工作:(1)设计一个紧急控制开关信号,当紧急开关信号为1时,两个方向的灯全为红灯。紧急开关撤消后,按照开关按下之前的状态继续运行(其参数要保存)。(2)设计一个夜间行车开关,当开关按下后,两个方向都只有黄灯闪烁,其它灯熄灭。根据要求,同学们做好预习,画好流程图,设计好基本程序。三 实验流程图 四实验流程图 开始设置8255A口输出C口输出从键盘接收字符大于0且小于9吗?N设8253计数器0为方式3,写入初值10000;设计数器1为工作方式0,初值为读入字符大小乘以100。Y检测8253的计数值是否比上一次计数值大NY显示绿灯的时间绿灯的时间减1绿灯的时间减为0了吗?NY重置绿灯的时间并改变灯的显示状态返回DOSC口输出点亮相应的灯 5、 实验程序:data segmentio8255a equ 28ahio8255b equ 28bhio8255c equ 288hio8253a equ 280hio8253b equ 281hio8253c equ 283hled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhmesg1 db 0dh,0ah,Input a num (1-9),other key is exit:,$mesg2 db 0dh,0ah,Error!,$second db ?tl db ?now db ?data endscode segment assume cs:code,ds:datastart:mov ax,data mov ds,ax mov dx,io8255b ;设8255为A口输出,C口输入 mov ax,89h out dx,al mov dx,io8253c ;设8253计数器0为方式3 mov al,36h out dx,al mov dx,io8253a mov ax,10000 ;写入计数器0初值10000 out dx,al mov al,ah out dx,al mov ax,cs mov ds,ax mov dx,offset int3 mov ax,250bh int 21h ;设置IRQ3的中断矢量 in al,21h ;读中断屏蔽寄存器 and al,0f7h ;开放IRQ3中断 out 21h,al mov ax,data mov ds,axinput:mov dx,offset mesg1 ;显示提示信息 mov ah,9 int 21h mov ax,0c01h ;清空缓存并读入一个字符 int 21h cmp al,1 ;检测是否为1-9 jl exit cmp al,9 jg exit jmp nextexit: mov dx,2a8h mov al,0 out dx,al mov dx,io8255c mov al,0 out dx,al mov ah,4ch int 21h next: sub al,30h ;字符经过处理后为绿灯亮的秒数,存入second的第二位 mov bl,10 mul bl sub al,5 mov second,al mov tl,al sti ;开中断 ld: mov al,second ;亮灯1 mov ah,0 mov cx,ax mov dx,2a8h mov al,81h out dx,al mov now,all1: call delay mov ah,0bh int 21h cmp al,0ffh jz input loop l1 mov dx,2a8h ;亮灯2 mov al,82h out dx,al mov now,al mov cx,5l2: mov al,tl mov bx,offset led ;使BX指向段码管首址 xlat mov dx,io8255c out dx,al call delay dec tl mov ah,0bh int 21h cmp al,0ffh jz input loop l2 mov al,5 mov tl,al mov dx,io8255c ;关数码管 mov al,0 out dx,al mov al,second ;亮灯3 mov ah,0 mov cx,ax mov dx,2a8h mov al,24h out dx,al mov now,all3: call delay mov ah,0bh int 21h cmp al,0ffh jnz next1 jmp inputnext1:loop l3 mov dx,2a8h ;亮灯4 mov al,44h out dx,al mov now,al mov cx,5l4: mov al,tl mov bx,offset led ;使BX指向段码管首址 xlat mov dx,io8255c out dx,al call delay dec tl mov ah,0bh int 21h cmp al,0ffh jnz next2 jmp inputnext2:loop l4 mov al,5 mov tl,al mov dx,io8255c ;关数码管 mov al,0 out dx,al jmp ld int3: push ax push cx push dx push ds mov dx,io8255c ;关数码管 mov al,0 out dx,al mov dx,2a8h ;亮两个红灯 mov al,84h out dx,al che: mov dx,io8255a ;检查是否关闭紧急开关 in al,dx and al,40h cmp al,40h jz che mov dx,2a8h ;恢复之前的led状态 mov al,now out dx,al pop ds pop dx pop cx pop ax mov al,20h out 20h,al sti iret delay proc near ;延时子程序 mov dx,io8253c mov al,70h ;设计数器1为工作方式0 out dx,al mov dx,io8253b mov ax,100 ;写入计数器1初值 out dx,al mov al,ah out dx,al ag : mov dx,io8255a in al,dx and al,80h cmp al,80h jnz agyel: in al,dx and al,20h cmp al,20h jnz back mov al,now mov ah,0 push ax call yellow pop ax mov now,al mov dx,2a8h out dx,alback: retdelay endpyellow proc nearbg: mov al,42h mov now,al mov dx,2a8h out dx,al mov dx,io8253b mov ax,50 ;写入计数器1初值 out dx,al mov al,ah out dx,al mov dx,io8255aag2: in al,dx and al,80h cmp al,80h jnz ag2 mov al,0 mov now,al mov dx,2a8h out dx,al mov dx,io8253b mov

温馨提示

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

评论

0/150

提交评论