人狗畜禽COMPANY LIMITED|全是肉的高H文〈男男〉|全篇肉高H秘书被C办公室四爱|全黄H全肉共妻|全黄H全肉短篇禁乱NP慕浅浅|全黄H全肉短篇N男男

技術(shù)熱線: 4007-888-234

專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

提供開(kāi)發(fā)工具、應(yīng)用測(cè)試 完善的開(kāi)發(fā)代碼案例庫(kù)分享

從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無(wú)限潛能!

技術(shù)支持

QLdsPIC3]按鍵[C30+dsPIC30F6014A]

更新時(shí)間: 2019-03-23

   深圳市英銳恩科技有限公司:臺(tái)灣麥肯單片機(jī)(Micon MDT單片機(jī))亞太地區(qū)A級(jí)代理商

QLdsPIC3]按鍵[C30+dsPIC30F6014A]
//實(shí)驗(yàn)?zāi)康模菏煜ぐ存I的掃描方法
//軟件思路:
//          1、PORTD口低8位的LED做顯示
//          2、按鍵K1...K4-K5...K8對(duì)應(yīng)LED1...LED4-LED5...LED8
//          3、若K1按下則LED1點(diǎn)亮;若K8按下則LED8點(diǎn)亮

//硬件規(guī)劃:
//          1、撥碼開(kāi)關(guān)S1,S2全置ON,其他撥碼開(kāi)關(guān)OFF
//          2、跳線J1跳GND;J2跳UP(J1,J2都在按鍵模塊內(nèi))

#include             //dsPIC30F6014標(biāo)準(zhǔn)頭文件
/*配置位*/
  _FOSC(CSW_FSCM_OFF & XT_PLL4);  //4倍頻晶振,F(xiàn)ailsafe 時(shí)鐘關(guān)閉
  _FWDT(WDT_OFF);                 //關(guān)閉看門(mén)狗定時(shí)器
  _FBORPOR(PBOR_OFF & MCLR_EN);   //掉電復(fù)位禁止,MCLR復(fù)位使能。
  _FGS(CODE_PROT_OFF);            //代碼保護(hù)禁止

unsigned int __attribute__((address(0x900)))temp1;   //定義變量temp1并指定絕對(duì)位置
unsigned int __attribute__((address(0x902)))temp2;   //定義變量temp2并指定絕對(duì)位置

//I/O口初始化函數(shù)
void init(void)                 
{
TRISA= 0X0F000;                  //RA12-RA15輸入,其他位輸出
TRISC= 0X001F;                   //RC1-RC4輸入,其他位輸出
LATD = 0x0000;                   //關(guān)閉所有LED
TRISD = 0xFF00;                  //設(shè)定LED引腳為輸出
}

//按鍵掃描和顯示函數(shù)
void display(void)          
{
 
   temp1=PORTA;                  //讀去PORTA口的狀態(tài)
   temp1|=0x0FFF;                //防止與按鍵無(wú)關(guān)位干擾
   temp1=~temp1;                 //結(jié)果去反(因?yàn)榘聪氯顟B(tài)為低,點(diǎn)亮LED使應(yīng)為高)
   temp1=temp1>>12;              //結(jié)果右移12位(即temp1.3=temp1.15,temp1.0=temp1.12)
   temp2=PORTC;                  //讀去PORTC口的狀態(tài)
   temp2|=0x0FFE1;               //防止與按鍵無(wú)關(guān)位干擾
   temp2=~temp2;                 //結(jié)果去反(因?yàn)榘聪氯顟B(tài)為低,點(diǎn)亮LED使應(yīng)為高)
   temp2=temp2<<3;               //結(jié)果左移12位(即temp2.4=temp2.7,temp2.1=temp2.4)
   temp1=temp1|temp2;            //temp1與temp2組合得到8個(gè)按鍵按下的狀態(tài)
   LATD=temp1;                   //送LED顯示
}

//主函數(shù)
int main(void)
{
  while(1)
    {
      init();                    //調(diào)用初始化函數(shù)
      display();                 //調(diào)用按鍵掃描和顯示函數(shù)
    }
}


404
返回首頁(yè) |  返回上一頁(yè)
枣阳市| 密山市| 新乡市| 句容市| 洛扎县| 沙湾县| 若羌县| 新巴尔虎左旗| 惠安县| 长顺县| 呼玛县| 隆昌县| 白沙| 富锦市| 湘阴县| 青龙| 吴忠市| 古蔺县| 德阳市| 宿松县| 临海市| 永丰县| 义乌市| 肥城市| 宁德市| 章丘市| 南平市| 谢通门县| 玉门市| 西畴县| 烟台市| 板桥市| 辽源市| 延川县| 耒阳市| 宁夏| 元谋县| 池州市| 黑水县| 克什克腾旗| 垣曲县|