天堂草原最受欢迎的角色,天堂动漫,天堂在线,色天堂下载,天堂中文在线资源,亚洲男人天堂

技術熱線: 4007-888-234
設計開發

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

開發工具

提供開發工具、應用測試 完善的開發代碼案例庫分享

技術支持

從全面的產品導入到強大技術支援服務 全程貼心伴隨服務,創造無限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產品競爭力

新聞中心

提供最新的單片機資訊,行業消息以及公司新聞動態

QLdsPIC3]按鍵[C30+dsPIC30F6014A]

更新時間: 2019-03-23
閱讀量:3074

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

QLdsPIC3]按鍵[C30+dsPIC30F6014A]
//實驗目的:熟悉按鍵的掃描方法
//軟件思路:
//          1、PORTD口低8位的LED做顯示
//          2、按鍵K1...K4-K5...K8對應LED1...LED4-LED5...LED8
//          3、若K1按下則LED1點亮;若K8按下則LED8點亮

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

#include             //dsPIC30F6014標準頭文件
/*配置位*/
  _FOSC(CSW_FSCM_OFF & XT_PLL4);  //4倍頻晶振,Failsafe 時鐘關閉
  _FWDT(WDT_OFF);                 //關閉看門狗定時器
  _FBORPOR(PBOR_OFF & MCLR_EN);   //掉電復位禁止,MCLR復位使能。
  _FGS(CODE_PROT_OFF);            //代碼保護禁止

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

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

//按鍵掃描和顯示函數
void display(void)          
{
 
   temp1=PORTA;                  //讀去PORTA口的狀態
   temp1|=0x0FFF;                //防止與按鍵無關位干擾
   temp1=~temp1;                 //結果去反(因為按下去狀態為低,點亮LED使應為高)
   temp1=temp1>>12;              //結果右移12位(即temp1.3=temp1.15,temp1.0=temp1.12)
   temp2=PORTC;                  //讀去PORTC口的狀態
   temp2|=0x0FFE1;               //防止與按鍵無關位干擾
   temp2=~temp2;                 //結果去反(因為按下去狀態為低,點亮LED使應為高)
   temp2=temp2<<3;               //結果左移12位(即temp2.4=temp2.7,temp2.1=temp2.4)
   temp1=temp1|temp2;            //temp1與temp2組合得到8個按鍵按下的狀態
   LATD=temp1;                   //送LED顯示
}

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


联系我们: 微山县| 南安市| 潮州市| 方城县| 临邑县| 马公市| 水富县| 白朗县| 通州区| 息烽县| 和田市| 阳新县| 惠安县| 蒙阴县| 余江县| 六枝特区| 吕梁市| 乌鲁木齐市| 肥乡县| 静乐县| 浦县| 长沙县| 天台县| 金昌市| 安岳县| 嘉义市| 五原县| 平武县| 松溪县| 彩票| 平阳县| 龙胜| 和龙市| 宁津县| 广德县| 隆安县| 宁安市| 齐齐哈尔市| 观塘区| 米易县| 临夏市|