字體:小 中 大 | |
|
|
2012/10/18 16:55:40瀏覽268|回應0|推薦0 | |
#include <reg51.h> void delay_1m(unsigned int dly); void int4_drv(void) interrupt 4 { if (RI == 1) { P0 = ~SBUF; RI = 0; } else { TI = 0; } } void main() { //跑馬燈的陣列 unsigned char code led_table[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F}; unsigned char i; TMOD = 0x20; PCON &= 0x7F; TH1 = 0xFA; //19200, 22.118 , C51ED2 SCON = 0x50; IP = 0x10; IE = 0x90; TR1 = 1; while(1) { for (i=0;i<8;i++) { //會連續執行8次的for迴圈 P1=led_table[i]; // 將陣列中的數值丟到P1 delay_1m(2000); //執行delay副程式 } } // 結束 while } /*************************************************************************** 副程式 : delay_1m 輸入引數 : 無號16位元整數unsigned int dly 說明 : 此副程式,引數dly為delay的長短控制 : 1 dly = 1msec ****************************************************************************/ void delay_1m(unsigned int dly) { int count; // 宣告count為一個整數變數(大小為16 bits) // 當count=120, // 執行while(count>0) count--; 約為1mS(石英晶體=12MHz) while(dly != 0) { count=120; while(count>0) count--; dly--; } } |
|
( 心情隨筆|心情日記 ) |