微机汇编语言 红绿灯实验_第1页
微机汇编语言 红绿灯实验_第2页
微机汇编语言 红绿灯实验_第3页
微机汇编语言 红绿灯实验_第4页
微机汇编语言 红绿灯实验_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、微机原理与接口技术课程设计报告班级: 学号: 姓名: 同组队员: 指导教师: 日期: 12月25日1月9日 第 25 页 共 25 页 课程设计实验报告目 录1 课程设计的目的及基本要求 32 设计题一 32.1 程序目的与内容 32.2 流程图 3 2.3 源程序 4 2.4 调试过程及程序运行结果 63 设计题二 8 3.1 实验电路及连线 9 3.2 程序设计思想 9 3.3 程序流程图 10 3.4 实验程序 113.5 设计题二提高及拓展 133.6 实验结果分析 214 设计题三4.1 程序设计思想 224.2 流程图 23 4.3 源程序 23 4.4 调试过程及程序运行结果 2

2、45 实验心得 256 参考文献 26课程设计目的及基本要求: 本课程设计是微机原理与接口技术课程的配套内容。微型计算机在很多场合作为一个控制系统的控制部件或作为一个设备的智能化部件融入系统中。对于自动化专业的学生了解和认识微机的硬件结构和输入输出接口技术是十分必要的。实验题目(1)编制一个完整的程序,计算10个正整数(字数据)之和,如果不超过机器数范围(65535),则计算其平均值并存于RESULT中,否则显示“OVERFLOW”。一、程序设计思想:程序目的是为了实现在程序模拟软件dos的环境下,实现对10个数字字符取平均值,并要求能够判断是否超过机器数的范围,如果超出,则显示“OVERFL

3、OW”,如果不超出则显示平均值,而且能够实现多位显示。 二、程序流程图:显示RESULT结束N判断进位标志位是溢出。YY:显示“overflow”YN取加数两数相加两数相加CX是否为0(CX)(CX)-1数据块长度送CX取被加数开始三、源程序:DATASEGMENTNUMDW 5,5,5,5,5,5,5,5,5,5,ERRDB 'OVERFLOW',0DH,0AH,'$'RESULTDW ?DATAENDSCODESEGMENTASSUMECS: CODE,DS: DATABEGIN:MOV AX,DATAMOV DS,AXXOR AX,AXMOV SI,AXM

4、OV CX,10SUM:ADD AX,NUMSIJC NEXTADD SI,2LOOP SUMMOV BX,10MOV DX,0DIV BXMOV RESULT,AXJMP SHORT EXITNEXT:LEA DX,STRMOV AH,09HINT 21HEXIT:MOV AH,4CH INT 21HCODE ENDSEND BEGIN四、调试过程及程序运行结果:4.1 溢出的情况:4.2 未溢出的结果:实验题目(2)根据实际交通灯的变化规律,共有东西南北四个信号灯。其中,共设定四种状态:初始状态0:东西方向红灯,南北方向也为红灯。状态1:南北方向绿灯通车,东西保持红灯。状态2:南北方向黄灯

5、闪三次,提示即将变灯,东西方向仍然红灯。状态3:东西方向绿灯通车,南北方向红灯。状态4:东西方向黄灯闪三次,提示即将变灯,南北仍然红灯.整个运行过程为:状态0状态1状态2状态3状态4,状态4执行完毕后返回状态1,依此循环。双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用正端,为高电平。当红色负端加低电平,绿色负端加高电平时,红灯导通,即亮红灯;反之,则绿灯亮;若两个负端均加低电平时,黄灯亮。这个设计基于实验室8051/8088实验箱的基础上进行,以8255作为输出口,控制4个双色LED灯(可发红、绿、黄光),模拟十字路口交通灯管理。具体的来说,程序首先通过203H端口设置端

6、口为全输出,通过从202H的地址端口输出数据,可以让PORTC8根线控制红绿灯,069H给LED呈现南北绿东西红的状态,将BX赋值为1FFFH,进行一个比较长时间的延时。程序进入一个循环次数为3的循环,把041H和07DH分别输出,实现黄灯闪烁3次的效果,延时程序赋值1AAH。再从端口输出096H使得南北红东西绿的状态,长延时之后黄灯闪烁三次,进入新一轮的循环。一、实验电路及连线:基于实验室8051/8088实验箱的基础上进行二、程序思想:程序首先通过203H端口设置端口为全输出,通过从202H的地址端口输出数据,可以让PORTC8根线控制红绿灯。首先做一次显示的初始化,把0H输出,对LED清

