0x00 前言
6月份实验室考核,考核的内容我也不知道(估计是 51,c,加点电分,或者数据结构?不知道),虽然是一些入门的东西,不过为了万无一失(谁也不敢说会不会出一些犄角旮旯的东西),还是从头捋一遍。(菜鸡瑟瑟发抖),先51看一下吧。我就拿
普中-51-A3的举例了
0x01 最小系统板:
1.电源电路 2.复位电路 3.时钟电路 4.下载电路
MCU
4个广角,P0 P1 P2 P3 对应就行。
复位
RST 网络标号 跟上述单片机的9脚相连,
1)当按键按下后,电源会经过按键,接入RST引脚进行复位(51单片机是进行高电频复位)
2)不按的化,通过R与电容组成的RC充放电电路,进行复位
晶振电路
可以看出来是采用12兆晶振,两边c12 c13电容,接在单片机的18 19 脚。
电源电路 && 下载电路
通过下面的usb接口,接入电源,经过滤波电容进行滤波(图中红框处),紧接这连接D5V的开关,送到VCC,之后各部分才有电,当没有按下开关时,这个DIN5VS(5伏)只是和 CH340 这个芯片来识别串口,并没有供电
P5短接板
CH340用的也是12兆晶振
下载时就利用RTS 和DTR高低电频的变化,进行下载复位(STM就需要人为了)
注意:CH340的位置一定要接地,不然会发烫。
0x02 LED
1.定义:LED,即发光二极管,是一种半导体固体发光器件。(写上吧,万一考呢)
2.LED的工作原理。 LED的符号为: LED的工作是有方向性的,只有当正级接到LED阳极,负极接到LED的阴极的时候才能工作,如果反接LED是不能正常工作的。
3.原理图
正入负出,所以阳极都接到了VCC(高电平)上,阴极串联一个电阻接到了P2口,所以点亮的话把对应的P2口拉低就行。
流水:
#include <REGX51.H>
#include <intrins.h>
typedef unsigned char u8;
typedef unsigned int u16;
void delay(u16 i)
{
while(i--);//ͨ¹ýËÀÑ»·Õ¼ÓÃcpuÔËËãʱ¼äÀ´ÑÓʱ
}
void LED_WATER()
{
int i;
for (i = 0 ; i < 7; i++)
{
P2 = ~(0x01 << i);
delay(25000);
}
for (i = 0 ; i < 7; i++)
{
P2 = ~(0x80 >> i);
delay(25000);
}
}
void main()
{
P2 = ~(0x01);
delay(25000);
while(1)
{
LED_WATER();
}
}
(下面的代码只写关键部分)
0x03 蜂鸣器
有电路板的是无源蜂鸣器,没有电路板的是有缘蜂鸣器(用黑胶封闭)
有源:在IO里输出一个电平就行 无源:电平 + 一定频率脉冲
电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。 多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。
声音
改变单片机引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。
大小
改变输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。、
原理图
可以看到蜂鸣器BEEP接到了ULN2003D上,对应的是P2^5
ULN2003
放大电路,放大驱动电流
(下面是套话)
ULN2003 是高耐压、大电流达林顿陈列,由七个硅NPN 达林顿管组成。 ULN2003是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中。可直接驱动蜂鸣器、继电器等负载 。
代码
sbit bee = P2 ^ 5; //因为是无源,所以要 脉冲+电平
void main()
{
bee = ~bee; //产生脉冲
delay(10);
}
0x04 数码管
(因为是复习,就不分静态和动态了)
显示器&&接口
LED显示器有两种:段显示(7段,米字型等)和点阵显示
LED数码管根据LED的不同接法可分为2类:共阴和共阳。
(A3里没有单个的,这是别人的图)
共阴就是阴极接地,所以要是亮就得输入高电平
共阳就是阳极接vcc,所以要是亮就得输入低电平
共阳极数码管编码表:
unsigned char table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
共阴极数码管编码表:
unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
原理图:
引脚对应着 P0,看一眼P0口:
共阳,低电平有效
注意:P0口是露底开路的&#x