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