我在公车被蹭水后当晚就来了月经,在公车上露着奶被男人玩,公车上的人妻沦陷完整版,(NP、高H、纯肉)公车,公车娇喘抽搐喷潮H文苏小暖,公车全黄H全肉短篇公车之狼

技術(shù)熱線: 4007-888-234
設(shè)計(jì)開發(fā)

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

開發(fā)工具

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

技術(shù)支持

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

新品推廣

提供新的芯片及解決方案,提升客戶產(chǎn)品競(jìng)爭(zhēng)力

新聞中心

提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)

PIC單片機(jī)C語言編程實(shí)例一

更新時(shí)間: 2019-01-05
閱讀量:4395


5.1.2  簡(jiǎn)單應(yīng)用實(shí)例 

    該例用于令與PORTD口相連的8個(gè)發(fā)光二極管前4個(gè)點(diǎn)亮,后4個(gè)熄滅。在調(diào)試程序前,應(yīng)使與PORTD口相連的8位拔碼開關(guān)拔向相應(yīng)的位置。
例5.1   PORTD輸出 

       #include 
main()
{
       TRISD=0X00;                   /*TRISD寄存器被賦值,PORTD每一位都為輸出*/
while(1);                           /*循環(huán)執(zhí)行點(diǎn)亮發(fā)光二極管的語句*/
       {
              PORTD=0XF0;          /*向PORTD送數(shù)據(jù),點(diǎn)亮LED(由實(shí)驗(yàn)?zāi)0?/
/*的設(shè)計(jì)決定相應(yīng)位置低時(shí)LED點(diǎn)亮)。*/
}
}

5.2.1  MSSP模塊SPI方式功能簡(jiǎn)介 

       下面是一段簡(jiǎn)單的SPI初始化例程,用于利用SPI工作方式輸出數(shù)據(jù)的場(chǎng)合。
例5.2  SPI初始化程序 

/*spi初始化子程序*/
void       SPIINIT()
{
       PIR1=0;                                   /*清除SPI中斷標(biāo)志*/        
       SSPCON=0x30;                /* SSPEN=1;CKP=0 , FOSC/4 */
       SSPSTAT=0xC0;
       TRISC=0x00;                    /*SDO引腳為輸出,SCK引腳為輸出*/
} 

5.2.3  程序清單 

下面給出已經(jīng)在實(shí)驗(yàn)板上調(diào)試通過的一個(gè)程序,可作為用戶編制其它程序的參考。
#include        
/*該程序用于在8個(gè)LED上依次顯示1~8等8個(gè)字符*/
static volatile int table[20]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x7f,0xbf,0x89,0xff};
volatile    unsigned        char       data; 
#define   PORTAIT(adr,bit)  ((unsigned)(&adr)*8+(bit))       /*絕對(duì)尋址位操作指令*/
static       bit PORTA_5 @ PORTAIT(PORTA,5); 
/*spi初始化子程序*/
void        SPIINIT()
{
       PIR1=0;             
       SSPCON=0x30;                /* SSPEN=1;CKP=0 , FOSC/4 */
       SSPSTAT=0xC0;
       TRISC=0x00;                    /*SDO引腳為輸出,SCK引腳為輸出*/
}
/*系統(tǒng)各輸入輸出口初始化子程序*/
void        initial()
{
TRISA=0x00;                    /*A口設(shè)置為輸出*/
       INTCON=0x00;                /*關(guān)閉所有中斷*/
       PORTA_5=0;                            /*LACK送低電平,為鎖存做準(zhǔn)備*/
}
/*SPI發(fā)送子程序*/
void              SPILED(int data)
{
       SSPBUF=data;                   /*啟動(dòng)發(fā)送*/
       do
       {
;
       }while(SSPIF==0);            /*等待發(fā)送完畢*/
SSPIF=0;                          /*清除SSPIF標(biāo)志*/
}
/*主程序*/
main()
{
       unsigned  I;
       initial();                             /*系統(tǒng)初始化*/
       SPIINIT()      ;                         /*SPI初始化*/     
      for(i=8;i>0;i--)                /*連續(xù)發(fā)送8個(gè)數(shù)據(jù)*/
      {
              data=table[i];                     /*通過數(shù)組的轉(zhuǎn)換獲得待顯示的段碼*/    
              SPILED(data);            /*發(fā)送顯示段碼顯示*/        
      }
       PORTA_5=1;                            /*最后給鎖存信號(hào),代表顯示任務(wù)完成*/
}
5.3.3  程序清單 

      下面給出已經(jīng)在實(shí)驗(yàn)板上調(diào)試通過的程序,可作為用戶編制其它程序的參考。有關(guān)顯示部分的SPI初始化,請(qǐng)讀者參考5.2節(jié)。
