main.c
#include
"system.h"
#include
"led.h"
#include
"dz.h"
extern
uchar
flag_1ms;/
/在其他模組中尋找其定義。另外,extern也可用來進行鏈結指定。
void
main
(void)/
/程式的主函式
}}
dz.c
#include
"dz.h"
//把led.**件包含進來
#include
"system.h"
//把timer0.**件包含進來
#include
<
intrins.h
>
uchar
code
duan0[3
][8]
=,//
數字0的段選,//
王//佳
};uchar
code
wei=
;//?位選
void
sandbyte
(uchar
dat)//
給74hc595傳送段選的資料
rck=1;
_nop_()
;_nop_()
;rck=0
;}uchar
index=0
;//最低層,點陣屏的驅動,讓它不停顯示乙個字//
這個函式,用在讓點陣屏,不停的顯示乙個字//
這個字是什麼,由index來決定,index初始化為
0,就是顯示第
0個字,就是
0void
dis_yigezi
(void)/
/顯示1個字的函式//
定時大於7清零
}///
/這個函式,用來改變要顯示的內容//
它每1秒鐘修改一下index,所以修改了要顯示的內容
void
dis_poll
(void)/
///3
個字,最後清
0從第乙個開始顯示
}}
dz.h
#include
"system.h"
//把timer0.**件包含進來
sbit
sclk=p3
^6;/
/管腳定義
sbit
rck=p3^
5;sbit
ser=p3^
4;void
sandbyte
(uchar
dat)
;void
dis_yigezi
(void);
void
dis_poll
(void
);
led.c
#include
"led.h"
//把led.**件包含進來
#include
"system.h"
//把timer0.**件包含進來
uchar
data1
=0xfe;/
/先點亮第乙個led燈
void
led_move
(void)/
/led移位函式定時}
}
led.h
#include
"system.h"
//把timer0.**件包含進來
#define
ledp2//
led管腳
void
led_init
(void);
void
led_move
(void
);
system.c
#include
"system.h"
uchar
flag_1ms=0
;/*void
delay_us
(uint
xus)
void
delay_ms
(uint
xms)}*
/void
timer0_init
(void
)void
timer0()
interrupt
1//中斷號
1
system.h
#include
"reg51.h"
#define
uchar
unsigned
char//
定義無符號字元
#define
uint
unsigned
int/
/定義無符號整形
#define
fosc
12000000l/
/定義晶振頻率
#define
t1ms
(65536
-fosc/12
/1000)/
/定時1毫秒的時候,計數器要寫入的值//
void
delay_us
(uint
xus);/
/us級延時//
void
delay_ms
(uint
xms);/
/ms級延時
void
timer0_init
(void);
//定時器初始化
51的LED點陣筆記
今天的學習進度到了led點陣,其實原理和班上同學在操場上用一堆蠟燭擺乙個心字型差不多。用多個led燈通過一定的組合,亮和滅的操作,達到顯示出字或形狀的效果。說到這個,和昨天學習的數碼管原理也一樣,通過led亮和滅的兩種狀態,把七條橫槓和乙個點組合成數字或字母。原理理解不難。難點 1 led點陣最小有...
mysql迴圈移位 左迴圈移位
例項十三 左迴圈移位 方法 result n 32 k 1 b 將n的左端的k位先放到b中的低位中。b n 32 k 2 c 將n左移k位,起右邊低位k位補0。c n 3 將b和c進行或操作.解釋 原數 1011 1100 右移k位 0000 0010 將原數高位的10 移到最低位儲存 方法中的b ...
51例程 led點陣
一 led點陣發光原理 1 8 8單色微控制器結構圖如下 從電路圖中很簡單的就可以看出來,想要點亮點陣中的某乙個led燈。只要使得那個燈所在的行輸出高電平,所在列輸出低電平就好。2 51微控制器中一般用74hc595晶元驅動led點陣,微控制器埠直接驅動。因為直接驅動8 8的點陣需要2個io埠 16...