您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 8255与多位LED数码管的显示
一、复习8255实验28255与多位LED数码管的显示实验8255功能特性三个独立的8位并行输入/输出端口,各端口均具有数据数据输入、输出能力;三种工作方式:0基本、1选通、2双向;可通过编程设置各端口的工作方式和数据传送方向(入/出/双向)。1.8255相关知识图9.98285编程结构8255的内部结构数据总线缓冲器读/写控制部件A组控制部件B组控制部件A组端口A(8)A组端口C上半部(4)B组端口C上半部(4)B组端口B(8)双向数据总线D7~D0RDWRA1A0RESETCS8位内部数据总线I/OPA7~PA0I/OPC7~PC4I/OPC3~PC0I/OPB7~PB0C下半部PAPBPC8255外部引脚连接系统端的引线:D0~D7RESETA0A1CSRDWRCS:片选RD:读控制WR:写控制RESET:复位A1,A0:端口选择A1A0选择00端口A01端口B10端口C11控制寄存器D0~D7:数据线分别对应PA、PB、PC三个8位输入/输出端口D0~D7RESETA0A1CSRDWRPAPBPC三个端口可通过编程分别指定为输入或输出口。连接外设端的引线:PA0~PA7PB0~PB7PC0~PC78255外部引脚8255的初始化8255工作前必须初始化,初始化时需设置:工作方式数据传送方向通过向8255写入方式控制字实现:方式0:基本输入/输出方式方式1:选通方式方式2:双向方式(仅A口)输入输出1D0D1D2D3D4D5D6方式控制字标志位1:端口C(PC3~PC0)输入0:端口C(PC3~PC0)输出1:端口B输入0:端口B输出1:端口B方式10:端口B方式01:端口C(PC7~PC4)输入0:端口C(PC7~PC4)输出1:端口A输入0:端口A输出00:端口A方式001:端口A方式11X:端口A方式28255工作方式控制字格式对20H端口的访问格式:直接寻址INAL,20H;从地址为20H的端口输入一个字节到ALOUT20H,AL;将AL的内容输出到地址为20H的端口对200H端口的访问格式:间接寻址MOVDX,200H;将端口地址送DX寄存器INAL,DX;从地址为200H的端口输入一个字节到ALOUTDX,AL;将AL的内容输出到地址为200H的端口2.端口寻址方式掌握8255A的编程原理与多位LED数码管的显示方法。二、实验目的把待显示字符的LED代码组成一个七段代码表,存放在存储器中。通过对8255编写程序在多位LED数码管上显示输出。1、设计出8255与8086接口对应硬件电路,并完成相应的连接2、设计出8255与LED数码管的对应硬件接口电路,并完成相应的连接3、编写程序,在数码管上显示相应字符或数字4、写出习题部分要求的程序三、实验内容四、实验设备MUT—Ⅲ型实验箱、8086CPU模块。五、8255与8086及8255与键盘的电路连接DB地址译码器D0~D7WRRDA1A0CS8255PAPBPCIOWIORA2A1D0~D7A15~A19系统总线LED-A~LED-DP(段控)LED-1~LED-6(位控)动态扫描显示字形码电源电路复位键8255并行接口CPU板座LED数码管显示屏LED1~LED6LED-A~LED-DP跳线冒六、实验步骤1、实验接线CS0CS8255(输出)PA0~PA7LED-A~LED-DP(段控)(输出)PB0~PB5LED-1~LED-6(位控)2、编程并全速或单步运行。3、全速运行时按动键盘,观察数码管的变化。4、编写实验报告。本实验中8255的地址分配如下:端口A04A0H端口B04A2H端口C04A4H控制口04A6H七、实验程序流程图初始化8255取字形码显示输出九、实验程序assumecs:codecodesegmentorg100hstart:nopnopstart1:movcx,08h;设置循环次数movbx,00feh;bh=00000000,bl=11111110Bmovdx,04a6h;控制寄存器地址movax,80h;设置为A口输出,B口输出outdx,ax;8255的初始化disp:movdi,offsetsegcod;取偏移地址送入di寄存器movdx,04a0h;A口地址moval,bh;aL=00000000movah,00h;ah=00000000adddi,ax;得到第一个变量(字形码)3fh的偏移地址moval,cs:[di];将3fh送入al寄存器outdx,al;将字形码从A口输出本实验中8255的地址分配如下:端口A04A0H端口B04A2H端口C04A4H控制口04A6Hmovdx,04a2h;B口地址moval,bl;al=11111110Boutdx,al;al的内容从B口输出,使LED1有效pushcx;循环次数入栈保护calldelaypopcx;循环次数出栈incbh;bh内容加1,指向第二个字形码rolbl,1;bl=11111110B循环左移,使下个位控有效loopdispjmpstart1delay:movcx,43h;延时程序,将此数改为最大观察结果delay1:nopnoploopdelay1retsegcoddb3fh,06h,5bh,4fh,66h,77hcodeendsendstart八、修改程序注意:1、编程前先在E盘目录下建一个文件夹,并取一个英名名字,即名字中不能有汉字和数字。编完程序将其存于该目录下。3、做完实验将实验箱右上角的CPU板卸下,再关实验箱。2、做实验之前先取下跳线冒。将自己学号的最后6位同时显示出来
本文标题:8255与多位LED数码管的显示
链接地址:https://www.777doc.com/doc-4460550 .html