一、P1 单片机设计与开发—概述
1.单片机内核资源
2.单片机基本组成
二、P2—LED灯的基本控制
1.蓝桥杯单片机LED接口
(要通过锁存器的选通,不能直接通过P0口,还要通过译码器)
2.74HC138译码器(三八译码器):
三个输入控制八路互斥的低有效输出
功能表记忆:CBA对应421,二进制转十进制
3.74HC573锁存器(573)
八路3态输出的非反转透明锁存器;当锁存使能端LE为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保存时间的数据会被锁存。
即LE为高电平H时,输出端打通,D1~B8=Q1~Q8
LE为低电平L时,输出端锁存,无论D1~B8如何变化,Q1~Q8始终不变
(H高电平,L低电平,X任意电平)
4.LED指示灯电路原理
或非门输出1→Y4输入0(WR接地是0,先或之后再取反输出)
整体逻辑:P25P26P27控制Y4的值,Y4通过或非门控制Y4C的值,Y4C决定573输出端是否接通,从而才可通过改变P0端控制LED
LED阳极接电源,阴极接573→输出0点亮LED灯
5.代码
1)头文件+管脚定义
#include "reg52.h"
sbit HC138_A=P2^5;
sbit HC138_B=P2^6;
sbit HC138_C=P2^7;
2)DELAY函数
void Delay(unsigned int t)
{
while(t--);
while(t--);
}
3)LED运行函数
void LEDRunning()
{
//使得Y4口输出为0,通过或非门使得Y4C输出1,使得573处于输出同步状态(未锁存)
HC138_C=1;
HC138_B=0;
HC138_A=0;
//控制LED全部循环闪烁
P0=0x00;
Delay(60000);
Delay(60000);
P0=0xff;
Delay(60000);
Delay(60000;)
//LED流水灯(点亮版本)
for(i=1;i<=8;i++)
{
P0=0xff<<i;
Delay(60000);
Delay(60000);
}
//LED流水灯(熄灭版本)
for(i=1;i<=8;i++)
{
P0=~(0xff<<i);
Delay(60000);
Delay(60000);
}
}
三、P3—蜂鸣器与继电器的基本控制
1.蜂鸣器和继电器电路
蜂鸣器正极接到电源(VCC),另一个管脚给·低电平蜂鸣器就会叫高电平就不会
继电器控制端(N RELAY)给低电平,继电器就会吸合(二极管起保护作用)
2.ULN2003(达林顿管)
起到缓冲和驱动的作用,可理解为一个放大倍数比较大的三极管
中间是非门:输入1输出0,输入0输出1
3.整体思路:
改变P25P26P27→Y5输出低电平→通过或非门使得Y5C高电平→LE高电平,573输出端属于接通状态→可用P0口控制达林顿管→使对应输出端变为高电平1(N RELAY/N BUZZ)→蜂鸣器叫/继电器吸合
4.代码
1)初始化无关设备
void InitSystem(