美文网首页
实验一 汇编语言与并行接口实验

实验一 汇编语言与并行接口实验

作者: Redcarp | 来源:发表于2020-07-04 11:37 被阅读0次

⚠本篇文章参考网址1:https://wenku.baidu.com/view/e04ce53c42323968011ca300a6c30c225901f099.html
⚠本篇文章参考网址2:
https://blog.csdn.net/qq_43207916/article/details/101175328

目测应该是个17级的大佬?
⚠感谢我可爱的室友们在实验过程中对我的帮助 + 一部分学习资料的提供
⚠感谢ZYLXGG
⚠感谢大佬们在实验课程中的扶贫工作

害,不赞同你们单纯的抄袭行为嗷,希望能帮你们解决一些实际问题,但不希望你们的实验报告完全照搬嗷,还是要看懂原理,不然考试咋搞啊,这也是我头秃的问题,唉😔(补一句,大数据不学这个😭...//恶龙咆哮!)

关于这些代码,其实可以把网址存在txt文本里,然后就可找到这个专题啦,接着搬搬代码就可以啦(啊,我什么都没说,要自己肝代码!💪),也不用每次都提前搞代码,或者手机看网页,手动抄代码,电脑大屏 + ctrl c/v 香香甜甜😏!

废物的形状.jpg

一、实验题目:

1.8255输入、输出实验。(参考书上214页基本输入输出应用举例)
2.利用8255设计跑马灯(软延时)。
3.带有控制键的跑马灯。(参考实验一中的跑马灯 [实验1-2] )

二、实验目的:

熟悉汇编语言编程环境,掌握8255芯片工作原理、电路设计及利用汇编语言编写接口软件。

三、实验电路图

I/O译码地址选择接口:

8255芯片:Y1作为片选地址
Y1:288H-28FH
288H -> A口
289H -> B口
28AH -> C口
28BH -> 控制口
实验中我们选择:B口作为输入,C口作为输出

按照电路图红色的地方接线就可,其余线不用接,注意接线的对应关系,尤其是8根线的那2个✊

实验1电路图.png
实验1实物图.jpg

四、软件设计程序流程图

实验1-1:8255输入、输出实验

实验1-1程序流程图.jpg

实验1-2:利用8255设计跑马灯(软延时)

实验1-2程序流程图.jpg

实验1-3:带有控制键的跑马灯

实验1-3程序流程图.jpg

五、实验软件代码(加注释)

实验1-1:8255输入、输出实验(参考书上214页基本输入输出应用举例)

CODE     SEGMENT;段定义语句
ASSUME   CS:CODE;段寄存器分配
         MOV DX, 28BH;
         MOV AL, 10000010B;根据书上207页图6.10
         OUT DX, AL;写端口用OUT指令,将控制字写入控制口
IN_PORTA:MOV DX, 289H
         IN  AL, DX;读端口用IN指令,读B口(289H,也即逻辑电平开关)入AL
         MOV DX, 28AH
         OUT DX, AL;写端口用OUT指令,将AL中的信息写入C口(DX)
         JMP IN_PORTA;无条件转移语句,转移回IN_PORTA循环
CODE     ENDS;代码段定义语句
         END START

实验1-2:利用8255设计跑马灯(软延时)

CODE SEGMENT
ASSUME CS:CODE;段寄存器分配
START:  MOV DX, 28BH;控制字寄存器
        MOV AL, 10000010B;控制字寄存器端口,根据书上207页图6.10
        OUT DX, AL;写端口用OUT指令,将控制字写入控制口
        MOV DX, 28AH;C口输出
        MOV AL, 00000001B;跑马灯从L0开始亮(AL设置每次循环灯从何处亮)
LEFT:   OUT DX, AL;写端口用OUT指令,将AL中的信息写入C口(DX)
        ROL AL, 1;循环左移一位
        MOV BX, 20H;给BX赋初值20H 
DELAY:  MOV CX, 65535;双层循环,用来延时,否则跑马灯跑太快,无法观察(滑稽脸)
LOOP1:  DEC CX;CX=CX-1,CX自减1
        CMP CX,0;CX-0是否为0?
        JNZ LOOP1;否,继续循环LOOP1
        DEC BX;BX=BX-1,BX自减1
        JNZ DELAY;否(若 BX ≠ 0),继续循环DELAY
        JMP LEFT;无条件转移语句,循环检测该程序
CODE ENDS
        END START

实验1-3:带有控制键的跑马灯(参考本实验中的 8255输入、输出 [实验1-1] 和 本实验中的 跑马灯 [实验1-2] )

CODE SEGMENT;段定义语句
ASSUME CS:CODE;段寄存器分配
START:  MOV DX,28BH
        MOV AL,10000010B;写入控制字,A口输出,工作方式为方式0,C口输出,B口输入,工作方式为方式0
        OUT DX,AL;将控制字送入控制口
        MOV AH,00000001B;跑马灯从L0开始亮(AH设置每次循环灯从何处亮)
NEXT:   MOV DX,289H;从B口输入
        IN AL,DX;读端口用IN指令,读B口(289H,也即逻辑电平开关)入AL
        CMP AL,00000010B;测试开关K1状态,AL中的值  减去  02H(00000010B)
        JNZ NEXT;否(若K1不为高电平),跳到NEXT,实现对跑马灯暂停的控制
        MOV AL,AH;AH(跑马灯从L0开始亮)将信息给AL
        MOV DX,28AH;指向C口
        OUT DX,AL;从C口输出AL中的值(跑马灯此时的值)
        ROL AL,1;AL中的值左移一位
        MOV AH,AL;将当前AL的值保存于AH中
        MOV BX,500H;将500H存入BX中,双层循环延时
DELAY1: MOV CX,12345;将12345存入CX
DELAY2: LOOP DELAY2;循环DELAY2,每循环一次,CX自减1,直至CX = 0
        DEC BX;BX=BX-1,BX自减1
        JNZ DELAY1;若BX ≠ 0,则跳至DELAY1
        JMP NEXT;无条件转移语句,跳至NEXT
CODE ENDS
        END START

六、实验结果

  1. 实验1-1结果:利用8255芯片完成了输入、输出实验。
  2. 实验1-2结果:利用8255芯片完成了软延时的跑马灯运行。
  3. 实验1-3结果:利用8255芯片完成了带有控制键的跑马灯。

七、实验小结

实验从最初的一头雾水到最后的豁然开朗(感觉并没有),这次的实验课将理论和实践结合在了一起,嗯,这是一次不错的体验(真的吗???😭)!

相关文章

  • 实验一 汇编语言与并行接口实验

    ⚠本篇文章参考网址1:https://wenku.baidu.com/view/e04ce53c423239680...

  • Mac下如何查看CPU和内存

    为了学习汇编语言,特意看了王爽的《汇编语言》。到了第二章的实验题,因为Mac缘故,无法做实验了。怎么办? 1:下载...

  • 【汇编语言实验一】搭建开发环境

    汇编语言系列文章仅作为实验报告和汇编学习参考,不作为任何技术文章,还望大佬们勿喷。 1. 实验名称 搭建汇编语言的...

  • ARM汇编语言与C语言混合编程(part1)

    汇编语言调用C语言 题目:用汇编语言调用C语言实现21!(21的阶乘) 实验软件:ARM Developer Su...

  • [汇编语言] 实验12

    一、编写0号中断的处理程序,使得在除法溢出发生时,在屏幕中间显示 字符串"divide error!",然后返回到...

  • [汇编语言] 实验11

    一、编写一个子程序,将包含任意字符,以0结尾的字符串的小写字母转变成大写字母,描述如下: 名称:letters功能...

  • 《汇编语言》实验9

    P187~189编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串"welcome to masm!"。

  • 《汇编语言》实验8

    P187分析下面的程序,在运行前思考:这个程序可以正确返回吗?运行后再思考:为什么是这个结果? 分析: 这段代码执...

  • 《汇编语言》实验7

    P172~174

  • 单片机跑马灯实验

    一、实验目的 1、 熟悉HNIST-2型单片机系统相关硬件电路,程序下载方法; 2、 掌握采用汇编语言与C语言开发...

网友评论

      本文标题:实验一 汇编语言与并行接口实验

      本文链接:https://www.haomeiwen.com/subject/myspzhtx.html