/************************************************************************
Name: 數位管
Copyright: 唐湘衡
Author: 唐湘衡
Date: 24-10-09 15:42
Description:
功能:六位元碼管從左(6)到右(1)顯示123456六位元字。
器件:pic18f4520晶片一片,pic-DEMO工程板一塊,picMCD2模擬器,台式電腦
要求:選用xt晶振,關閉看門狗定時器和低電壓編程
**************************************************************************/
#include<pic18.h>
void Delay(); //延時函數的聲明
void IntPort(); //I/O口初始化函數申明
const char TABLE[] = {0XF9,0XA4,0XB0,0X99,0X92,0X82}; //定義1-5的數字 (D連接埠控制 )
//*************************************************************************************
void main()
{
IntPort(); //調用連接埠初始化函數
PORTD = TABLE[0]; //輸出資料1
PORTA = OX1F; //開啟第六個數位管(最左一個)
Delay();
PORTD = TABLE[1]; //輸出資料1
PORTA = OX2F; //開啟第5個數位管
Delay();
PORTD = TABLE[2]; //輸出資料1
PORTA = OX37; //開啟第4個數位管
Delay();
PORTD = TABLE[3]; //輸出資料1
PORTA = OX3B; //開啟第3個數位管
Delay();
PORTD = TABLE[4]; //輸出資料1
PORTA = OX3D; //開啟第2個數位管
Delay();
PORTD = TABLE[5]; //輸出資料1
PORTA = OX3E; //開啟第1個(最右的)數位管
Delay();
}
//*************************************************************************************
void Delay() //延時函數的定義
{
int i;
for (i=20000; i>0; i--){;}
}
//*************************************************************************************
void IntPort()
{
TRISA = 0X00; //A連接埠全部設為輸出
TRISD = 0X00; //D連接埠全部設為輸出
ADCON1 = 0X07; //設定A口為普通I/O口(模數轉換寄存器)查表吧
PORTA = 0XFF;
PORTD = 0XFF; //熄滅所有數位管
}