欢迎来到天天文库
浏览记录
ID:27715127
大小:333.84 KB
页数:9页
时间:2018-12-05
《使用8255a控制led》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、单片机第五周任务一.实验要求8255A的A口作为输出功能,连接8盏LED灯。8255A的B口作为输入功能,连接8个按钮。当B口的某一按钮按下,对应的LED灯就点亮同时。同时,数码管上显示对应的按键号。如B口按钮1按下,1号LED灯就点亮,8段数码管显示1.二.硬件分析191S02B3T31CO1Cl2LxJLJ秦I;4S:—一―.—Co7r—uyXTAL1XTA12ALEXZT2ICutToClipboard!U2FDXlXCaP0.1MMF02CACCRoarAtaFOJ8-AD6F0.7iAWm/eP22TAGP2JTA1
2、1R2SfAQR2«AUP2.?iASP3DTRXDF3.1/TX0n加noFjaffinP3«noP3ST1F3抓聚P3.7/W33J7323135□□□49x>2S21DO01020304OSD607TO(WW如A1RB5CT17S2S^LE»*8LUEBO01O-oooB2S3B5B6B75FCR田P*—三.代码分析//单片机头文件//扩展地址解析头//控制地址定义//A口地址定义//B口地址定义//C口地址定义#include#include文件ttdefinePACXBYTE[0x
3、7FFF]^definePAXBYTE[0x7CFF]ttdefinePBXBYTE[0x7DFF]^definePCXBYTE[0x7EFF]#defineuintunsignedint#defineucharunsignedcharsbitRST=PrO;sbitRD1=P3^7;sbitRW=P3^6;//复位引脚定义//读引脚定义//写引脚定义unsignedcharcodeTab[]={0xF9,0xA4,OxBO,0x99,0x92,0x82,0xF8,0x80}://共阳数码管码表voidmain(void){//
4、主函数tRST=1;//复位置1RST=O://复位置0PAC=0x82:PB=0xff;PA-Oxff;Pl=0xff;while(1){switch(PB)//设控制字caseOxfe:Pl二Tab[0];PA=0xfe;break;}caseOxfd:{Pl=Tab[l]:PA=Oxfd;break;caseOxfb:{Pl=Tab[2]:PA二Oxfb;break;}caseOxf7:Pl=Tab[3]:PA=Oxf7:break;caseOxef:casecasecasePl=Tab[4]:PA=Oxef:break;
5、}Oxdf:{Pl=Tab[5]:PA=Oxdf:break;Oxbf:{Pl=Tab[6]:PA=Oxbf:break;0x7f:Pl=Tab[7]:PA=0x7f;break;caseOxff:Pl=Oxff;PA=Oxff;break;四.我对8255A的理解8255A是一种可编程的I/O接口芯片,可以与MCS-51系统单片机以及外设直接相连,广泛用作外部并行I/O扩展接口。三个数据端口A,B,C这三个端口均可看作是I/O口,但它们的结构和功能也稍有不同。1.A口:是一个独立的8位I/O口,它的内部有对数据输入/输出的锁存
6、功能。2.BO:也是一个独立的8位I/O口,仅对输出数据的锁存功能。1.C口:可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。也是仅对输出数据进行锁存。面向CHJ的引脚信号及功能1.D0-D7:8位,双向,三态数据线,用来与系统数据总线相连;2.RESET:复位信号,高电平有效,输入,用来清除8255A的内部寄存器,并置A口,B口,C口均为输入方式;3.CS:片选,输入,用来决定芯片是否被选中;4.RD:读信号,输入,控制8255A将数据或状态信息送给CPU;5.WR:写信号,输入,控制CPU将数据或控制信
7、息送到8255A;6.A1,AO:内部口地址的选择,输入。这两个引脚上的信号组合决定对8255A内部的哪一个口或寄存器进行操作。8255A有三种工作方式,用户可以通过编程来设置。方式0简单输入/__输出查询方式;A,B,C三个端口均可。方式1选通输入/一一输出中断方式;A,B,两个端口均可。方式2双向输入/一一输出中断方式。只有A端口才有。
此文档下载收益归作者所有