|
#include <reg52.h>
typedef unsigned char uint8;//定義參數類型,規范書寫格式
typedef unsigned int uint16;
uint16 i; //定義i 用于非精確延時計數
uint8 ledbuf;//定義led變量緩存,起到中間變量作用
/*STC89C51 P1口外38譯碼器;6號接三極管b極,起到所有LED高電平總開關作用 見末尾圖1*/
sbit ADDR0 =P1^0;
sbit ADDR1 =P1^1;
sbit ADDR2 =P1^2;
sbit ADDR3 =P1^3;
sbit ENLED =P1^4;
/******** 38譯碼器引腳對應P1位置*********/
main()
{
i =0;
cnt=0;
ledbuf=0x01;
/************** 參數初始化*************/
ADDR0 =0;
ADDR1 =1;
ADDR2 =1;
ADDR3 =1;
ENLED =0;
/************** 38譯碼器設置*************/
while(1)
{
P0=~ledbuf; //對P0賦值
for(i=0;i<30000;i++); //延時設置,這里注意 i 的值,如果uint8型,計數最大到255,超過256程序會死;這里 i 定義為uint1
ledbuf<<=1; //中間變量左移,>>符號為右移
if(ledbuf==0x00) //是為了保證最后一個led燈正常亮,ledbuf需左移為0000 0000,如果寫0x80,最后一個燈就直接跳過狀態顯示
{
ledbuf = 0x01;
}
}
}
/**************main 主函數*************/
38譯碼器.png (38.67 KB, 下載次數: 75)
下載附件
38譯碼器
2021-2-20 21:45 上傳
LED.png (23.86 KB, 下載次數: 112)
下載附件
LED DB0總線
2021-2-20 21:45 上傳
圖1:38譯碼器74HC138 LEDS6 為LED總控制開關
圖2:LED電路
|
-
-
74HC138.pdf
2021-2-20 21:50 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
239.4 KB, 下載次數: 8, 下載積分: 黑幣 -5
評分
-
查看全部評分
|