网站大量收购独家精品文档,联系QQ:2885784924

课件:MS430g2553.ppt

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TA的工作方式 4种工作模式: 连续 增 减 停 定时器TA的寄存器 控制寄存器 TACTL 捕获 / 比较寄存器 定时器应用举例 产生1秒的定时信号: 首先 、选择输入信号来源 其次、 选择工作模式 最后、 设定比较值 开启中断、启动定时器等待时间的到达。 时钟的设计 作为上机内容,请同学们自己编写完整程序 要点: 1、定时器 设置为1秒中断一次 2、写时间程序 两个60进制,一个24进制,7进制 3、时间送液晶显示 4、显示: 星期 时 分 秒 5、 每秒发光二极管闪烁 设计闹钟 要点: 1、基于前面的时钟程序 2、增加时间控制 3、到达规定的时间点,发光二极管亮5秒 扫描键盘键盘原理 扫描键盘为行列扫描 扫描键盘的完整程序为: 1、判断是否有按键按下; 2、判断是哪个按键按下; 3、判断是否按键松开。 按键原理图 电路原理图 行线P11、P12、P13 列线P14、P15、P16、P17全上拉 P13 P14 P16 P17 P15 P12 P11 如何判断是否有按键按下 首先、设置端口:行线为输出、列线为输入。 然后、行线输出为低电平 最后判断: 如果有按键按下,则列线不全为高电平, 如果没有键按下,则列线全部为高电平。 char Keyj(void) { P1DIR = 0x0E; // set p1.1~p1.3 设置为输出模式 P1OUT = 0x00; // p1.1~p1.3 输出值清零 return(P1IN 0x f 0 ) ; } 如果返回值为0xf0 则 有按键按下吗? 以后直接调用这个函数,即可判断有否按键按下。 注意:有键按下后,需要消抖动 使用延时再判断的方法即可消除抖动 If(Keyj() != 0xf0 ) { delay(200); //延时消除抖动 If(Keyj() == 0xf0 ) exit; //没有按键 为抖动 else //确实有键按下 { //处理 } 检查程序正确性 测试方法:如果有按键按下则发光管亮 If(Keyj() != 0xf0 ) { delay(200); //延时消除抖动 If(Keyj() == 0xf0 ) exit; //没有按键 为抖动 else //确实有键按下 { P1OUT = 1 ; //处理 DELAY(10000); P1OUT = 0 ; } 如何查找哪个按键按下 方法为:一个一个地查找。 先第一行输出0,检查列线是否非全高 否则第二行输出0,检查列线是否非全高 否则第三行输出0,检查列线是否非全高 如果某行输出0时,查到列线非全高,则该行有按键按下。 根据第几行线输出0与第几列线读入为0,即可判断在具体什么位置的按键按下。 下页具体程序。 void check_Key(void){ unsigned char row ,col,tmp1,tmp2; // tmp1用来设置P1OUT的值,使P1.1~P1.3中有一个为0 tmp1 = 0x08; for(row=0;row3;row++){ P1OUT |= 0x0E; // p1.1~P1.3=1 P1OUT -= tmp1; // P1.1~p1.3中有一个为0 tmp1 = tmp1/2; // tmp1 右移一位 if ((P1IN 0xf0) 0xf0){ // 是否P1IN的P1.4~P1.7中有一位为0 tmp2 = 0x80; // tmp2用于检测出那一位为0 for(col =0;col0x04;col++){ // 列检测 if((P1IN tmp2)==0x00){ // 是否是该列 key_val =key_Map[ row*4 +col]

文档评论(0)

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

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

1亿VIP精品文档

相关文档