pic數(shù)碼管動態(tài)掃描顯示程序
#include
__CONFIG(0x1832);
//芯片配置字,看門狗關(guān),上電延時開,掉電檢測關(guān),低壓編程關(guān),加密,4M晶體HS振蕩
voiddelay();//delay函數(shù)申明
voidinit();//I/O口初始化函數(shù)申明
constcharTABLE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92};//定義常數(shù)0-5的數(shù)據(jù)表格
voidmain()//主函數(shù)
{
while(1)//死循環(huán),讓數(shù)碼管持續(xù)點亮
{
init();//調(diào)用初始化函數(shù)
PORTD=TABLE[0];//D口輸出數(shù)據(jù)表格第1個數(shù)據(jù)0
PORTA=0X3E;//點亮第1位數(shù)碼管
delay();//延時一定時間,保證數(shù)碼管亮度
PORTD=TABLE[1];//顯示數(shù)據(jù)1(同數(shù)據(jù)0)
PORTA=0X3d;
delay();
PORTD=TABLE[2];//顯示數(shù)據(jù)2(同數(shù)據(jù)0)
PORTA=0X3b;
delay();
PORTD=TABLE[3];//顯示數(shù)據(jù)3(同數(shù)據(jù)0)
PORTA=0X37;
delay();
PORTD=TABLE[4];//顯示數(shù)據(jù)4(同數(shù)據(jù)0)
PORTA=0X2f;
delay();
PORTD=TABLE[5];//顯示數(shù)據(jù)5(同數(shù)據(jù)0)
PORTA=0X1f;
delay();
}
}
voidinit()//I/O口初始化函數(shù)
{
TRISA=0X00;//設(shè)置A0輸出,其他輸入
TRISD=0X00;//設(shè)置D口輸出
ADCON1=0X07;//設(shè)置A口為普通I/O口
PORTA=0xff;
PORTD=0xff;//先熄滅所有顯示
}
voiddelay()//延時程序
{
inti;//定義整形變量
for(i=0x100;i--;);//延時
}