#include        
/*該程序用于按下相應(yīng)的鍵時(shí),在第一個(gè)8段LED上顯示相應(yīng)的1~4的字符*/
#define   PORTAIT(adr,bit)  ((unsigned)(&adr)*8+(bit))       /*絕對(duì)尋址位操作指令*/
static       bit  PORTA_5  @  PORTAIT(PORTA,5); 
#define    PORTBIT(adr, bit)     ((unsigned)(&adr)*8+(bit))   /*絕對(duì)尋址位操作指令*/
static       bit  PORTB_5  @  PORTBIT(PORTB,5);

  static      bit  PORTB_4  @  PORTBIT(PORTB,4);static       bit  PORTB_1  @  PORTBIT(PORTB,1)    ;
static       bit  PORTB_2  @  PORTBIT(PORTB,2)    ;
unsigned        int    I;
unsigned        char j;
int  data;
 /*spi初始化子程序*/
void      SPIINIT()
{
       PIR1=0;
       SSPCON=0x30; 
       SSPSTAT=0xC0;
       TRISC=0xD7;                   /*SDO引腳為輸出,SCK引腳為輸出*/
}
/*系統(tǒng)各輸入輸出口初始化子程序*/
void      initial()
{
       TRISA=0xDF;
       TRISB=0XF0;                   /*設(shè)置與鍵盤有關(guān)的各口的數(shù)據(jù)方向*/
       INTCON=0x00;                /*關(guān)閉所有中斷*/
       data=0X00;                       /*待顯示的寄存器賦初值*/
       PORTB=0X00;                  /*RB1 RB2 先送低電平*/
       j=0;
}
/*軟件延時(shí)子程序*/
void        DELAY()
{
       for(i = 6553; --i ;)
       continue;
}
/*鍵掃描子程序*/
int           KEYSCAN()
{    
while(1)
{
       if ((PORTB_5==0)||(PORTB_4==0))
       break;
}                                               /*等待有鍵按下*/
       DELAY();                         /*軟件延時(shí)*/
       if ((PORTB_5==0)||(PORTB_4==0))
              KEYSERVE();            /*如果仍有鍵按下,則調(diào)用鍵服務(wù)子程序*/
       else  j=0x00;                      /*如果為干擾,則令返回值為0*/
       return(j);
}    
/*鍵服務(wù)子程序*/
int           KEYSERVE()
{
       PORTB=0XFD       ;
       if(PORTB_5==0)    j=0X01;
       if(PORTB_4==0)    j=0X03;
       PORTB=0XFB;
       if(PORTB_5==0)    j=0X02;
       if(PORTB_4==0)    j=0X04;/*以上根據(jù)按下的鍵確定相應(yīng)的鍵值*/
       PORTB=0X00;                  /*恢復(fù)PORTB的值*/
while(1)
{
              if((PORTB_5==1)&&(PORTB_4==1)) break;</fon

乐东| 色达县| 洞口县| 紫云| 双桥区| 仙桃市| 大名县| 兴义市| 阿勒泰市| 西林县| 大埔县| 贵德县| 时尚| 阜康市| 台北县| 寿阳县| 诸暨市| 万年县| 滕州市| 寻乌县| 尚志市| 乌拉特后旗| 北安市| 玉环县| 平安县| 鸡泽县| 会东县| 郎溪县| 博乐市| 二连浩特市| 安宁市| 涡阳县| 保山市| 买车| 化州市| 台南市| 平湖市| 九台市| 辰溪县| 郸城县| 郯城县|