资源描述:
《实验三、8255并行口实验.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验三、8255并行口实验一、实验目的1.熟悉并行接口芯片8255的使用与硬件接口方法2.掌握8255A的各种工作方式和编程方法3.学会简单显示、键盘编码方式和编程方法二、实验仪器1.实验箱和连接线2.万用表三、芯片介绍8255有A、B、C三个端口24条I/O线,可通过编程的方法来设定端口的各种I/O功能。8255有3种工作方式分别为:1).方式0:基本输入输出方式2).方式1:应答式输入输出方式3).方式2:应答式双向输入输出方式8255端口选择和基本操作如表4.8所示,实验中选CS0为片选信号时,I/O口地址范围为280H--283H,参见第
2、一章表1—3。表4.88255端口选择和基本操作A1A0/RD/WR/CS输入操作(读)I/O口地址00110101000011110000数据总线←通道A数据总线←通道B数据总线←通道C无操作280H281H282H输出操作(写)00110101111100000000数据总线→通道A数据总线→通道B数据总线→通道C数据总线→控制字寄存器280H281H282H283H8255有两种控制字:工作方式控制字和C口置位/复位控制字,工作方式控制字是必须要先设定的,C口置位/复位控制字则视需要而定。它们的格式如图4.6和图4.7所示:D7D6D5D4
3、D3D2D1D0无关位0:位复位1:位置位D7=0为C口置位/复位标志位000:PC0001:PC1010:PC2011:PC3100:PC4101:PC5110:PC6111:PC7图4.68255C口置位/复位控制字D7D6D5D4D3D2D1D0B组端口C(下C口)1=输入0=输出端口B1=输入0=输出方式选择1=方式10=方式0A组端口C(上C口)1=输入0=输出端口A1=输入0=输出方式选择00=方式001=方式11x=方式2D7=1为方式控制字标志位图4.78255工作方式控制字四、实验内容简易键盘操作。实验原理图与建议接线图如图4.
4、8和图4.9所示:图4.88255并行口实验CS1(实验平台)CS2CS_55ROW1-ROW4COL1-COL4L1-L8CS1(接口实验板)CS2CS0PC0-PC3PC4-PC7PA0-PA7图4.98255并行口实验接线采用反转法判断所按实验平台上的小键盘为何键,在数码管上显示按键信息,同时利用8255的A口输出控制发光二极管实现一定的功能。如按0到9数字键就在左边两个数码管上显示其数值;如为A--F功能键,则分别实现下列功能:A:数码管左二位显示‘A’,同时L1到L8左循环流水灯显示。B:数码管左二位显示‘B’,同时L1到L8右循环流水
5、灯显示。C:数码管左二位显示‘C’,同时L1到L8闪烁显示。D:数码管左二位显示‘D’,同时右四位数码管显示‘HELP’。E:数码管左二位显示‘E’,同时右四位数码管显示‘Good’。F:数码管左二位显示‘F’,同时跳出程序回到DOS。五、预习要求1.熟悉8255的工作原理和编程方法2.熟悉实验原理3.编制实验要求的汇编语言源程序六、思考题1.怎样用软件实现去键盘抖动?2.按键判断改为行列扫描法,怎样设计?七、流程框图及程序清单开始显示主菜单调键盘扫描子程序YY是A键执行A功能PC键盘按键否YYNN是B键执行B功能PC键盘按键否YYNN是C键执行
6、C功能PC键盘按键否YYNN是D键执行D功能PC键盘按键否YYNN是E键执行E功能PC键盘按键否YNN是F键回到DOSN是数字键,左二位数码管显示其数值SY55.ASM;PA55EQU280HPB55EQU281HPC55EQU282HP55CTLEQU283HDATASEGMENTTABLEDB0EEH,0DEH,0BEH,07EH,0EDH,0DDH,0BDH,07DHDB0EBH,0DBH,0BBH,07BH,0E7H,0D7H,0B7H,077HDCTBLDB3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6FhD
7、B77h,7Ch,39h,5Eh,79h,71hMESDB'Pressanykeyonthesmallkeyboard!',0DH,0AHDB'PressNUMkeytodisplaynumontheled!',0dh,0ahDB'PressAforleftcycle!',0DH,0AHDB'PressBforrightcycle!',0DH,0AHDB'PressCforalternatelydisplay!',0DH,0AHDB'PressDtodisplayHELPontherightfourled!',0DH,0AHDB'PressEto
8、displayGoodontherightfourled!',0DH,0AHDB'PressFtoquittodos!',0DH,0AH