




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理及应用实验报告学院:机械工程学院班级:机自1104学号:41140194姓名:李文虎组员:王靖宇实验一: 8253定时器计数器(2013年12月19日机电楼305)1. 实验目的:掌握8253方式0的工作原理及编程方法。2. 实验内容: 按图7虚线连接电路,将计数器0设置为方式0,计数器初值为n(n=0fh),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察out0电平变化(当输入n+1个脉冲后out0变高电平)。3. 参考流程图4. 程序编码:ioportequ 0c800h-0280h io8253a equ ioport+283hio8253bequ ioport+280hcode segment assume cs:codestart: mov al,14h ; 通道0为工作方式2 mov dx,io8253a out dx,al mov dx,io8253b ;送计数初值为0fh mov al,0fh out dx,allll: in al,dx ;读计数值 call disp ;调显示子程序 push dx mov ah,06h mov dl,0ffh int 21h pop dx jz lll mov ah,4ch ;退出 int 21h disp proc near ;显示子程序 push dx and al,0fh ;首先取低四位 mov dl,al cmp dl,9 ;判断是否=9 jle num ;若是则为0-9,ascii码加30h add dl,7 ;否则为a-f,ascii码加37hnum: add dl,30h mov ah,02h ;显示 int 21h mov dl,0dh ;加回车符 int 21h mov dl,0ah ;加换行符 int 21h pop dx ret ;子程序返回disp endpcode ends end start5. 实验现象:拨动触发器开关一次产生一个脉冲,拨动14次后绿灯亮,再拨一次红灯又亮。重新拨动14次,绿灯再亮6. 实验心得:初次使用doc系统,对微机原理的编程理解更加深入。实验二: 8253定时器计数器(2013年12月19日机电楼305)1. 实验目的:掌握8253方式0的工作原理及编程方法。2. 实验内容:按图8连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察out1输出电平的变化(频率1hz)。3. 编程流程图:4. 程序编码:ioport equ 0c800h-0280h io8253a equ ioport+283hio8253bequ ioport+280hio8253c equ ioport+282hcode segment assume cs:codestart: mov al,27h ; mov dx,io8253a out dx,al mov dx,io8253b mov al,10h out dx,al mov al,01100111b mov dx,io8253aout dx,almov dx,io8253cmov al,10h out dx,al mov ah,4ch int 21hcode ends end start5. 实验现象:8253通道0和通道1均工作在方式3,计数初值均为1000。通道0的时钟输入为1mhz标准脉冲,产生1000hz的方波;通道1以通道0输出的1000hz方波脉冲为输入,产生1hz的方波。逻辑笔(接out1)的红灯和绿灯1秒内交替亮6. 实验心得:掌握了解8253芯片的工作及编程。实验三:2.8255可编程并行接口(2013年12月27日机电楼305)1. 实验目的:掌握8255方式0的工作原理及使用方法。2. 实验内容:1)实验电路如图6,8255c口接逻辑电平开关k0k7,a口接led显示电路l0l7。2)编程从8255c口输入数据,再从a口输出。3. 编程流程图:4. 程序编码:ioport equ 0c800h-0280hio8255aequ ioport+288hio8255bequ ioport+28bhio8255cequ ioport+28ahcode segment assumecs:codestart: movdx,io8255b moval,8bhoutdx,alinout: movdx,io8255c inal,dx movdx,io8255a outdx,almovdl,0ffh movah,06hint21h jzinoutmovah,4ch int21hcodeendsendstart5. 实验现象:八个开关的状态,一一对应控制8个led灯6. 实验心得:对8255a工作在方式0的工作状态有了深刻的认识和了解。实验四:七段数码管实验(2013年12月27日机电楼305)1. 实验目的:掌握数码管显示数字的原理2. 实验内容: 静态显示:按图10(a)连接好电路,将8255的a口pa0pa6分别与七段数码管的段码驱动输入端ag相连,位码驱动输入端s1接+5v(选中),s0、dp接地(关闭)。编程从键盘输入一位十进制数字(09),在七段数码管上显示出来。3. 编程流程图:4. 程序编码:data segment ioport equ 200h io8255a equ 200h io8255cc equ 203h led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh mesg1 db 0dh,0ah,input a num (0-9h):,0dh,0ah,$ data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov dx,io8255cc;使8255的a口为输出方式 mov al,80h out dx,al sss: mov dx,offset mesg1 ;显示提示信息 mov ah,09h int 21hmov ah,01;从键盘接收字符 int 21h cmp al,0 ;是否小于0 jl exit ;若是则退出 cmp al,9 ;是否大于9 jg exit ;若是则退出 sub al,30h ;将所得字符的ascii码减30h mov bx,offset led ;bx为数码表的起始地址 xlat ;求出相应的段码 mov dx,io8255a;从8255的a口输出 out dx,al jmp sss ;转sss exit: mov ah,4ch ;返回dos int 21h code ends end start 5. 实验现象:键盘输入数字,七段数码管显示相应的数字。6. 实验心得:七段数码管有共阴极、共阳极之分,实验所用属于共阴极数码管,在数码段程序需弄清。实验五:竞赛抢答器实验(2013年12月27日机电楼305)1. 实验目的:1) 了解微机化竞赛抢答器的基本原理。2) 进一步学习使用并行接口。2. 实验内容:图12为竞赛抢答器(模拟)的原理图,逻辑开关k0k7代表竞赛抢答按钮07号,当某逻辑电平开关置“1”时,相当某组抢答按钮按下。在七段数码管上将其组号(07)显示出,并使微机扬声器响一下。3. 编程流程图:4. 程序编码:data segment ioportequ 0d400h-0280h io8255aequ ioport+28ah io8255bequ ioport+28bh io8255cequ ioport+288h led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h ;数码表(0-7)data endscode segment assume cs:code,ds:datastart:mov ax,data mov ds,ax mov dx,io8255b ;设8255为a口输出,c口输入 mov ax,89h out dx,al mov bx,offset led ;使bx指向段码首址sss:mov dx,io8255a in al,dx ;从8255的c口输入数据 or al,al ;比较是否为0 je sss ;若为0,则表明无键按下,转sss mov cl,0ffh ;cl作计数器,初值为-1rr:shr al,1 ;shr指令影响cf inc cl ;inc指令不影响cf,用于记录al右移到cf=1的次数 jnc rr mov al,cl xlat mov dx,io8255c out dx,al mov dl,7 ;响铃 ascii码为07 mov ah,2 int 21hwai:mov ah,1 int 21h cmp al,20h ;是否为空格 jne eee ;不是,转eee mov al,0 ;是,关灭灯 mov dx,io8255c out dx,al jmp ssseee:mov ah,4ch ;返回 int 21hcode ends end start5. 实验现象:每次数码显示器只显示第一个按下的按钮,后来按下的按钮没有输入。6. 实验心得:竞赛抢答器程序采用移位的方法控制编程。实验六:步进电机控制实验(2013年12月27日机电楼305)1. 实验目的:1) 了解步进电机控制的基本原理。2) 掌握控制步进电机转动的编程方法。2. 实验内容:1) 按图14连接线路,利用8255输出脉冲序列,开关k0k6控制步进电机转速,k7控制步进电机转向。8255 cs接288h28fh。pa0pa3接babd;pc0pc7接k0k7。2) 编程:当k0k6中某一开关为“1”(向上拨)时步进电机启动。k7向上拨电机正转,向下拨电机反转。3. 程序流程图:4. 程序编码:data segment ioport equ 0c800h-0280h p55a equ ioport+288h ;8255 a port output p55c equ ioport+28ah ;8255 c port input p55ctl equ ioport+28bh ;8255 contrl port buf db 0 ;定义一个字节数据(用来存放开关状态)mes db k0-k6 are speed control,0ah,0dh db k6 is the lowest speed ,0ah,0dh db k0 is the highest speed,0ah,0dh db k7 is the direction control,0ah,0dh,$ ;在屏幕上输出一段符号,显示程序处于执行状态data endscode segmentassume cs:code,ds:datastart: mov ax,data mov ds,ax ;程序的初始化 mov dx,offset mes mov ah,09 int 21h dos功能,;调用显示字符串 mov dx,p55ctl mov al,8bh ;控制字01001011 c input, a output out dx,al ;8255 a 初始化 mov buf,33h ;buf初始化为00110011bout1: mov al,buf ;将buf值置入al寄存器并经a口输出 mov dx,p55a out dx,al push dx mov ah,06h mov dl,0ffh int 21h ;判断是否有键按下 pop dx je in1 ;无键按下,执行扫描开关 mov ah,4ch int 21h ;有键按下,返回odsin1: mov dx,p55c in al,dx ;读取开关状态test al,00h jnz k0 test al,01h jnz k1 test al,02h jnz k2 test al,03h jnz k3 test al,04h jnz k4 test al,05h jnz k5 test al,06h jnz k6 zx0: call delay ;调用延时子程序 mov al,buf ror al,1 ;右移,正转 mov buf,al jmp out1 nx0: call delay ;调用延时子程序 mov al,buf rol al,1 ;左移,反转 mov buf,al jmp out1 delay proc near ;定义循环函数delaydelay1: mov cx,0ffffh delay2: loop delay2 dec bl jnz delay1 ret delay endp code ends end start 5. 实验现象:k7控制电机的正反转,k0k6分别控制电机的一个转速。6. 实验心得及总结:(用38线制控制电机的转速,k7控制正反转。)程序编程:data segment ioport equ 0c800h-0280h p55a equ ioport+288h ;8255 a port output p55c equ ioport+28ah ;8255 c port input p55ctl equ ioport+28bh ;8255 contrl port buf db 0 ;定义一个字节数据(用来存放开关状态)mes db k0-k6 are speed control,0ah,0dh db k6 is the lowest speed ,0ah,0dh db k0 is the highest speed,0ah,0dh db k7 is the direction control,0ah,0dh,$ ;在屏幕上输出一段符号,显示程序处于执行状态data endscode segmentassume cs:code,ds:datastart: mov ax,data mov ds,ax ;程序的初始化 mov dx,offset mes mov ah,09 int 21h dos功能,;调用显示字符串 mov dx,p55ctl mov al,8bh ;控制字01001011 c input, a output out dx,al ;8255 a 初始化 mov buf,33h ;buf初始化为00110011bout1: mov al,buf ;将buf值置入al寄存器并经a口输出 mov dx,p55a out dx,al push dx mov ah,06h mov dl,0ffh int 21h ;判断是否有键按下 pop dx je in1 ;无键按下,执行扫描开关 mov ah,4ch int 21h ;有键按下,返回odsin1: mov dx,p55c in al,dx ;读取开关状态test al,01h jnz k0 test al,02h jnz k1 test al,04h jnz k2 test al,08h jnz k3 test al,10h jnz k4 test al,20h jnz k5 test al,40h jnz k6 zx0: call delay ;调用延时子程序 mov al,buf ror al,1 ;右移,正转 mov buf,al jmp out1 nx0: call delay ;调用延时子程序 mov al,buf rol al,1 ;左移,反转 mov buf,al jmp out1 delay proc near ;定义循环函数delaydelay1: mov cx,0ffffh delay2: loop delay2 dec bl jnz delay1 ret delay endp code ends end start 该程序段实现了用三个开关控制电机的八个转速,通过开关的不同组合,实现不同的高低电平的组合,从而控制电机的不同转速。实验七:用825
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年河北衡水冀州区公开招聘留置保障队伍辅警人员12名模拟试卷及答案详解(有一套)
- 2025湖南娄底市教育局直属事业单位公开选调教师(教研员)30人模拟试卷及答案详解参考
- 2025湖南长沙高新区中心幼儿园和馨园招聘教师2人模拟试卷及1套完整答案详解
- 2025年河北唐山玉田县育英学校招聘语文教师1人模拟试卷附答案详解(完整版)
- 2025江西省中医医学中心高层次人才招聘130人模拟试卷及答案详解(各地真题)
- 2025广西防城港市中小学教师招聘501人考前自测高频考点模拟试题(含答案详解)
- 2025年4月福建泉州市华侨大学招标与采购管理中心招聘工程技术系列人员1人模拟试卷完整参考答案详解
- 2025河北农业大学选聘50人模拟试卷及完整答案详解
- 2025广西玉林市福绵区石和镇人民政府招聘代理服务记账中心编外人员2人模拟试卷及答案详解(必刷)
- 2025广东“百万英才汇南粤”佛山市高明区选聘公办初中校长9人模拟试卷及答案详解一套
- 智能温室种植技术推广方案
- 牛蹄解剖生理讲解
- PET-CT课件教学课件
- 不签劳动合同待岗协议书
- 工会经审业务网络知识竞赛题库
- 宁夏易制毒管理办法
- 日照维修资金管理办法
- 线上教学蚂蚁家族课件
- 无损检测技术课件
- 脑瘫个案护理
- 《3-6岁儿童学习与发展指南》健康领域解读
评论
0/150
提交评论