蓝桥杯单片机1day继电器蜂鸣器,数码管

蓝桥杯单片机继电器蜂鸣器,数码管

继电器,蜂鸣器

这节得目标是了解点亮继电器的led灯与蜂鸣器。

学之前还是得先看看原理图,主要是熟悉38译码器所控制的几个模块,多写几次代码就记住了,不需要可以去记。

蜂鸣器与led都由ULN2003控制所以需要38译码器需要Y5

#include <STC15F2K60S2.H>
void buzz()//蜂鸣器
{
    P06=1;
}
void b_led()//继电器led
{
    P04=1;
}
void main()
{
    P2=(P2&0xa0|0x1f);//P2其他口无影响,设置选用Y5
    while(1)
    {
        buzz();
        b_led();
    }
}

数码管

下面开始数码管
看原理图得知,数码管主要由Y7段选,Y6位选
按赛点资源包(网上找的)显示数码管是共阳极数码管,且给出了段码表

0 – 0xC0
1 – 0xF9
2 – 0xA4
3 – 0xB0
4 – 0x99
5 – 0x92
6 – 0x82
7 – 0xF8
8 – 0x80
9 – 0x90

这个应该不用记住资源包里面有0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90

静态显示

#include <STC15F2K60S2.H>

unsigned int tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
void delay(unsigned int t)
{
    unsigned int i,j;
    for(i=0;i<1000;i++)
    {
        for(j=0;j<t;j++)
        {
        }
    }
}

void hc38(int a)//38译码器的选择
{
    if(a==4)
    {
        P2=(P2&0x1f)|0x80;
    }
    else if(a==5)
    {
        P2=(P2&0x1f)|0xa0;
    }
    else if(a==6)
    {
        P2=(P2&0x1f)|0xc0;
    }
    else if(a==7)
    {
        P2=(P2&0x1f)|0xe0;
    }
}
void nixie_duan(unsigned int num)
{
    hc38(7);
    P0=tab[num];
}
void nixie_wei(unsigned int num)
{
    hc38(6);
    P0=0x01<<num;
    
}
void nixie(unsigned int num,unsigned int pos)//num是要显示的数,pos要显示的位置
{
    nixie_wei(pos);
    nixie_duan(num);
}

void main()
{
    while(1)
    {
        nixie(1,0);//第0个位置显示1
        delay(1);//不加延时会乱
    }
}

动态显示

动态显示相当于再快速依次的亮起不同位置的灯,运用视觉停留,让人以为同时亮起。

void nixie(unsigned int num,unsigned int pos)//num是要显示的数,pos要显示的位置
{
    P0=0xff;//全部关闭,消影
    nixie_wei(pos);
    nixie_duan(num);
}

void main()
{
    while(1)
    {
        nixie(1,0);//第0个位置显示1
        delay(1);//不加延时会乱
        nixie(2,1);//第1个位置显示2-
        delay(1);//不加延时会乱
    }
}

第一天就学到这儿。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值