MSP430鍵盤(pán)程序[中斷方式]

發(fā)布時(shí)間:2008-1-1 11:51    發(fā)布者:MSP430
關(guān)鍵詞: MSP430 , 鍵盤(pán)程序 , 中斷方式
// 此示例程序為中斷方式,得到鍵盤(pán)的鍵值,存放在隊列keybuff[10]中 // 此示例程序沒(méi)有顯示, // 鍵盤(pán)的按鍵按下引起P1口的中斷服務(wù)程序,得到鍵盤(pán)的鍵值,保存到鍵值隊列 // 在其他的中斷服務(wù)程序中通過(guò)鍵值隊列中的數據引導程序的流程 #include unsigned char keybuff[10]; unsigned char keypoint=0; void delay(int v) { while(v!=0)v--; } unsigned char key(void) { unsigned char x=0xff; P1DIR=0X0F; P1OUT=0X01; //掃描第一行 if((P1IN&0X70)==0X10) x=0; else if((P1IN&0X70)==0X20) x=1; else if((P1IN&0X70)==0x40) x=2; else { P1OUT=0X2; //掃描第二行 if((P1IN&0X70)==0X10) x=3; else if((P1IN&0X70)==0X20) x=4; else if((P1IN&0X70)==0x40) x=5; else { P1OUT=0X4; //掃描第三行 if((P1IN&0X70)==0X10) x=6; else if((P1IN&0X70)==0X20) x=7; else if((P1IN&0X70)==0x40) x=8; else {P1OUT=8; //掃描第四行 if((P1IN&0X70)==0X10) x=9; else if((P1IN&0X70)==0X20) x=10; else if((P1IN&0X70)==0x40) x=11; } } } return(x); } unsigned char keyj(void) {unsigned char x; P1DIR=0x0f; P1OUT=0x0f; //鍵盤(pán)硬件:P10--P13為行線(xiàn),最上面一根為P10 x=(P1IN&0X70); // P14--P16為列線(xiàn),最左邊一根為P14,列線(xiàn)下拉 return(x); // 無(wú)按鍵,返回 0?; 有按鍵返回 非0 } interrupt[PORT1_VECTOR] void port1key(void) { if(keyj()!=0X00) { delay(300) ; //消抖動(dòng) if(keyj()!=0X0) { keybuff[keypoint]=key(); //按鍵見(jiàn)鍵值保存到隊列 keypoint++; // if(keypoint==10) keypoint=0; } } P1OUT=0X0F; P1IFG=0X0; //清除中斷標志 } void main(void) { WDTCTL = WDTPW + WDTHOLD; /* // Stop WDT */ P1DIR=0XF; P1OUT=0XF; P1IES=0X0; P1IE=0X70; //列線(xiàn)上升沿允許P1中斷 _EINT(); /*/ Enable interrupts */ while(1) { LPM0; _NOP(); } }
本文地址:http://selenalain.com/thread-2835-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)在線(xiàn)工具

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页