7、零。然后输出0FH,让LED呈现全红的状态,将BX赋值为7FH,进入延时程序。然后输出,10010110B给LED呈现南北绿东西红的状态,将BX赋值为200H,进行一个比较长时间的延时。程序进入一个循环次数为3的循环,把10011111B和10010110B分别输出,实现绿灯闪烁3次的效果,延时程序赋值20H。再从端口输出00000110B,使得南北呈现黄灯,延时一段时间,进入新一段的状态,程序原理相同。 三、程序流程图:初始化设置8255各口为输出清LED四灯全红延时南北绿灯,东西红灯,延时绿灯闪三次南北黄灯,延时南北红灯,东西绿灯,延时绿灯闪三次东西黄灯,延时四、实验程序:DSEG SEG

8、MENTDSEG ENDSSSEG SEGMENTSTA DW 50 DUP(?)TOP EQU LENGTH STASSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEG,ES:DSEG,SS:SSEGBEGIN:MOV AL,80H ;设置为全输出MOV DX,0203HOUT DX,ALMOV DX,0202HOVF:MOV AL,069H ;南北绿灯,东西红灯OUT DX,ALCALL LDELAYMOV AL,041H ;黄灯闪烁三次OUT DX,ALCALL DELAYMOV AL,07DHOUT DX,ALCALL DELAYMOV AL,041H

9、OUT DX,ALCALL DELAYMOV AL,07DHOUT DX,ALCALL DELAYMOV AL,041HOUT DX,ALCALL DELAYMOV AL,07DHOUT DX,ALCALL DELAYMOV AL,096H ;南北红灯,东西绿灯OUT DX,ALCALL LDELAYMOV AL,014H ;黄灯闪烁三次OUT DX,ALCALL DELAYMOV AL,0D7HOUT DX,ALCALL DELAYMOV AL,014HOUT DX,ALCALL DELAYMOV AL,0D7HOUT DX,ALCALL DELAYMOV AL,014HOUT DX,ALC

10、ALL DELAYMOV AL,0D7HOUT DX,ALCALL DELAYJMP OVFDELAY PROC NEAR ;短延时,即闪烁延时MOV BX,1AAHNEXT1:MOV CX,0DFHNEXT2:LOOP NEXT2DEC BXJNZ NEXT1RETDELAY ENDPLDELAY PROC NEAR ;长延时,即信号灯延时 MOV BX,1FFFHNEXT3:MOV CX,0DFH NEXT4:LOOP NEXT2DEC BXJNZ NEXT3RETLDELAY ENDPCSEG ENDSEND BEGIN提高要求2(在状态2、4绿灯闪烁的同时让八段数码管出现倒计时)程序先

11、通过8255 C口输出数据,让PORTC8根线控制红绿灯,再通过B口输出数据,让八段数码管在绿灯闪烁时出现3秒倒计时。主程序不变,在每次绿亮调出延迟程序之后插入倒计时程序。LED灯在实验箱中的基本电路八位流水灯在试验箱中的电路显示字符段符号的值显示代码dpgfedcba0123456789ABCDEF000000000000000000111110111101111000111011111011101000101011111110110110110111101101111111110100111110011110010010110111111010113FH06H5BH4FH66H6DH7DH

12、07H7FH6FH77H7CH39H5EH79H71H共阴极八段发光二极管显示器字符显示代码表一、源程序:D1 EQU 10HD2 EQU 200HDATA SEGMENTPB DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV DX,203H ;设置为全输出 MOV AL,80H OUT DX,AL MOV DX,202H MOV AL,00H OUT DX,AL ;清LED MOV DX,202H ;全红 MOV AL,0FH OUT DX,AL MOV BX,7fH CALL DLYBG: MOV AL,10010110B

13、;南北绿,东西红 OUT DX,AL MOV BX,D2 CALL DLY MOV AL,10011111B ;绿灭 OUT DX,AL MOV BX,D1 CALL DLY MOV AL,10010110B ;绿亮 OUT DX,AL MOV BX,D1 CALL DLYMOV DX,201H MOV AL,11001111B OUT DX,AL MOV BX,D1 CALL DLY MOV DX,202H MOV AL,10011111B ;绿灭 OUT DX,AL MOV BX,D1 CALL DLY MOV AL,10010110B ;绿亮 OUT DX,AL MOV BX,D1 CA

14、LL DLYMOV DX,201H MOV AL,11011011B OUT DX,AL MOV BX,D1 CALL DLY MOV DX,202H MOV AL,10011111B ;绿灭 OUT DX,AL MOV BX,D1 CALL DLY MOV AL,10010110B ;绿亮 OUT DX,AL MOV BX,D1 CALL DLY MOV DX,201H MOV AL,10000110B OUT DX,AL MOV BX,D1 CALL DLY MOV AL,10000000B OUT DX,AL MOV DX,202H MOV AL,00000110B ;南北黄 OUT D

