《微机原理实验箱.ppt》由会员分享,可在线阅读,更多相关《微机原理实验箱.ppt(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验一实验一 I/OI/O地址译码地址译码一、实验目的一、实验目的 掌握掌握I/OI/O地址译码电路的工作原理。地址译码电路的工作原理。二、实验原理和内容二、实验原理和内容 实验电路如图实验电路如图1-11-1所示,其中所示,其中7474LS74LS74为为D D触发器,可直接触发器,可直接使用实验台上数字电路实验区的使用实验台上数字电路实验区的D D触发器触发器,74,74LS138LS138为地址译码为地址译码器。译码输出端器。译码输出端Y0Y0Y7Y7在实验台上在实验台上“I/OI/O地址地址“输出端引出,输出端引出,每个输出端包含每个输出端包含8 8个地址,个地址,Y0Y0:280H2
2、80H287H287H,Y1Y1:288H288H28FH28FH, 当当CPUCPU执行执行I/OI/O指令且地址在指令且地址在280280H H2BFH2BFH范围内,范围内,译码器选中,必有一根译码线输出负脉冲。译码器选中,必有一根译码线输出负脉冲。 例如:执行下面两条指令例如:执行下面两条指令 MOV DXMOV DX,2A0H2A0H OUT DX OUT DX,ALAL(或或IN ALIN AL,DXDX)Y4Y4输出一个负脉冲,执行下面输出一个负脉冲,执行下面两条指令两条指令 MOV DXMOV DX,2A8H2A8H OUT DX OUT DX,ALAL (或或IN ALIN
3、AL,DXDX) Y5 Y5输出一个负脉冲。输出一个负脉冲。利用这个负脉冲控制利用这个负脉冲控制L7L7闪烁发闪烁发光(亮、灭、亮、灭、光(亮、灭、亮、灭、),),时间间隔通过软件延时实现。时间间隔通过软件延时实现。三、编程提示三、编程提示1 1、实验电路中、实验电路中D D触发器触发器CLKCLK端输端输入脉冲时,上升沿使入脉冲时,上升沿使Q Q端输出高端输出高电平电平L7L7发光,发光,CDCD端加低电平端加低电平L7L7灭。灭。 图图1-11-1outport1 outport1 equequ 2a0h2a0houtport2 outport2 equequ 2a8h2a8hcode c
4、ode segmentsegment assumeassume cscs:code:codestart:start: movmov dxdx,outport1,outport1 outout dxdx, ,alal callcall delay delay; ;调延时子程序调延时子程序 movmov dxdx,outport2,outport2 outout dxdx, ,alal callcall delay delay; ;调延时子程序调延时子程序 movmov ahah, ,1 1 intint 16h16h jeje start start movmov ahah, ,4ch4ch i
5、ntint 21h21hdelay delay procproc nearnear; ;延时子程序延时子程序 movmov bxbx, ,200200llllll: : movmov cxcx, ,0 0llll: : looploop llll decdec bxbx jnejne lll lll retretdelay delay endpendpcode code endsendsendend start start实验二实验二 简单并行接口简单并行接口一、实验目的一、实验目的 掌握简单并行接口的工作原理及使用方法。掌握简单并行接口的工作原理及使用方法。二、实验内容二、实验内容1 1、按
6、下面图、按下面图2-12-1简单并行输出接口电路图连接线路简单并行输出接口电路图连接线路(74(74LS273LS273插插通用插座,通用插座,7474LS32LS32用实验台上的用实验台上的“或门或门”)”)。7474LS273LS273为八为八D D触触发器,发器,8 8个个D D输入端分别接数据总线输入端分别接数据总线D0D0D7D7,8 8个个Q Q输出端接输出端接LEDLED显示电路显示电路L0L0L7L7。2 2、编程从键盘输入一个字符或数字,将其编程从键盘输入一个字符或数字,将其ASCASC码通过这个输码通过这个输出接口输出,根据出接口输出,根据8 8个发光二极管发光情况验证正确
7、性。个发光二极管发光情况验证正确性。三、编程提示三、编程提示1 1、上述并行输出接口的地址为、上述并行输出接口的地址为2 2A8HA8H,并行输入接口的并行输入接口的地址为地址为2 2A0HA0H,通过上述并行接口电路输出数据需要通过上述并行接口电路输出数据需要3 3条条指令:指令: MOV AL,MOV AL,数据数据 MOV DX,2A8H MOV DX,2A8H OUT DX,AL OUT DX,AL 通过上述并行接口输入数据需要通过上述并行接口输入数据需要2 2条指令:条指令: MOV DX,2ADHMOV DX,2ADH IN AL,DX IN AL,DXls273 ls273 eq
8、uequ 2a8h2a8hcode code segmentsegment assumeassume cscs:code:codestart:start: movmov ahah, ,2 2 ; ;回车符回车符 movmov dldl, ,0dh0dh intint 21h21h movmov ahah, ,1 1 ; ;等待键盘输入等待键盘输入 intint 21h21h cmpcmp alal, ,2727 ; ;判断是否为判断是否为ESCESC键键 jeje exit exit ; ;若是则退出若是则退出 movmov dxdx,ls273 ,ls273 ; ;若不是若不是, ,从从2
9、2A8HA8H输出其输出其ASCIIASCII码码 outout dxdx, ,alal jmpjmp start start ; ;转转startstartexit: exit: movmov ahah, ,4ch4ch ; ;返回返回 intint 21h21hcode code endsendsendend start start实验五实验五 七段数码管七段数码管一、实验目的一、实验目的 掌握数码管显示数字的原理掌握数码管显示数字的原理二、实验内容二、实验内容、静态显示、静态显示: :按图按图5-15-1连接好电路,将连接好电路,将82558255的的A A口口PA0PA0PA6PA6分
10、分别与七段数码管的段码驱动输入端别与七段数码管的段码驱动输入端a a相连,位码驱动输入相连,位码驱动输入端端S1S1接接+5+5V(V(选中选中) ),S0S0、dpdp接地接地( (关闭关闭) )。编程从键盘输入一位。编程从键盘输入一位十进制数字十进制数字(0(09)9),在七段数码管上显示出来。,在七段数码管上显示出来。 三、编程提示三、编程提示1 1、实验台上的七段数码管为共阴型,段码采用同相驱动,输、实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平入端加高电平, ,选中的数码管亮,位码加反相驱动器,位码输选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。入端高电平选
11、中。data data segmentsegmentio8255a io8255a equequ 288h288hio8255b io8255b equequ 28bh28bhled led dbdb 3fh3fh, ,06h06h, ,5bh5bh, ,4fh4fh, ,66h66h, ,6dh6dh, ,7dh7dh, ,07h07h, ,7fh7fh, ,6fh6fhmesg1 mesg1 dbdb 0dh0dh, ,0ah0ah, ,Input a num (0-9),other Input a num (0-9),other key is exit:key is exit:, ,0d
12、h0dh, ,0ah0ah, ,$data data endsendscode code segmentsegment assumeassume cscs:code,:code,dsds:data:datastart: start: movmov axax,data,data movmov dsds, ,axax movmov dxdx,io8255b ,io8255b ; ;使使82558255的的A A口为输出方式口为输出方式 movmov axax, ,80h80h outout dxdx, ,alalssssss: : movmov dxdx, ,offsetoffset mesg1
13、mesg1 ; ;显示提示信息显示提示信息 movmov ahah, ,09h09h intint 21h21h movmov ahah, ,0101 ; ;从键盘接收字符从键盘接收字符 intint 21h21h cmpcmp alal, ,00 ; ;是否小于是否小于0 0 jljl exit exit ; ;若是则退出若是则退出 cmpcmp alal, ,99 ; ;是否大于是否大于9 9 jgjg exit exit ; ;若是则退出若是则退出 subsub alal, ,30h30h ; ;将所得字符的将所得字符的ASCIIASCII码减码减3030H H movmov bxbx,
14、 ,offsetoffset led led ; ;bxbx为数码表的起始地址为数码表的起始地址 xlatxlat ; ;求出相应的段码求出相应的段码 movmov dxdx,io8255a ,io8255a ; ;从从82558255的的A A口输出口输出 outout dxdx, ,alal jmpjmp sss sss ; ;转转SSSSSSexit: exit: movmov ahah, ,4ch4ch ; ;返回返回 intint 21h21hcode code endsends endend start start实验七实验七 竞赛抢答器竞赛抢答器一、实验目的一、实验目的1 1、了
15、解微机化竞赛抢答器的基本原理。、了解微机化竞赛抢答器的基本原理。2 2、进一步学习使用并行接口。、进一步学习使用并行接口。二、实验内容二、实验内容图图7-17-1为竞赛抢答器为竞赛抢答器( (模拟模拟) )的原理图,逻辑开关的原理图,逻辑开关K0K0K7K7代表竞赛代表竞赛抢答按钮抢答按钮0 07 7号,当某个逻辑电平开关置号,当某个逻辑电平开关置“”时,相当某组时,相当某组抢答按钮按下。在七段数码管上将其组号抢答按钮按下。在七段数码管上将其组号(0(07)7)显示出来,并显示出来,并使微机扬声器响一下。使微机扬声器响一下。三、编程提示三、编程提示设置设置82558255为为C C口输入、口输
16、入、A A口输出,读取口输出,读取C C口数据,若为口数据,若为0 0表示无人表示无人抢答,若不为抢答,若不为0 0则有人抢答。根据读取数据可判断其组号。从键则有人抢答。根据读取数据可判断其组号。从键盘上按空格键开始下一轮抢答,按其它键程序退出。盘上按空格键开始下一轮抢答,按其它键程序退出。data data segmentsegmentio8255a io8255a equequ 28ah28ahio8255b io8255b equequ 28bh28bhio8255c io8255c equequ 288h288hled led dbdb 3fh3fh, ,06h06h, ,5bh5bh
17、, ,4fh4fh, ,66h66h, ,6dh6dh, ,7dh7dh, ,07h07h ; ;数码表数码表data data endsendscode code segmentsegment assumeassume cscs:code,:code,dsds:data:datastart:start:movmov axax,data,data movmov dsds, ,axax movmov dxdx,io8255b ,io8255b ; ;设设82558255为为A A口输出口输出, ,C C口输入口输入 movmov axax, ,89h89h outout dxdx, ,alal
18、movmov bxbx, ,offsetoffset led led ; ;使使BXBX指向段码管首址指向段码管首址ssssss: : movmov dxdx,io8255a,io8255a inin alal, ,dxdx ; ;从从82558255的的C C口输入数据口输入数据 oror alal, ,alal ; ;比较是否为比较是否为0 0 jeje sss sss ; ;若为若为0,0,则表明无键按下,转则表明无键按下,转ssssss movmov clcl, ,0ffh0ffh ; ;clcl作计数器作计数器, ,初值为初值为-1-1rrrr: : shrshr alal, ,1
19、1 incinc clcl jncjnc rr rr movmov alal, ,clcl xlatxlat movmov dxdx,io8255c,io8255c outout dxdx, ,alal movmov dldl, ,7 7 ; ;响铃响铃 ASCIIASCII码为码为0707 movmov ahah, ,2 2 intint 21h21hwaiwai: : movmov ahah, ,1 1 intint 21h21h cmpcmp alal, ,20h20h ; ;是否为空格是否为空格 jnejne eee eee ; ;不是不是, ,转转eeeeee movmov alal, ,0 0 ; ;是是, ,关灭灯关灭灯 movmov dxdx,io8255c ,io8255c outout dxdx, ,alal jmpjmp sss ssseeeeee: : movmov ahah, ,4ch4ch ; ;返回返回 intint 21h21hcode code endsends endend start start
限制150内