|
/***************************************************************************
* 文件名:SEG 012345.c
* 功 能:六位數碼管從左到右顯示543210六位數字
* 作 者:
* 日 期:
* 備 注:
//軟件思路:利用人眼睛的視覺暫留,迅速依次點亮數碼管,
// 使人們以為幾個數碼管是全亮的
//開發板連接方法:把JP2跳線帽接上,JP3 SEG1 SEE2接上,JP1 跳線帽取下
****************************************************************************/
#include<pic.h> //包含單片機內部資源預定義
__CONFIG(0x1832);
//芯片配置字,看門狗關,上電延時開,掉電檢測關,低壓編程關,加密,4M晶體HS振蕩
void delay(); //delay函數申明
//定義常數0-9的數據表格
const unsigned char TABLE[] = {0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7c,0x7,0x7f,0x6f};
/****************************************************************************
* 名 稱:main()
* 功 能:主函數
* 入口參數:
* 出口參數:
* 說 明:
****************************************************************************/
void main()
{
TRISD = 0; //portd 輸出
TRISA = 0; //porta 輸出
PORTA = 0x00; //禁止顯示
PORTD = 0x0f;
while (1) //死循環,讓數碼管持續點亮
{
PORTD = TABLE[0]; //取出數據,送D口顯示
PORTA = 0x01; //點亮第一個位數碼管
delay(); //延長一段時間,保證亮度
PORTD = TABLE[1]; //顯示數據1(同數據0)
PORTA = 0x02;
delay();
PORTD = TABLE[2];
PORTA =0x04;
delay();
PORTD = TABLE[3];
PORTA = 0x08;
delay();
PORTD = TABLE[4];
PORTA = 0x10;
delay();
PORTD = TABLE[5];
PORTA = 0x20;
delay();
}
}
/****************************************************************************
* 名 稱:delay()
* 功 能:延時
* 入口參數:
* 出口參數:
* 說 明:
****************************************************************************/
void delay()
{
int i; //定義整形變量
for (i = 60;i--;); //延時
}
|
|