版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机原理与接口课程上机操作实验报告姓 名:王自胜学号:12212162指导教师:付文秀时间:2014年12月I/O地址译码与交通灯控制实验实验目的通过并行接口 8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。实验内容如图5-3,L7、L6、L5作为南北路口的交通灯与 PC7 PC6 PC5相连,L2、L1、L0作为东西路口的交通灯与 PC2 PC1 PC0相连。编程使六个灯按交通灯变化规律燃灭。FkPC7 PC&CSPCBPC2 PC 1 PC 0十字路口交通灯的变化规律要求:(1) 南北路口的绿灯、东西路口的红灯同时亮 3秒左右。(2) 南北路口的黄灯闪烁若干次,同时东西路口
2、的红灯继续亮。(3) 南北路口的红灯、东西路口的绿灯同时亮 3秒左右。(4) 南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次8255动态分配地址:控制寄存器:0EC0BHA 口地址:0EC08HC 口地址:0EC0AH(5) 转(1)重复。三、程序流程图设置8255ALI输出Cl 1输岀南北附绿灯鬼 东两路口红灯売I J |氏延时南北路I I黄灯闪,东西路口红灯亮南北路口红灯亮*东两路口绿灯亮匕延时菊北路口红灯亮,东西路口黄灯t四、程序清单DATA SEGMENTX DB ?DATA ENDSSTACK1 SEGMENT STACKDW 100H DUP(O)STACK1 ENDSCOD
3、E SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATAMOV DS,AX;INIT;写控制字MOV DX,0EC0BHMOV AL,80HOUT DX,ALL3: MOV DX,0EC0AHMOV AL,24H亮OUT DX,ALCALL DELAYCALL DELAYCALL DELAYCALL DELAYCALL DELAYCALL DELAYCALL DELAY MOV BL,8 MOV AL,04HL0: XOR AL,40HOUT DX,ALCALL DELAYCALL DELAYDEC BLJNZ L0CALL DEL
4、AYMOV AL,81H 灯亮OUT DX,ALCALL DELAYCALL DELAY;南北绿灯,东西红灯;长延时,3s左右;南北黄灯闪,东西红灯亮;延时闪烁几次;南北红灯亮,东西绿CALL DELAY ;长延时,3s左右CALL DELAYCALL DELAYCALL DELAYCALL DELAYMOV BL,9MOV AL,80HL1: XOR AL,02H ;南北红灯亮,东西黄灯闪OUT DX,ALCALL DELAY;延时CALL DELAYDEC BLJNZ L1 ; 闪烁几次CALL DELAYMOV DL,OFFHMOV AH,06HINT 21HJZ L3;六号功能判断若无
5、字符输入ZF=1继续循环MOV AH,4CHINT 21H; 延时函数DELAY : PUSH CXPUSH DXMOV CX,1FFFHLOP1: MOV DX,0FFFFHLOP2: DEC DXJNZ LOP2LOOP LOP1POP DXPOP CXRETCODE ENDSEND START可编程定时时钟/计数器(8253)实验目的掌握8253的基本工作原理和编程方法。实验内容按图5-1虚线连接电路,将计数器0设置为方式0,计数器初值 为N(NW 0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显 示,并同时用逻辑笔观察 OUT0电平变化(当输入N+1个脉冲后OUT0 变高电平)。
6、按图5-2连接电图,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT输出电平的变化(频率1HZ)O EOUT 1SATE; 1CLK13*OU T00 52 A TECC L K 0 找珞控創奇存瞎LCR)XI002FC H MODEM拧制寄亦4* (BEEXI0I3FDH2FDH )钱路状,& .j仃群(1-SR XII0SrEH2FtH JMODSW 伏态态心屮-XII3FFHEFFH)3、数据发送和接收:数据发送:CPU彗 数据发送R豊建創发送移位R變吏发送端Sour (插入起始、校验、停止位后发出。)数据接收数据起始纭时钟控刽数据移位R串转并匸数据接收R
7、CPU四、程序清单 1自发自收CODE SEGMENTASSUME CS:CODESTART: MOV AL,10000000B ;8250 初始化,设 DLAB=1MOV DX,3FBHOUT DX,ALMOV AX,30H;写入除数低字节MOV DX,3F8HOUT DX,ALMOV AL,AH;写入除数高字节MOV DX,3F9HOUT DX,ALMOV AL,00001010B ;7位数据,1位停止,奇校验MOV DX,3FBHOUT DX,AL;写入线路控制寄存器MOV AL,00010000B ;自检控制MOV DX,3FCHOUT DX,ALMOV AL,0MOV DX,3F9H
8、OUT DX,ALWAIT_FOR:MOV DX,3FDHIN AL,DX;写入Moder控制寄存器;写中断允许寄存器,屏蔽中断;读线路状态寄存器TEST AL,00011110B;岀错否JNZ ERROR;岀错,转 ERRORTEST AL,00000001B;接收数据就绪否JNZ RECEIVE;就绪,转接受TEST AL,00100000B;发送寄存器空否,不空,返回等待JZ WAIT_FORMOV AH,1INT 21H;读键盘MOV DX,3F8H;发送OUT DX,ALJMP WAIT_FOR ;返回等待RECEIVE:PUSH CXPUSH AXMOV CX,02000HT1:
9、MOV AX,0FFFFHT2: DEC AXJNZ T2LOOP T1 ;延时程序MOV DX,3F8H ;读接收数据IN AL,DXAND AL,01111111B ;保留 7位数据 ;是 Ctrl+C?CMP AL,03HJNZ CHARMOV AH,4CHINT 21HCHAR: PUSH AXMOV DL,ALMOV AH,2HINT 21HPOP AXJMP WAIT_FORERROR: MOV DX,3FDHIN AL,DXMOV DL,?MOV AH,02HINT 21HJMP WAIT_FORCODE ENDSEND START;返回DOS;显示接收字符;返回等待;出错则清除
10、线路状态寄存器;显示?2.双机通信(1)发送端:CODE SEGMENTASSUME CS:CODESTART: MOV AL,80H;8250MOV DX,3FBHOUT DX,AL初始化,设DLAB=1MOV AX,30H出错否接收数据就绪否发送发送寄存器空否,不空,返回等待读键盘是!?是,返回操作系统不是,则发送返回等待出错则清除线路状态寄存器显示?MOV DX,3F8HOUT DX,AL;MOV AL,AHINC DXOUT DX,AL;MOV AL,0AH;7MOV DX,3FBHOUT DX,AL;MOV AL,03HMOV DX,3FCHOUT DX,AL;MOV AL,0MOV
11、 DX,3F9HOUT DX,AL;WAIT1: MOV DX,3FDHIN AL,DXTEST AL,1EH ;JNZ ERROR;TEST AL,01H ;JNZ SEND ;TEST AL,20H ;JZ WAIT1SEND: MOV AH,1INT 21H;CMP AL,21H;JZ EXITMOV DX,3F8HOUT DX,ALJMP WAIT1 ;ERROR: MOV DX,3FDHIN AL,DXMOV DL,?;MOV AH,02HINT 21H写入除数低字节写入除数高字节位数据,1位停止,奇校验写入线路控制寄存器写入Modem控制寄存器写中断允许寄存器,屏蔽所有中断读线路状
12、态寄存器JMP WAIT1EXIT:MOV AH,4CHINT 21HCODE ENDSEND START接收端:CODE SEGMENT ASSUME CS:CODESTART: MOV AL,80H MOV DX,3FBH OUT DX,ALMOV AX,30HMOV DX,3F8H OUT DX,AL MOV AL,AH INC DXMOV DX,3F9H OUT DX,ALMOV AL,0AHMOV DX,3FBH OUT DX,ALMOV AL,03HMOV DX,3FCH OUT DX,ALMOV AL,0MOV DX,3F9H OUT DX,ALWAIT1: MOV DX,3FD
13、H IN AL,DX TEST AL,1EH;JNZ ERRORTEST AL,01H ; JNZ RECEIVE;TEST AL,20H ; ;JZ WAIT1;8250初始化写除数写入除数低字节写入除数高字节写入线路控制寄存器写入Moder控制寄存器写中断允许寄存器,屏蔽所有中断读线路状态寄存器出错否接收数据就绪否转接收发送寄存器空否,不空,返回等待JMP WAIT1 ;RECEIVE: MOV DX,3F8H IN AL,DXAND AL,01111111BCMP AL,21HJNZ CHARMOV AH,4CH :INT 21HCHAR: PUSH AXMOV DL,ALMOV AH,
14、2;INT 21HPOP AXJMP WAIT1 ;ERROR: MOV DX,3FDH IN AL,DXMOV DL,?;MOV AH,02HINT 21H均返回等待读接收数据保留位数据是!?返回操作系统显示接受字符返回等待出错则清除线路状态寄存器显示?JMP WAIT1CODE ENDSEND START课程综合实验(抢答器)一、实验目的1、了解微机化竞赛抢答器的基本原理。2、进一步学习使用并行接口。二、实验内容图5-4为竞赛抢答器(模拟)的原理图,逻辑开关K(H K7代表竞赛抢答按钮07号,当某个逻辑电平开关置“1”时,相当某组 抢答按钮按下。在七段数码管上将其组号(07)显示出来,并使
15、喇 叭响一下。从键盘上按空格键开始下一轮抢答,按其它键程序退出。JK7 K6.K5K4K3K2K1 b c d * f X口LED 18255动态分配地址:控制寄存器:OECOBHA 口地址:0EC08HC 口地址:0EC0AH三、程序流程图开家四、程序清单DATA SEGMENTLIST DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDATA ENDSSTACK1 SEGMENT STACKDW 100H DUP(O)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATAMOV
16、DS,AXMOV DX,0EC0BHMOV AL,89HOUT DX,AL ;L0: MOV DX,0EC0AHIN AL,DX ;CMP AL,0 ;JZ L0MOV BL,0L1: INC BLSHR AL,1 ;JNC L1DEC BLMOV AL,BL;MOV BX,OFFSET LISTAND AX,00FFH ;ADD BX,AX;MOV AL,BX;MOV DX,0EC08HOUT DX,AL;对8255进行初始化读C口状态如果为0则循环将AL逻辑右移求出组号七段显示代码表的首址送 屏蔽AX高字节,组号 形成显示字符的地址 取岀字符送AL送到A口输出显示BXMOV DL,7MOV AH,2INT 21H;响铃功能调用MOV AH,01HINT 21HCMP AL,20H;当为空格时跳到CLOSEJZ CLOSEMOV AH,4CHINT 21HCLOSE: MOV AL,0MOV DX,0EC08HOUT DX,ALJMP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论