2410学习笔记.doc

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

一、LED控制 将GPF4,5,6,7设为输出端口 GPFCON每两位控制一个端口,01代表输出 void Led_Init(void) { rGPFCON |= (0x558); } 给GPFDAT寄存器送数以点亮或者熄灭LED void Led_Display(int data) { rGPFDAT = (rGPFDAT ~(0xf4)) | ((data 0xf)4); //先将GPFDAT相应寄存器清零,然后送入data。 //高电平熄灭,低电平点亮。 } LED测试函数 int Main() { while(1) { Key_Scan_Test(); Led_Init(); Led_Display(0xf);//全灭 Delay(10000); Led_Display(0xe); Delay(10000); Led_Display(0xc); Delay(10000); Led_Display(0x8); Delay(10000); Led_Display(0x0);//全亮 Delay(10000); //putch(@); } return 0; } 二、键盘扫描和外部中断 PSR的I和F位清零,允许IRQ中断和FIQ中断。 INTMOD:相应位0=IRQ mode 1=FIQ mode 初始值,0 4X4 矩阵键盘 四个输入引脚:EINT0 -----( GPF0 )----INPUT EINT2 -----( GPF2 )----INPUT EINT11-----( GPG3 )----INPUT EINT19-----( GPG11 )----INPUT 四个输出引脚:KEYSCAN0---( GPE11 )----OUTPUT KEYSCAN1---( GPG6 )----OUTPUT KEYSCAN2---( GPE13 )----OUTPUT KEYSCAN3---( GPG2 )----OUTPUT 键盘扫描原理:KSCAN0,1,2,3分别置低电平,进行列扫描。检测输入引脚ENIT0,2,11,19的电平,输入低电平则证明键被按下。 操作步骤 初始化: 设置GPG6,2;GPE11,13为输出引脚 GPG11,3,GPF2,0设为外部中断 设置中断触发方式,EXTINT寄存器 清外部中断标志,EINTPEND,清SRCPND,清INTPND(清中断标志的顺序很重要) 将中断服务例程的入口地址赋给相应的外部中断,ISR_EINT0,2,8_23 给EINTMSK,INTMSK送0,清除屏蔽,使能中断 中断服务例程: (1)、设置GPG11,3,GPF2,0为输入 (2)、判断中断号,清中断标志 if(rINTPND==BIT_EINT8_23) //如果中断是8-23号之间的外部中断 { if(rEINTPEND(111)) { rEINTPEND |= 1 11; //清外部中断标志 } if(rEINTPEND(119)) { rEINTPEND |= 1 19; } ClearPending(BIT_EINT8_23);//清rSRCPND,rINTPND中断标志 } else if(rINTPND==BIT_EINT0) //0号外部中断 { ClearPending(BIT_EINT0); } else if(rINTPND==BIT_EINT2) //2号外部中断 { ClearPending(BIT_EINT2); } (3)、查询按键值 key = Key_Scan() ; if( key != 0xff ) printf( Interrupt occur... K%d is pressed!\n, key ) ; (4)、重新设置I/O口,GPG6,2,GPE13,11输出,GPG11,3,GPF2,0外部中断,等待下一次中断 键盘测试: void Key_Scan_Test( void ) { Uart_Printf( \n8X2 KEY array TEST ( Interrupt MODE )\n ); Uart_Printf( Press ESC key to Exit this program !\n\n ); KeyScanInit() ; while( Uart_GetKey() != ESC_KEY ) ; //键盘中断测试 rGPGCON = rGPGCON (~((322)|(36)))

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档