欢迎来到天天文库
浏览记录
ID:40815413
大小:182.00 KB
页数:16页
时间:2019-08-08
《06 输入输出端口》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、PIC单片机技术电子信息与电气工程系通信教研室1单片机的性能优劣在很大程度上取决于I/O端口功能的强弱,F877PDIP型单片机共有40个管脚,其中有33个是I/O引脚。33个I/O引脚归属于5个端口,分别为PORTA(6)、PORTB(8)、PORTC(8)、PORTD(8)、PORTE(3),其中括号内的数字为该端口的位数。第6章输入输出端口2F877单片机有5个I/O端口,它们的设计思想和内部结构都是不同的,即使同一个端口各个引脚的内部结构也存在差异。但就其通用的输入/输出功能,基本具有类同
2、的线路结构。6.1I/O端口功能的通用结构3基本端口内部结构4多位数码动态显示举例说明例6-1数码管显示子程序XSHSHUBWEQU23H;定义百位变量SHUSWEQU24H;定义十位变量SHUGWEQU25H;定义个位变量COUNTEREQU26HXSHMOVF20H,W;CALLCHABIAO;调用查表子程序MOVWFSHUBW;CALLXIANSHIBW;调用显示百位的子程序MOVF21H,WCALLCHABIAO;MOVWFSHUSW;CALLXIANSHISW;调用显示十位子程序MOVF
3、22H,WCALLCHABIAOMOVWFSHUGW;CALLXIANSHIGW;调用显示个位子程序RETURN5显示子程序XIANSHIBWMOVLW04HMOVWFPORTA;选通百位MOVFSHUBW,WMOVWFPORTC;从C口显示十位内容RETURNXIANSHISWMOVLW02HMOVWFPORTA;选通百位MOVFSHUSW,WMOVWFPORTC;从C口显示十位内容RETURNXIANSHIGWMOVLW01HMOVWFPORTA;选通百位MOVFSHUGW,WMOVWFPOR
4、TC;从C口显示十位内容RETURN6查表子程序CHABIAOADDWFPCL,F;查表,字形码RETLW02H;“0”RETLW0CEH;“1”..END7F877单片机共有十个外围功能模块,几乎每一个或多或少都与I/O端口有关系,有些涉及到控制引脚,有些作为数据输入输出通道。基本I/O端口功能的设置非常方便,只要对I/O端口的方向寄存器TRIS进行定义即可。对于某个引脚位:设置为1定义为输入状态,设置为0定义为输出状态。6.2I/O端口寄存器及其初始化8【例题6-2】将RC端口的高四位和低四位
5、分别设置为输入和输出端,而把RB端口全部定义为输出接口。ORG1000HBANKSELTRISC;选择TRISC所在的体MOVLW0F0H;MOVWFTRISC;MOVLW00H;MOVWFTRISB;END9【例题】通过RA4引脚检测按键S1的所按次数,并通过RB0~RB3以四位二进制显示计数值,当数值达到15时,又恢复到0重新计数。6.3基本输入/输出应用实例10;******************************************************listp=16f87
6、7;//芯片型号根据实际修改include"p16f877.inc"RP0equ5RP1equ6delay1equ22hdelay2equ23haequ24h;存放按键次数;******************************************************11;******************************************************;主程序org0x30nopcallInitialmainloopcallDelaycallDelaybt
7、fssPORTA,4;测试开关是否被按下callCheckgotomainloop;************************************************12;************************************************;初始化子程序InitialbcfSTATUS,RP1bsfSTATUS,RP0;选存储体1clrfTRISB;输出bcfSTATUS,RP1bcfSTATUS,RP0;选存储体0clrfPORTBmovlwB'0000
8、1111'movwfPORTBmovlw0x00movwfareturn;************************************************13;************************************************;键盘处理子程序Checkincfa;ifa==0fhclrfa;a计数记满后重新计数endifmovfa,0;a-->WmovwfPORTBcheck1btfssPORTA,4gotocheck1;若RA4仍为低
此文档下载收益归作者所有