- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 IO接口及应用.ppt
动态扫描显示 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PD7 PD6 PD5 PD4 ATmega16 如该数码管为共阴数码管,则只要让PD4~PD7轮流输出低电平,就可以使4位数码管一位一位地轮流点亮,显示各自的数码,从而实现动态扫描显示。(具体见P152说明) ledbuff[0]=tabel[X%10]; //显示个位数 ledbuff[1]=tabel[X/10%10]; //显示十位数 ledbuff[2]=tabel[X/100%10]; //显示百位数 ledbuff[3]=tabel[X/1000];//显示千位数 语句1例: X =1234:除10取余等于4。 语句2例: X =1234:除10取商等于123.4, 再除10取余等于3。 其它类推。 显示程序设计 #includeiom16v.h #includedelay.h char z_biao[ ]={0x3f, 0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00} //字形表 char ledbuff[ ]={1,0,1,2,3} //其中第一个数是当前显示位,后面4个数依次显示在4个位上 void display() {if (ledbuff[0]==1){PORTB=z_biao[ledbuff[1]];PORTD=0X7F;} else if (ledbuff[0]==2){PORTB=z_biao[ledbuff[2]];PORTD=0XBF;} else if (ledbuff[0]==3){PORTB=z_biao[ledbuff[3]];PORTD=0XDF;} else if (ledbuff[0]==4){PORTB=z_biao[ledbuff[4]];PORTD=0XEF;} ledbuff[0]++; if(ledbuff[0]4)ledbuff[0]=1; } void main() {int x=7645; DDRB=0XFF; DDRD=0XFF; //显示x的值 ledbuff[0]=1; //无显示 ledbuff[1]=x/1000; ledbuff[2]=x/100%10; ledbuff[3]=x/10%10; ledbuff[4]=x%10; while(i--) { display(); delay_ms(1);} } DDRB; PORTB; MEGA16 PB0 PB1 PB2 PB3 PB4 PB5 PB7 PB6 §4.6 键盘接口技术 a b PB0(入) PB1(出) MEGA16 R1 VCC PB1 PB0 按键 输出低 输出低 不按下 按下 高 低 输出高 输出高 不按下 按下 高 低 应用:用发光管D显示键的状态 PB2 R2 VCC void j_xianshi() { DDRB; PORTB; while(1) { if((PINB0x01)==0) PORTB delay_ms(20); } } D 一般情况下,采用软件方法来消抖,其基本编程思路是:检测出按键闭合后,再执行一个10ms左右的延时程序,以避开按键按下去的抖动时间,待信号稳定后再进行按键查询,如果仍保持闭合状态电平,则确认为真正有按键按下。 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 4 8 12 0 1 2 3 行线输出低电平 列线带内部上拉、输入 MEGA16 vcc R1 R2 R3 R4 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 4 8 12 0 1 2 3 列线输出低电平 行线带内部上拉、输入 MEGA16 //行输出低电平,列带上拉电阻输入 DDRB; PORTB; delay_us(5); //检查有无键按下,无键按下返回0XFF If(PINB=) return(0xff); //获取按下键的列编码 if(PINB0x10==0)jianzhi=0; else if(PINB0x20==0)jianzhi=1; else if(PINB0x40==0)jianzhi=2; else if(PINB0
您可能关注的文档
最近下载
- 理光 MP CW2200 SP 工程机中文维修手册.pdf
- 某小区消防工程施工方案(3篇).docx VIP
- 入出境航空器废弃物消毒规程.pdf VIP
- 2025年高考数学(新高考Ⅰ卷)试卷评析及2026高考备考策略 课件.pptx
- 2025四川安吉物流集团有限公司下半年招聘工作人员11人(二)考试备考试题及答案解析.docx VIP
- 福建省福州市长乐区产业投资发展集团有限公司招聘笔试冲刺题库2025.pdf VIP
- 2025年实验动物上岗证培训(动物实验类)题库附答案 .pdf VIP
- 集团公司信息化建设策划方案.doc VIP
- 通用质量特性基本概念和理论.pptx VIP
- 《实践论与矛盾论》课件.ppt VIP
原创力文档


文档评论(0)