




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微型计算机原理与接口技术实验报告学院:计算机科学与技术学院行政班级:2013级信息安全1班学号:姓名: 实验一一、 实验内容及要求1.将代码输入到HQFC中,将笑脸显示到屏幕上2.自己编写代码显示全部的控制符以及积分符、希腊字母等3.编写代码:根据键入的数字求得平方值,并在屏幕上输出二、关键代码及调试情况和完成过程1、输出笑脸的程序PROG SEGMENT ASSUME CS:PROG1START: MOV DL,1 ;将笑脸的ASCII码送入DLMOV AH,2 ;将功能号02送入AHINT 21H ;显示笑脸MOV AX,4C00HINT 21H ;返回dosPROG1 ENDSEND START2、输出全部的控制符以及积分符、希腊字母等的程序CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV BL,00H ;设置初始值为0 MOV CX,256 ;设置循环次数为256PP: MOV DL,BL ;送入DL等待输出 MOV AH,2 ;调用功能号02 INT BX ;自增1,以待输出下一个码的字符 LOOP BX ;循环 MOV AX,4C00H INT 21HCODE ENDSEND START3、查表求平方值并输出的程序DATAS SEGMENTBUFFF DB 0AH,$TABLE DB 0,1,4,9,16,25,36,49,64,81BUF DB PLEASE INPUT A NUMBER(09):,0DH,0AH,$BUFF DB 0AH,ERROR,0AH,$DATAS ENDCODES SEGMENT ASSUME CS:CODES,DS:DATASSTART: MOV AX,DATAS ;设置数据段 MOV DS,AXRE: MOV DX,OFFSET BUF ;取提示信息的偏移地址 MOV AH,09H ;调用功能号为9的功能 INT 21H MOV AH,01H ;DOS的1号功能调用,等待键入字符 INT 21H ;AL键入数字的ASCII码 CMP AL,2FH ;判断是否在范围内 JG RE2 ;若在范围内便跳转ER: MOV DX,OFFSET BUFF ;调用功能号9提示错误信息 MOV AH,09H INT 21H JMP RERE2: CMP AL,39H ;判断是否在范围内 JG ER ;大于9则跳转提示错误信息并要求重新输入 AND AL,0FH ;AL高4位清0 MOV BX,OFFSET TABLE ;查表转换 MOV AH,0 MOV BX,AX MOV AL,BX MOV BL,0AH ;将除数10放入BL DIV BL ;AX的数做被除数除以BL里面的数 MOV DL,AL ;将商送入DL(十位数) OR DL,30H ;变为ASCII码 MOV BH,AH ;暂存AH里面的数 MOV AH,02H ;调用功能号 输出 INT 21H MOV DL,BH ;输出个位数 OR DL,30H ;变为ASCII码 MOV AH,02H INT 21H MOV AH,4CH INT 21HCODES ENDSEND START 调试过程中并没有出现大问题,只是在第三个程序中判断输入的数是否符合范围的时候出现了问题,解决之后运行完美。三、问题及修改过程 在第3个程序中,判断输入的数是否在09的范围内时出现了问题,即下限(在这里用ASCII码表示)应为2FH而不是30H,如果不修改,则无法输出0的平方值,修改之后程序可以将0的平方值输出。四、心得体会本次实验主要体会汇编语言的执行过程和编程方法,不需要与硬件相连接,减少了实验难度,通过本次实验的编程的过程,我比较细致地体会了编程的方法和技巧,对汇编语言有了初步的理解。实验二一、实验内容及要求 1.利用8255实现拨动开关体现在LED灯上。 2.利用8255编写程序,实现跑马灯 3.修改程序为跑马灯加上控制键二、关键代码及调试情况和完成过程 以上为课本的理论实验图,以下为实际的实验电路图。1、实现开关控制LED灯的程序CODE SEGMENTASSUME CS:CODESTART:MOV DX,283H ;控制字寄存器MOV AL,1001000B ;写入控制字,A口和B工作于方式0,A口输入,B口输出OUT DX,AL TEST_IT:MOV DX,280H ;指向A口 IN AL,DX ;读入A口数据状态 MOV DX,281H ;指向B口 OUT DX,AL ;将从A口读入的值从B口输出MOV CX,65535 ;软延时DELAY:LOOP DELAYJMP TEST_IT ;循环检测该程序CODE ENDSEND START2、对8255编程实现跑马灯CODE SEGMENT ASSUME CS:CODESTART:MOV DX,283H ;指向控制字寄存器 MOV AX,90H ;输出控制字 OUT DX,AL MOV DX,281H ;指向B口并向B口输出状态 MOV AL,1H XUN:OUT DX,ALROL AL,1 ;进行循环左移以实现跑马灯MOV BX,20H ;软延时 DELAY1: ;双层嵌套循环 MOV CX,65535 LOOP1:LOOP LOOP1 DEC BX JNZ DELAY1 JMP XUN ;循环此程序CODE ENDSEND START 3、对跑马灯加入控制键以实现开关控制跑马灯CODE SEGMENTASSUME CS:CODESTART:MOV AL,90H ;写入控制字MOV DX,283HOUT DX,ALMOV AL,01H ;对AL赋初值MOV AH,AL ;将AL中的值咱存在AH中T111:MOV DX,280H ;读入A口状态IN AL,DXCMP AL,01H ;AL和1相比较JNZ T111 ;如果开关打开(即PA0为高电平则继续进行,否则继续循环检测)MOV AL,AH ;将咱存在AH中的值读入到AL中MOV DX,281H ;对B口输出状态OUT DX,ALROL AL,1 ;AL中的值循环左移MOV BX,20H ;软延时 DELAY1: ;双层嵌套循环 MOV CX,65535 LOOP1:LOOP LOOP1 DEC BX JNZ DELAY1MOV AH,AL ;将AL中的值暂存在AHJMP T111 ;循环此程序CODE ENDSEND START在调试中除有根线无法通讯以外未出现其他问题,换线之后无问题.完成过程:将8255的片选信号连入地址口之后,将八路开关与A口相连,八个LED灯与B口相连,输入程序之后运行即可。三、问题及修改过程在编写第三个程序的时候,出现问题,原因是在检测开关状态时,AL中的值被改变,如果在这之前不将AL中的值暂存在其他寄存器中则无法继续跑马灯的运行。修改方法,将AL中的值暂存在AH中,检测开关后再将AH中的值输入到AL中。修改之后程序没有问题,运行情况良好。四、心得体会本次实验是初次对芯片进行编程,通过对8255的编程,本人初步掌握了对8255的编程方法,即先写控制字然后进行操作,通过对代码的调试实现了软件和硬件搭配运行完美的结果,收获颇多。实验三一、 实验内容及要求1.对8253编程,采用级联的方式实现LED灯1秒亮1秒灭。2.对8253编程,验证方式03.8253与8255相结合,实现跑马灯,其中延时由8253提供。二、关键代码及调试情况和完成过程1.对8253编程实现LED灯一秒亮一秒灭CODE SEGMENTASSUME CS:CODESTART:MOV AL,00110101B ;写控制字,选定通道0,先读/写计数器低字节,后读/写计数器高字MOV DX,283H ;节,选定方式2,采用BCD计数方式OUT DX,ALMOV AL,00HMOV DX,280HOUT DX,ALMOV AL,50H ;输出计数初值,5000,则OUT0的输出频率为2MHZ5000=400HZOUT DX,ALMOV AL,01110111B ;写控制字,选定通道1, 先读/写计数器低字节,后读/写计数器高字MOV DX,283H ;节,选定方式3,采用BCD计数方式MOV AL,00HMOV DX,281HOUT DX,ALMOV AL,04H ;输出计数初值,400,则OUT1的输出频率为400HZ400=1HZ,即为1秒OUT DX,AL ; 的周期CODE ENDSEND START2.验证方式0由于此电路图较简单直接将OUT0接到LED灯上即可,不再画电路图.CODE SEGMENTASSUME CS:CODESTART:MOV AL,00110001BMOV DX,283HOUT DX,ALMOV DX,280HMOV AL,00HOUT DX,ALMOV AL,90HOUT DX,ALCODE ENDSEND START3.8253作为延时给8255的跑马灯提供延时CODE SEGMENTASSUME CS:CODESTART: MOV AL,90H ;对8255初始化,A口输入,B口输出 MOV DX,293H OUT DX,AL MOV AL,01H MOV BL,AL MOV AL,00110101B ;对8253初始化,方式2级联输出到PA0 MOV DX,283H ;两个计数值初值均为1010H OUT DX,AL MOV DX,280H MOV AL,10H OUT DX,AL OUT DX,AL MOV DX,283H MOV DX,01110101B OUT DX,AL MOV DX,281H MOV AL,10H OUT DX,AL OUT DX,ALT111: ;跑马灯程序开始MOV DX,290H ;读入8253的OUT1状态IN AL,DX TEST AL,00000001B ;看是否为高电平,如果是高电平则继续循环,不是高电JNZ T111 ;平则继续运行TES:MOV DX,290H ;读入开关状态IN AL,DXTEST AL,00000010B ;开关关闭则继续运行,打开则继续循环停止运行JNZ TESMOV AL,BL ;将暂存在BL中的数输出到AL中MOV DX,291H ;将AL中的数输出到B口OUT DX,ALROL AL,1 ;左移一位MOV BL,AL ;将AL中的值暂存在BL中 JMP T111 ;循环本程序CODE ENDSEND START调试过程中,8255无法运行,更换实验箱后方能运行。三、问题及修改过程在本实验中,主要问题为无法用8253实现延时,出现该问题的原因主要是对方式2和方式3的理解不够透彻,以及在实验中对方式2的现象不够清晰以至于实验一直处于停滞不前的状态,后经改正编程,可以正常运行。错误1:采用方式2和方式3级联,以方式3输出较难实现延时错误2:对开关和8253的OUT1同时检测易出现错误。修改过程:将方式2和方式3 级联改为两个方式2级联并修改为合适的延时参数,除此之外,对开关和OUT1的检测采用分开检测的方式,以避免出现混乱的情况。四、心得体会本实验相比前两次实验较复杂一些需要透彻理解8253的几种工作方式以及级联的参数设置才能顺利运行,虽然过程有些艰辛,但经过探索结果是正确的,更充分理解了级联的作用以及方式2和方式3的区别与联系。实验四一、 实验内容及要求1.使用0809实现模数的转换(与8255结合),并将转换结果体现在LED灯上。2.使用0832输出三角波,上限5V,下限0V,并且体现在直流电机上。二、关键代码及调试情况和完成过程1. 使用0809实现模数的转换(与8255结合),并将转换结果体现在LED灯上。CODE SEGMENTASSUME CS:CODESTART:MOV DX,290H ;8255初始化,方式选择控制字,A口工作于方式0输入,B口工作于方式0输出MOV AL,10011001BOUT DX,ALAA: MOV DX,280H ;虚写,启动转换NEXT:OUT DX,AL NO:MOV DX,290H ;读入A口的EOC状态IN AL,DXTEST AL,01H ;不是高电平则继续检测JZ NOMOV DX,280H ;读入转换后的数据IN AL,DXMOV DX,291H ;将转换后的数据从B口输出OUT DX,ALJMP AA ;循环本程序CODE ENDSEND START2.使用0832输出三角波,上限5V,下限0V,并且体现在直流电机上。CODE SEGMENTASSUME CS:CODESTART:MOV AL,00HUP: MOV DX,280H ;向端口输出值 OUT DX,AL MOV BX,0010H ;软延时 INC AL ;AL加1LOOP2: MOV CX,65535LOOP1:LOOP LOOP1 DEC BX CMP BX,0001H JNZ LOOP2 CMP AL,255 ;判断是否到达上限值 JNZ UP ;没有到达则循环 DEC AL ;到达则减数DOWN: MOV DX,280H ;向端口输出值 OUT DX,AL DEC AL ;AL减1 MOV BX,0010HLOOP3: MOV CX,65535 ;软延时LOOP4: LOOP LOOP4 DEC BX CMP BX,0001H JNZ LOOP3 CMP AL,00H ;判断是否低于下限 JNZ DO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年华中师大一附丘成桐少年班自主招生数学试卷(含答案详解)
- 2025年事业单位工勤技能-湖北-湖北造林管护工三级(高级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北管道工四级(中级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北园林绿化工三级(高级工)历年参考题库典型考点含答案解析
- 2025年房地产市场区域分化与投资策略的人工智能研究报告
- 化工园区安全环保提升项目2025年社会稳定风险评估与风险评估产业融合报告
- 2025-2030中国窄带钢企业竞争策略与投融资风险预测报告
- 2025年事业单位工勤技能-江西-江西经济岗位工一级(高级技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-江西-江西堤灌维护工四级(中级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-江苏-江苏城管监察员二级(技师)历年参考题库含答案解析
- 大干围码头地块概况
- 企业项目投资与融资模式
- GMP体系文件(手册+程序)
- 执业医师-呼吸系统
- GB 30734-2014消防员照明灯具
- GA/T 1132-2014车辆出入口电动栏杆机技术要求
- GA 1800.5-2021电力系统治安反恐防范要求第5部分:太阳能发电企业
- 池塘内清淤泥施工方案
- 部编(统编)版-小学语文六年级教科书培训-讲座课件
- 1药历20份教学1mck广州市妇女儿童医疗中心
- 医院学术委员会及工作职责制度的通知
评论
0/150
提交评论