/*
***************************************************************************
*
* (C) Copyright 2007,單片機(jī)初學(xué)者園地
* All Rights reserved.
*
*項(xiàng)目名稱(chēng): 51單片機(jī)學(xué)習(xí)開(kāi)發(fā)系統(tǒng)
*
*本文件名稱(chēng):sigle-led.c
*
* 完成作者 : 歪歪
* 當(dāng)前版本 : V1.0
* 完成日期 : 2007年4月1日
* 描 述 : 此程序?qū)iT(mén)為剛剛開(kāi)始接觸單片機(jī)的學(xué)習(xí)者設(shè)計(jì)的,
* 主要是幫助其學(xué)會(huì)單片機(jī)是怎么調(diào)試的,如何自己編寫(xiě)的程
* 序,從課本的迷團(tuán)中走出來(lái)。
* 本程序結(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ù)名稱(chēng): dellay
** 入口參數(shù):h(雙字節(jié)型)
** 出口參數(shù):無(wú)
** 功能描述: 短暫延時(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;
}
}