* 描 述 : 此程序?qū)iT為剛剛開始接觸單片機(jī)的學(xué)習(xí)者設(shè)計(jì)的, * 主要是幫助其學(xué)會(huì)單片機(jī)是怎么調(diào)試的,如何自己編寫的程 * 序,從課本的迷團(tuán)中走出來。 * 本程序結(jié)構(gòu)簡(jiǎn)單、合理,有幫助于初學(xué)者養(yǎng)成良好的編 * 程風(fēng)格。功能是實(shí)現(xiàn)數(shù)碼管顯示,每隔0.6S加1,在0~9間循環(huán)。 **************************************************************************** */ #include <reg52.h> //調(diào)用頭文件(單片機(jī)內(nèi)部的寄存器定義)
/******本段為硬件I/O口定義********/ sbit LED0 = P0 ^ 0; sbit LED1 = P0 ^ 1; sbit LED2 = P0 ^ 2; sbit LED3 = P0 ^ 3; sbit DIG0 = P0 ^ 4; //數(shù)碼管位0 sbit DIG1 = P0 ^ 5; //數(shù)碼管位1
sbit BUZZ = P3 ^ 4; //蜂鳴器
//共陰極數(shù)碼管,顯示0~9 code unsigned char DispBuf[10]= {0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f};
/************************************************** ** 函數(shù)名稱: dellay ** 入口參數(shù):h(雙字節(jié)型) ** 出口參數(shù):無 ** 功能描述: 短暫延時(shí),使用11.0592晶體,約0.01MS ****************************************************/ void dellay(unsigned int h) { while(h--); //約0.01MS }
/************主程序**************/ main() { unsigned char i=0; DIG0=0; //選擇數(shù)碼管0 while(1) //單片機(jī)在此反復(fù)執(zhí)行 { dellay(60000); //約0.6S P1=DispBuf[i++]; //顯示 if(i>9) i=0; } }
參考鏈接:http://www.picavr.com/news/2008-01/3156.htm |