/************************************************************** 實(shí)現(xiàn)的功能:在MCD2-DEMO上使數(shù)碼管從左到右各顯示0-5
芯片PIC18F452 編譯器PICC-18
XT:4MHZ ***************************************************************/ #include "pic18.h" const unsigned char display_numb[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90}; unsigned char display_data[6];//0:L 5:R /************************************************************** 端口初始化 LATC作為數(shù)碼管段驅(qū)動(dòng)(低有效) LATA作為數(shù)碼管位選擇驅(qū)動(dòng)(低有效) ***************************************************************/ void init_port(void) { LATC=0xff; // TRISC=0; //C口當(dāng)作數(shù)碼管段,設(shè)置成輸出 ADCON1=0x07; TRISA=0; //A口當(dāng)作數(shù)碼管位選擇控制腳,設(shè)置成輸出 LATA=0xff; } /************************************************************** 延遲程序 ***************************************************************/ void delay_1ms(void) { unsigned int n; for(n=0;n<50;n++) { NOP(); } } void delay_ms(unsigned int time) { for(;time>0;time--) { delay_1ms(); } } /************************************************************** 主程序 從左到右顯示0-5 ***************************************************************/ void main(void) { unsigned char n; init_port(); display_data[0]=display_numb[1];//2 display_data[1]=display_numb[0];//1 display_data[2]=display_numb[3];//4 display_data[3]=display_numb[2];//3 display_data[4]=display_numb[5];//6 display_data[5]=display_numb[4];//5 while(1) { LATA=0xfe; for(n=0;n<6;n++) { LATC=display_data[n]; delay_ms(1); LATA=(LATA<<1)+1; } } } |