自在自线亚洲а∨天堂在线-中文字幕一区视频播放-扒开双腿猛进入喷水高潮叫声-欧美日本亚洲一区二区-老熟妇高潮偷拍一区二区-国产精品高清一区二区不卡-午夜色福利视频一区二区三区-亚洲国产成人精品福利在线观看-亚洲欧美成人一区二区在线电影

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
simple_POARD程序外圍功能模塊應(yīng)用實(shí)例
simple_POARD程序外圍功能模塊應(yīng)用實(shí)例
 更新時(shí)間:2009-11-2 15:59:20  點(diǎn)擊數(shù):0
【字體: 字體顏色

//該程序通過PORTB的"電平變化中斷"進(jìn)行鍵盤的輸入,使按下K1鍵時(shí)第一個(gè)數(shù)碼管顯示1,按下K2 鍵時(shí)第一個(gè)數(shù)碼管上顯示2,按下K3鍵時(shí)第一個(gè)數(shù)碼管上顯示3,按下K4鍵時(shí)第一個(gè)數(shù)碼管上顯示4對(duì)鍵盤的掃描采用中斷方式

#include "p18f458.h"

unsigned  char data;
unsigned  int i;
unsigned  char j;
const char table[20]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x7f,0xbf,0x89,0xff};

void InterruptHandlerHigh(void);

/*初始化子程序*/
/* http://www.51hei.com 提供此程序*/
void  initial()
{
 INTCON=0x08;    /*關(guān)閉所有中斷,B口變位中斷允許*/
 INTCON2=0x01;    /*使能B口弱上拉,B口變位中斷高優(yōu)先級(jí)*/
 RCONbits.IPEN=1;    /*使能中斷優(yōu)先級(jí)*/
 TRISA=0x00;     /*A口設(shè)置為輸出*/
 TRISB=0XF0;     /*RB1輸出,RB4輸入*/
 TRISC=0x00;     /*SDO引腳為輸出,SCK引腳為輸出*/
 TRISE=0x00;     /*E口設(shè)置為輸出*/
 SSPCON1=0x30;    /*SSPEN=1;CKP=1,F(xiàn)OSC/4*/
 SSPSTAT=0xC0;    /*時(shí)鐘下降沿發(fā)送數(shù)據(jù)*/
 PIR1=0;      /*清除SSPIF標(biāo)志*/
 data=0X00;     /*待顯示的寄存器賦初值*/ 
 PORTBbits.RB1=0;
 PORTAbits.RA3=0;
 PORTE=0;     /*將K1,K2,K3,K4四條列線置0*/
 PORTB=PORTB;    /*讀B口的值,為變位中斷創(chuàng)造條件*/ 
}

/*鍵服務(wù)子程序*/ 
void KEYSERVE()
{
 PORTBbits.RB1=0;    /*K1,K2置低電平,K3,K4置高電平*/
 PORTAbits.RA3=0;    /*RB4為0,表示按鍵為K1,K2中的一個(gè)*/
 PORTE=3;     /*RB4為1,表示按鍵為K3,K4中的一個(gè)*/
 if(PORTBbits.RB4==0)
 {
  PORTBbits.RB1=0;   /*K1置低電平,K2置高電平*/
  PORTAbits.RA3=1;   /*RB4為0,表示按鍵為K1;RB4為1,表示按鍵為K2*/
  if(PORTBbits.RB4==0) j=0X01;
  else {j=0X02; PORTAbits.RA3=0;}
 }
 else
 {
  PORTEbits.RE0=0;   /*K3置低電平,K4置高電平*/
  PORTEbits.RE1=1;   /*RB4為0,表示按鍵為K3;RB4為1,表示按鍵為K4*/
  if(PORTBbits.RB4==0) j=0X03;
  else {j=0X04; PORTEbits.RE1=0;}  
 }
}

/*軟件延時(shí)子程序*/
void  DELAY()
{
 for(i = 6553; --i ;)
 continue;
}

/*顯示子程序*/
void SPILED(char data)
{
 PORTAbits.RA5=0;     /*LACK送低電平,為鎖存做準(zhǔn)備*/
 SSPBUF=data;      /*啟動(dòng)發(fā)送*/
 do
 {
 ;
 }while(PIR1bits.SSPIF==0);   /*等待發(fā)送完畢*/
 PIR1bits.SSPIF=0;     /*清除SSPIF標(biāo)志*/
 PORTAbits.RA5=1;     /*最后給鎖存信號(hào),代表顯示任務(wù)完成*/
}

/*高優(yōu)先級(jí)中斷向量*/
#pragma code InterruptVectorHigh=0x08
void InterruptVectorHigh (void)
{
  _asm
    goto InterruptHandlerHigh    /*跳到中斷程序*/
  _endasm
}

/*高優(yōu)先級(jí)中斷程序*/
#pragma code
#pragma interrupt InterruptHandlerHigh
void InterruptHandlerHigh ()
{
 INTCONbits.RBIF=0;   /*中斷標(biāo)志清0*/  
 DELAY();     /*軟件延時(shí)*/
 PORTB=PORTB;    /*讀PORTB的值,并改變中斷發(fā)生的條件,可屏蔽*/
        /*一次按鍵松開時(shí)產(chǎn)生的無效的中斷,又可以防止按鍵*/
        /*時(shí)間過長發(fā)生連續(xù)中斷*/
 if(PORTBbits.RB4==0)
 {  
  KEYSERVE();    /*進(jìn)行鍵盤的識(shí)別*/
  PORTBbits.RB1=0;
  PORTAbits.RA3=0;
  PORTE=0;    /*將K1,K2,K3,K4四條列線置0,以防止鍵掃描時(shí)改變*/ 
        /*K1,K2,K3,K4的電平,從而改變中斷條件*/
  INTCONbits.RBIF=0;  /*鍵掃描時(shí)可能會(huì)產(chǎn)生"電平變化"而使置1,再清除一次*/
        /*RBIF以求避免額外中斷*/  
  data=table[j];    /*獲得需要送出顯示的段碼*/
  SPILED(data);
 }
}

/*主程序*/
main()
{
 initial();      /*系統(tǒng)初始化*/
 INTCONbits.GIE=1;    /*總中斷允許*/
 while(1)
 {
 }       /*等待中斷*/
}

  • 上一篇: 用AT89S51單片機(jī)軟件解碼PT2262的C程序
  • 下一篇: 沒有了
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1