前言
此系列文章为了记录2023年蓝桥杯的备赛过程。
一、原理图
74HC138译码器:可以通过三个引脚进行Y0-Y7中某个引脚的低电平使能。对应的表如下图所示。
二、代码
#include <STC15F2K60S2.H>
sbit HC138_A = P2^5;
sbit HC138_B = P2^6;
sbit HC138_C = P2^7;
sbit buzzer = P0^6;
unsigned char i = 0;
void Delay(unsigned int t)//注意数据是否超出,unsigned char 0~255
{
while(t--);
while(t--);
}
void LED_running()
{
HC138_A = 0;
HC138_B = 0;
HC138_C = 1;
for(i=0;i<3;i++)
{
P0 = 0xFF;//全灭
Delay(60000);
Delay(60000);
P0 = 0x00;//全亮
Delay(60000);
Delay(60000);
}
for(i=1;i<=8;i++)
{
P0 = 0xff<<i;//逐渐点亮
Delay(50000);
}
for(i=1;i<=8;i++)
{
P0 = ~(0xff<<i);//逐渐熄灭
Delay(50000);
}
}
void main()
{
P2 = 0XA0;
buzzer = 0;
while(1)
{
LED_running();
}
}
三、问题
1.上电后蜂鸣器一直响。
(1)该单片机默认上电为低电平,导致蜂鸣器一直响。可添加代码
sbit buzzer = P0^6; P2 = 0XA0; buzzer = 0;
后两句放到主函数开头,第一句放到代码开头。
(2)也可不写代码,将开发板上的J6跳帽接到OFF上。如下图所示。
四、程序烧录
注意单片机型号选择IAP15F2K61S2,打开“打开程序文件”,选择对应的.hex文件。
该款单片机烧录时,需要冷启动,因此在点击“下载/编程”后,再给单片机上电。