專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

PIC單片機控制8位流水燈C語言程序

作者:huqin   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年03月31日   【字體:
/*****************************************************
*** 功能:8位流水燈
*** 實驗內(nèi)容:本實驗是用二進(jìn)制寫的程序
*****************************************************/
#include<pic.h>                      //包含單片機內(nèi)部資源預(yù)定義
__CONFIG(0xFF32);
//芯片配置字,看門狗關(guān),上電延時開,掉電檢測關(guān),低壓編程關(guān),加密,4M晶體HS振蕩

void delay();                              //delay函數(shù)申明

/****************************************************************************
* 名    稱:main()
* 功    能:主函數(shù)
* 入口參數(shù):
* 出口參數(shù):
****************************************************************************/
void main()                 
{
        TRISD = 0;                          //portd 輸出
        TRISC = 0xf0;                  //porta 輸出
        PORTC = 0x00;     //74HC138控制端口
       
        while (1)         //死循環(huán),讓數(shù)碼管持續(xù)點亮
        {
                PORTD=0b00000001; //點亮第1個發(fā)光管
                delay();
                PORTD=0b00000000; //關(guān)掉發(fā)光管 也可以寫成16位的 自己試一試吧
                delay();
               
                PORTD=0b00000010; //點亮第2個發(fā)光管
                delay();
                PORTD=0b00000000; //關(guān)掉發(fā)光管 也可以寫成16位的 自己試一試吧
                delay();
               
                PORTD=0b00000100; //點亮第3個發(fā)光管
                delay();
                PORTD=0b00000000; //關(guān)掉發(fā)光管 也可以寫成16位的 自己試一試吧
                delay();
               
                PORTD=0b00001000; //點亮第4個發(fā)光管
                delay();
                PORTD=0b00000000; //關(guān)掉發(fā)光管 也可以寫成16位的 自己試一試吧
                delay();
                               
                PORTD=0b00010000; //點亮第5個發(fā)光管
                delay();
                PORTD=0b00000000; //關(guān)掉發(fā)光管 也可以寫成16位的 自己試一試吧
                delay();
               
                PORTD=0b00100000; //點亮第6個發(fā)光管
                delay();
                PORTD=0b00000000; //關(guān)掉發(fā)光管 也可以寫成16位的 自己試一試吧
                delay();
               
                PORTD=0b01000000; //點亮第7個發(fā)光管
                delay();
                PORTD=0b00000000; //關(guān)掉發(fā)光管 也可以寫成16位的 自己試一試吧
                delay();
               
                PORTD=0b10000000; //點亮第8個發(fā)光管
                delay();
                PORTD=0b00000000; //關(guān)掉發(fā)光管 也可以寫成16位的 自己試一試吧
                delay();
        }
}
/****************************************************************************
* 名    稱:delay()   
* 功    能:延時
* 入口參數(shù):
* 出口參數(shù):
****************************************************************************/
void delay()              
{
        int i;                 //定義整形變量
        for (i = 10000;i--;);     //延時
}
關(guān)閉窗口

相關(guān)文章