蓝桥杯-单片机01-基础外设

LED、继电器、蜂鸣器、数码管等基础外设

蓝桥杯单片机赛题指定用板上LED、继电器、蜂鸣器、数码管均受M74HC573M1R锁存器控制,信号端与P0端口相连,锁存器控制端为LE,与YxC引脚相连,而YxC引脚又与或非门器件74H02相连,直接受Yx引脚的控制,Yx引脚的电平受三八译码器74HC138的控制,从而使这些器件受P25、P26、P27三个引脚的控制。
开发板原理图↓↓
在这里插入图片描述
在这里插入图片描述

因此控制这些器件就需要搭配使用P0端口和P25、P26、P27三个引脚。

utils.c

#include "utils.h"

//编码表可以从STC-ISP-范例程序-STC开发板(实验箱4)演示程序-HC595驱动8个数码管-C中获取
u8 code t_display[]={                       //标准字库
//   0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F
    0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,
//black  -     H    J    K    L    N    o   P    U     t    G    Q    r   M    y
    0x00,0x40,0x76,0x1E,0x70,0x38,0x37,0x5C,0x73,0x3E,0x78,0x3d,0x67,0x50,0x37,0x6e,
    0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF,0x46};    //0. 1. 2. 3. 4. 5. 6. 7. 8. 9. -1

u8 code T_COM[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};      //位码

//以下控制函数基本相同,可以直接复制修改
u8 bdata con;
sbit b = con^6;
sbit r  = con^4;
void buzzer(u8 i)
{
	b = i;
	P0 = con;
	P2 = 0xa0;_nop_(); P2 = 0;
}

void relay(u8 i)
{
	r = i;
	P0 = con;
	P2 = 0xa0;_nop_(); P2 = 0;
}

void LED(u8 i)
{
	P0 = ~i;
	P2 = 0x80;_nop_();P2 = 0;
}

void SMG_W(u8 i)
{
	P0 = i;
	P2 = 0xc0;_nop_();P2 = 0;
}

void SMG_D(u8 i)
{
	P0 = ~i;
	P2 = 0xe0;_nop_();P2 = 0;
}

utils.h

#ifndef __UTILS_H
#define __UTILS_H
#include <STC15F2K60S2.H>
#include "intrins.h"
#include "absacc.h"

typedef unsigned char u8;
typedef unsigned int u16;

void buzzer(u8 i);
void relay(u8 i);
void LED(u8 i);
void SMG_W(u8 i);
void SMG_D(u8 i);

#endif

main.c

#include "utils.h"
extern u8 code t_display[];
extern u8 code T_COM[];
void main()
{
	LED(0);
	buzzer(0);
	relay(0);
	SMG_D(t_display[0]);
	SMG_W(T_COM[0]);
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值