【藍橋杯單片機 控制LED燈電路經典程序】(2)

【藍橋杯單片機 控制LED燈電路經典程序】(2)
接上篇:上一篇(1)中只介紹了控制LED燈的電路,138譯碼器打通573鎖存器,鎖存器再控制八路LED燈。這篇主要介紹如何編寫代碼控制LED燈的亮滅。搞懂前面兩篇內容,也就相當於簡單入門了。
比賽時用的是keil uv4編譯軟件和stc-isp燒錄軟件,它們的使用這裏不多講了。

一、在keil中寫好程序基本構架

#include"reg52.h"  //包含頭文件
void Delay(unsigned int t)  //延時t毫秒
{
	unsigned char i, j;
	for(i = t; t > 0; t--)
		for(j = 110; j > 0; j--);
}
void main()  //主函數
{
	while(1)  //死循環
	{
	}
}

二、38譯碼器程序
上篇(1)說過,要使得控制LED燈的鎖存器打通,就要讓Y4輸出低電平,也即讓P25=0,P26=0,P27=1。
在這裏插入圖片描述在程序上是這樣表示的:

sbit HC138_A = P2^5;  //定義譯碼器中ABC所在引腳
sbit HC138_B = P2^6;
sbit HC138_C = P2^7;

HC138_C = 1//給CBA賦值
HC138_B = 0;
HC138_A = 0

三、573鎖存器程序控制LED燈

在這裏插入圖片描述
上一個程序讓Y4C輸出了高電平,打通了鎖存器,則Dx與Qx電平特性一致。低電平,燈亮;高電平,燈滅。下面是讓LED一直閃爍的程序:

注:0x00二進制爲00000000,所以P0=0x00就是一次性給P20–P27都賦值爲了0; 0xff類似,後面的十六進制數都是要轉化爲2進制來理解的。

P0 = 0x00;  //讓P20--P27輸出低電平
Delay(1000);
P0 = 0xff;  //讓P20--P27輸出高電平
Delay(1000);

將程序寫完整是這樣的:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章