电子星系工程pic实验指导3.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电子星系工程pic实验指导3

PAGE  PAGE 4 实验三 独立按键工作原理 如图所示,I/O端口,无按键按下时为高电平,有按键按下时为低电平。 知识点:按键去抖动 实际按键按下与放开时,0-1之间并非平滑过渡,实际波形如图1,在闭合与释放的过程中会有干扰信号,有可能会造成误读。 解决方法:在检测到有按键后,适当延时(与按键的机械性能有关,一般取10ms),再读入按键值,如果还为有效值,则判定为有按键按下。 二、硬件连线 LED显示 按键输入 编译器选择 MCC18 其他步骤和之前用汇编方式相同 调试工具选择: PIC KIT 2 库文件:C:\Program Files\Microchip\MCC18\lib\p18f452.lib 链接文件:C:\Program Files\Microchip\ MCC18\lkr\18f452.lkr 配置设置 OSCHS WDTdisabled LVP disabled 测试代码 #include p18F452.h //调用头文件 #define P1 PORTCbits.RC0 //定义独立按键P1为RC0 #define P2 PORTCbits.RC1 //定义独立按键P2为RC1 #define P3 PORTCbits.RC2 //定义独立按键P3为RC2 #define P4 PORTCbits.RC3 //定义独立按键P4为RC3 #define P5 PORTCbits.RC4 //定义独立按键P5为RC4 #define P6 PORTCbits.RC5 //定义独立按键P6为RC5 #define P7 PORTCbits.RC6 //定义独立按键P7为RC6 #define P8 PORTCbits.RC7 //定义独立按键P8为RC7 const unsigned char LED[10]= { 0x3f, //0 0x06, //1 0x5b, //2 0x4f, //3 0x66, //4 0x6d, //5 0x7d, //6 0x07, //7 0x7f, //8 0x6f, //9 }; // //名称: 主函数 // void main(void) { ADCON1=0X06; //所有IO均为数字口,模拟量输入禁止 TRISD=0 //RD设置为输出 TRISC=0 //RC设置为输入 while(1) { if(P1==0) PORTD=LED[1]; //如果P1键按下,1位数码管上显示1 else if(P2==0) PORTD=LED[2]; //如果P2键按下,1位数码管上显示2 else if(P3==0) PORTD=LED[3]; //如果P3键按下,1位数码管上显示3 else if(P4==0) PORTD=LED[4]; //如果P4键按下,1位数码管上显示4 else if(P5==0) PORTD=LED[5]; //如果P5键按下,1位数码管上显示5 else if(P6==0) PORTD=LED[6]; //如果P6键按下,1位数码管上显示6 else if(P7==0) PORTD=LED[7]; //如果P7键按下,1位数码管上显示7 else if(P8==0) PORTD=LED[8]; //如果P8键按下,1位数码管上显示8 else PORTD=0; //无按键按下,关显示 } }

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档