15、X,ALMOV BX,D1 CALL DLY MOV BX,D1CALL DLY MOV BX,D1 CALL DLY MOV BX,D1CALL DLYMOV BX,D1 CALL DLY MOV AL,01101001B ;南北红,东西绿 OUT DX,AL MOV BX,D2 CALL DLY MOV AL,01101111B OUT DX,AL MOV BX,D1 CALL DLY MOV AL,01101001B OUT DX,AL MOV BX,D1 CALL DLY MOV DX,201H MOV AL,11001111B OUT DX,AL MOV BX,D1 CALL DLY

16、 MOV DX,202H MOV AL,01101111B OUT DX,AL MOV BX,D1 CALL DLY MOV AL,01101001B OUT DX,AL MOV BX,D1 CALL DLY MOV DX,201H MOV AL,11011011B OUT DX,AL MOV BX,D1 CALL DLY MOV DX,202H MOV AL,01101111B OUT DX,AL MOV BX,D1 CALL DLY MOV AL,01101001B OUT DX,AL MOV BX,D1 CALL DLY MOV DX,201H MOV AL,10000110B OUT

17、DX,AL MOV BX,D1 CALL DLY MOV AL,10000000B OUT DX,AL MOV DX,202H MOV AL,00001001B OUT DX,ALMOV BX,D1 CALL DLY MOV BX,D1CALL DLY MOV BX,D1 CALL DLY MOV BX,D1CALL DLYMOV BX,D1 CALL DLYJMP BGDLY PROC NEAR PUSH CXDDD: MOV CX,0FFFHCCC: LOOP CCC DEC BX CMP BX,0H JNE DDD POP CX RET DLY ENDP CODE ENDSEND STA

18、RT二、程序流程图:初始化设置8255各口为输出清LED四灯全红延时南北绿灯,东西红灯,延时绿灯闪三次八段码倒计时南北黄灯,延时南北红灯,东西绿灯,延时绿灯闪三次八段码倒计时东西黄灯,延时三、实验结果分析:程序在实验箱上运行以后,初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1。实验运行正常。四、实验思考与拓展:在实际红绿灯中我认为可以在十字路口处的红绿灯上装上一个虚拟灯束,在横向绿灯纵向

19、红灯时,纵向的红绿灯的上方的虚拟灯束会投射出一道像栅栏一样的虚拟光束,让从远处行来的机动车会认为是真实栅栏这样红灯方向的机动车就不会去乱闯红绿灯,通过这种虚拟灯束可以有效的减少机动车乱闯红绿灯的现象,同时减少交通事故的发生。实验题目(3)一、程序内容设计及思想:1.1 程序设计内容在缓冲区BUFFER连续存放着100个学生的数学成绩,片程序统计其中85100分、6084分、60分以下者各有多少人,并把结果存到RESULT开始的三个单元。1.2 程序设计思想首先在BUFFER中存放100个数,由于100个数字输入较麻烦,因此,在这里仅以十个数字为例。则计数器CX的值定位10,通过源变址寄存器SI

20、,依此对存入的数字进行比较处理。具体的来说,就是将10个数依此与85和60比较,并将结果存入RESULT、RESULT+1和RESULT+2中。其中,RESULT表示分数在85到100之间的人数,RESULT+1表示6084分的人数,RESULT+2表示60分以下者的人数。二、程序流程图:BUFFER中存入分数分数是否大于85分数是否大于60RESULT+2值+1RESULT+1值+1YCX是否为0(CX)(CX)-1数据块长度送CX开始NYY结束RESULT值+1NN三、源程序:DATA SEGMENTBUFFER DB 91,89,66,12,56,67,17,44,88,70 RESUL

21、T DB 3 DUP(0)DSEG ENDSCSEG SEGMENTASSUME CS: CODE,DS: DATASTART:MOV AX,DSEGMOV DS,AXMOV CX,10 MOV SI,0NEXT:MOV AX,BUFFERSICMP AL,85JB B85 ;分数小于85,转B85INC RESULT ;分数大于85,RESULT计数加一JMP SHORT ADDRB85: CMP AL,60 ;分数小于60,转B60JB 860INC RESULT+1 ;分数6085,RESULT+1计数加一JMP SHORT ADDRB60: INCN RESULT+2 ;分数小于60,RESULT+2计数加一ADDR: INC SI LOOP NEXT MOV AH,4CH INT 21HCSEG ENDSEND START四、程序结果及分析:实验心得: 微机原理与接口技术一门专业基础课程,它的主要内容包括微型计算机体系结构、8086/8088微处理器和指令系统、汇编语言设计以及微型计算机各个组成部分介绍等内容。课程设计是培养学生综合运用所学知识,发现,提出,分析和解决

温馨提示

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

最新文档

评论

0/150

提交评论