1、北大自考微机接口上机题8255Ac口低四位输入,a口输出到数码段,当pc0=0 时,a口输出是加一循环(0f),pc0=1时,a口输出是减一循环(f0),输出时延一秒钟,有键按下就退出.data segmentleddb 71h,79h,3fh,39h,7fh,77h,67h,7fhdb 07h,7ch,6dh,6eh,4fh,5bh,06h,3fhcount db 0(定义循环初始值为零)data endscode segment assumecs:code,ds:datastart: mov ax,datamov ds,axmov dx,28bhmov al,81hout dx,al(82
2、55初始化)input:mov dx,28ahin al,dxand al,0fhand al,01h(判断pc0)jza1mov al,countand al,0fh(要屏蔽高四位,以免超过15后出乱码)lea bx,ledxlatmov dx,288hout dx,alcall delay(延迟子程序老师会给出)dec countmov ah,1int 16hjz input(判断是否有键按下,无则继续判断pc0)jmp a2(有则返回dos)a1: mov al,countand al,0fhlea bx,ledxlatmov dx,288hout dx,alcall delayinc
3、countmov ah,1int 16hjz inputa2: mov ah,4chint 21hdelay proc near.delay endpcode endsend start这道题难在寄存器的使用不能冲突,我就是因为一个bl的使用弄的头都大了,还好最后做出来了!庆幸!我是那天考试第一个出来的!3月24号上午考试题今天上午的接口题,感觉还可以!8255的Pc0=0时,A口输出接到L0-L7的信号灯上。要求L0-L7隔一个亮一个。(亮灭亮灭亮灭亮灭)每过一秒让灯左移一位。其实就是。(灭亮灭亮灭亮灭亮)延迟程序老师给出。当Pc0=1时,要求L0-L7每隔两个亮两个(灭灭亮亮灭灭亮亮),每
4、过一秒让灯左移2位,其实就是(亮亮灭灭亮亮灭灭)。没有键按下循环显示,有键按下返回DOS!其实只要大家把题意给弄明白就好办了。3月25号下午接口题8255的PA0=0时,C口输出接到L0-L7的信号灯上。要求L0-L7隔一个亮一个。(亮灭亮灭亮灭亮灭)每过一秒让灯左移一位,循环显示。其实就是。(灭亮灭亮灭亮灭亮)延迟程序老师给出。当PA0=1时,要求L0-L7每隔两个亮两个(灭灭亮亮灭灭亮亮),每过幻肴玫谱笠?位,也循环显示。其实就是(亮亮灭灭亮亮灭灭)。没有键按下循环显示,有键按下返回DOS!9月6日上午题 8255Ac口低四位输入,a口输出到数码段,当pc0=0 时,a口输出是加一循环(0
5、f),pc0=1时,a口输出是减一循环(f0),输出时延一秒钟,有键按下就退出.data segmentleddb 71h,79h,3fh,39h,7fh,77h,67h,7fhdb 07h,7ch,6dh,6eh,4fh,5bh,06h,3fhcount db 0(定义循环初始值为零)data endscode segment assumecs:code,ds:datastart: mov ax,datamov ds,axmov dx,28bhmov al,81hout dx,al(8255初始化)input:mov dx,28ahin al,dxand al,0fhand al,01h(判
6、断pc0)jza1mov al,countand al,0fh(要屏蔽高四位,以免超过15后出乱码)lea bx,ledxlatmov dx,288hout dx,alcall delay(延迟子程序老师会给出)dec countmov ah,1int 16hjz input(判断是否有键按下,无则继续判断pc0)jmp a2(有则返回dos)a1: mov al,countand al,0fhlea bx,ledxlatmov dx,288hout dx,alcall delayinc countmov ah,1int 16hjz inputa2: mov ah,4chint 21hdela
7、y proc near.delay endpcode endsend start9月7日上午考题8255方式0,从C口输入一个数最大值为0FFH,再检测C0输入的数据,如为1,则+1,从A口输出,如为0,则1从A口输出,延时一秒,有键按下则退出code segmentassume cs:codestart:mov al,89hmov dx,28bhout dx ,almov dx,28ahin al,dxmov bl,almov cl,all:mov dx,28ahin al,dxtest al,1jz ainc blmov al,bljmp ba:dec clmov al,clb:mov d
8、x,288hout dx.almov ah,16hint 21hjz lmov ah,4chint 21hdelay proc near.dalay endpcode endsend start9月7号下午考题8253clk0输入1MHZ脉冲,OUT1输出1HZ到8255C囗,若PC0=1,则PA囗输出11001100,若PC0=0,则PA囗输出00110011。不难吧!我二十分钟就搞定了。答案太长了,我给出一部分吧。初始化部分l1:movdx,281h in al,dxmov dx,28ahout dx,almov dx,28ahin al,dxtest al,01jz l2mov dx,2
9、88hmov al,cchout dx,aljmp l3l2: mov dx,288hmov al,33hout dx,all3:mov ah.01hint 16hjz l1mov ah,4chint 21h9月8日接口上午题8253方式0,通道1,计数初值来自8255A口低四位,将计数结果从8255C口显示至七段数码管,并从8255A口高四位输出到指示灯高四位,键盘有键按下返回DOS,否则继续执行.9月10日下午考题 8253通道1方式0,记数初值3,out1输出到pa0口,8255方式0,a口输入,c 口输出到LED灯上,当PA0=0时,01010101-10101010循环,当PA0=1
10、时,00110011-11001100循环,有键按下返回DOS.月11号上午的考题 8253性质通道1方式0,手动输入单脉冲,out1给8255的pa0,8255a口输入c口输出给个指示灯。当pa0的时候指示灯每隔一个亮,且间隔一秒当pa0的时候指示灯每隔两个亮,且间隔一秒9月13日北大上机接口考题 这几天北大上机考试都开始了,这几天考的接口上机考题都有一些难度,至少比上次考的难些!今天下午的考题是: 8255的A口交替输出AAh和55h,时间间隔为1秒。当8253方式0输入三个单脉冲事终止。8253为通道1。12.21下午2:40-5:40的考试题用8253,1通道,0方式,初值0FH,用8
11、255A的PC口接7段数码管(LE0-LE7,面包版上的7个等)显示。大概意思就是8253记数器记的内容用8255的PC口输出。12月22日中午接口上机考题8255:方式0,C口高四位输入,A低四位输出8253:计数器0,方式0,从C口读入计数器初值,手动逐个输入单脉冲,并在A口显示其值。code segment assumecs:code (A口:280h,B口:281h)start:movdx,283houtdx,00001000hloop: in al,282hmovcl,4shral,clout280h,almovah,1int16hje loopmovah,4chint21h cod
12、e segmentendstart12月23日上午 接口实践题 编一个程序,用8255从C口的低四位输入,求反后从C口的高四位输出. 答案:code segment start:mov dx,28bh ;控制口地址 mov al,81h;100000181H out dx,al inout:mov dx,28ah ;从C口地址输入 inal,dx not al;这一段就是考试最容易变化的 and al, 0fh mov cl,4 rol al,cl mov dx ,28ah;从C口输出 out dx,al mov ah,1 int 16h jzinout ;无键按下则继续循环 mov ah,4
13、ch int 21h codeends endstart23日中午的接口上机题题目:编程8255,从A口输入,高四位不变,低四位求返,从C口输出另要求在卷子上写出方式自,接线图,与练习部分不同的程序方式字:10010000接线图:A口接K口做输入,C口接LED做输出程序如下:code segmentassume cs:codestart: mov dx,28bhmov al,90hout dx,alinout:mov dx,288hin al,dxxor al,0fhmov dx,28ahout dx,al.(其余与练习部分一致)code endsend start上机主要考8255,8253
14、把8255,8253的初始化部分理解透了(书上有),就很简单了,有练习,老师带着大家先做1小时,这时有问题可以及时问,老师态度很和蔼,好像是研究生.练习题与北大出的上机介绍的书上的一模一样,事先把题理解一下,到时可以在真实环境下做一下.北大接口(新考法!)这次上机主要是两个板子的结合考法,希望各位同学好好看看书! 22号,中午试题 8253,通道0,方式0,初始值从8255的C口输入,8255的PC口高四位输入,PA口输出到LED 我考的是 8253的一通道 在0方式下 计数 计数初始值为 0fh 用单脉冲控制在显示器上回显计数值并在显示芯片 c口输出以0f显示 完成以上及格附加题是 使显示顺
15、序 以 0f递增 因为计数器是减一计数23号下机题8253选用通道1, 方式1硬件可重触发单稳态, 计数初值0Fh, 用8255 A口输出到7段LED显示屏, CLK1接单脉冲, OUT1接逻辑笔,GATE1接K7开关8255 方式字1000xxxx=80H, 端口288-28BH8253 方式字01010010=52H, 端口280-283HDATA SEGMENTLED DB (7段LED显示码,具体数字我记不清了,在考试时会给出的)DATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATASTART: MOV AX, DATA MOV DS, AX MOV
16、 DX, 28BH MOV AL, 80H OUT DX, AL; 对8255初始化 MOV DX, 283H MOV AL, 52H OUT DX, AL; 8253初始化 MOV DX, 281H MOV AL, 0FH OUT DX, AL; 读计数初值INOUT: MOV DX, 281H INAL, DX AND AL, 0FH LEA BX, LED XLAT MOV DX, 288H OUT DX, AL MOV AH, 1 INT 16H JZ INOUT; 若无键盘输入则继续 MOV AH, 4CH INT 21HCODE ENDS END START12月24日下午考题!(
17、下午14点20这一场)从8255的A口输入、C口输出,如果A口输入的数大于或等于128,从C口输出80H,否则将输入数字高四位不变,低四位求反,从C口输出!唉,一个小错让我折了,希望大家比我强,能取得好成绩!2003年12月24号上午8:0011:00点的接口实验题从8255的c口低4位输入数据,然后取反从c口高4位输出,有键按下就返回dos,没有键按下就继续循环从c口输入输出数据。 26号中午上机题用计数器/定时器8253,通道1,方式0,计数器初值为0fh,手动单脉冲控制从8255a口输出到数码器,以递增的顺序显示0f。要求:写出控制方式字,初值和连线图。26号上午8:00-11:00接口
18、上机题目:8255的A口接发光二级管,使发光二级管的L0-L7循环依次发光,且每个灯亮持续一秒钟(须用延时一秒的子程序,老师会写在黑板上),若键盘有键按下则退出,返回DOS我做的参考答案:、方式控制字为 10000000B=80H、连线图(略)、程序: CODESEGMENT ASSUME CS:CODE START: MOV DX,28BHMOV AL,80HOUT DX,AL MOV DX,288HLOP:MOV BL, 01HINOUT:CMP BL,0JZLOPMOV AL,BLOUT DX,ALCALL DELAYSHL BL,1MOV AH,1INT 16HJZINOUTMOV A
19、H,4CHINT 21H CODE ENDSEND START注:延时子程序老师会给出,我这里就没写,有兴趣的同学可以自己翻翻书,书上有的;解释一下为什么要用BL来传递要显示的数,而不直接用AL:因为INT 16H这条指令的作用是看是否有键按下,所以可能用了AL来存放按下的键的ASCII码(就像INT 21H的二号调用放到AL一样),再执行CMP AL,0无键按,则AL为0,有键按就非0了。由此改了AL的值,直接用AL放数会错的!我当时想破了脑袋,差点没气死:) 祝后面考的同学考好!题目:把一个1mhz的脉冲通过两次分频转换成1hz的方波。(通道0、通道1、通道2、控制字地址 分别为280h,281h,282h,283h)答案:code segment assume cs:codestart:mov dx,283h out dx,00110111b ;选中通道0,工作在3方式下,对bcd码自减 mov dx,280h mov al,0h out dx,al mov al,10h
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1