单片机输入输出端口.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 输入输出端口的用法 数字端口用法 【学习目标】 掌握输入输出端口方向的控制方法; 熟练掌握数码管动态扫描的设计和编程; 掌握矩阵式键盘设计思路和编程; 第六章 输入输出端口的用法 第五章 输入输出端口的用法 1 输入/输出端口原理 输入/输出端口简介 PIC16F877共有40个引脚,其中有33个I/O引脚、与五个端口相对应。PORTA对应RA0到RA5共6个引脚、PORTB对应RB0到RB7共8个引脚、PORTC对应RC0到RC7共8个引脚、PORTD对应RD0到RD7共8个引脚、PORTE对应RE0到RE2共3个引脚。 输入/输出端口原理 输入/输出端口的相关寄存器 PIC的方向寄存器TRISX TRISB是PORTB的方向寄存器。 TRISA是PORTA的方向寄存器。 TRISC是PORTC的方向寄存器。 TRISD是PORTD的方向寄存器。 TRISE是PORTE的方向寄存器。 TRISX也是8位寄存器。 当TRISX某二进制位为1时,PORTX对应位处于输入(Input)状态。 当TRISX某二进制位为0时,PORTX对应位处于输出(Output)状态。 第五章 输入输出端口的用法 输出端口用法例题1 输出端口用法例题1 编程实现跑马灯的运行效果,即D0到D7循环被依次点亮,但同一时刻只有一个灯亮。单片机主频为4MHz。 输出端口用法例题代码 main() { int i=0,DelayCNT=0; char Data=0; // 用来记录向PORTC输出内容的变量 TRISC=0; // 把C口置为输出状态 while(1) // 主循环必须是死循环 { Data=0x01; // 循环的初始值 for(i=0;i8;i++) //需要显示8次 { PORTC=Data; // 送PORTC显示 for(DelayCNT=0;DelayCNT10000;DelayCNT++) ; // 延时 Data=Data1; // 每显示一次后Data左移一次 } } } 多数码管的显示控制 4数码管控制:Proteus原理图 动态扫描基本思想 只让第1个数码管亮; 显示个位; 延时20ms; 只让第2个数码管亮; 显示十位; 延时20ms; 只让第3个数码管亮; 显示百位; 延时20ms; ……... 动态扫描代码的实现 void delay10ms(int m) //定义延时函数 { int i=0,j=0; for(i=0;im;i++) for(j=0;j67;j++) // 不同频率下67需要修改 {;} } const char TableNumber[]={000 0000 000; //字形码数组 动态扫描代码的实现(续) void main(void) { TRISB=0x00; TRISC=0x00; while(1) { char i=0,j=0,k=0,Number[5]={0,0,0,0,0}; Number[1]=2; Number[2]=9; Number[3]=1; Number[4]=3; for(i=0;i10;i++) { PORTC=k=0x01; // 每次循环不要忘记k赋初始值 for(j=1;j=4;j++) // 共需要刷新四个数码管位置 { PORTC=k; //设置要点亮的位置 PORTB=TableNumber[Number[j]]; //设置字形 delay10ms(1); // 延时显示字形,造成视觉暂留现象 k=k1; // 左移为显示下一位置做准备 } } } } 将数码管扫描写成函数形式”seg4.h” #ifndef _SEGMENT74_H_ // 防止重复编译本头文件 #define _SEGMENT74_H_ #define SEG_BITSEL_PORT PORTC // 位选端口 #define SEG_BITSEL_PORT_DIR TRISC // 位选端口的方向寄存器 #define SEG_FONT_PORT PORTB // 字形输出端口 #define SEG_FONT_PORT_

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档