第五集
讲解了74HC573运用办法,我在《51单片机温习笔记1(更新)》有记载。这儿略。
讲解了Keil的仿真办法。比较有用的内容是能够用它来测验一段代码所运用的时刻,例如延时函数,在需求准确延时又不想运用定时器的时分能够运用该办法。至于其他的,个人认为仍是直接下载到单片机中调查实际情况会比较直观。
第六集
51最小体系
复位原理:
51单片机是高电平脉冲复位,在RST引脚。复位脉冲的高电平宽度有必要大于2个机器周期。为了便利核算,咱们假定晶振频率为12M,那么它的时钟周期为1/12us(微秒)。它的一个机器周期是12*(1/12)=1us(微秒)。复位脉冲高电平宽度有必要大于2个机器周期即2us,那么就要确保RST引脚高电平的时刻大于2us单片机即可主动复位。
上电复位:
当通电时,开关是断开的,那么电流从VCC→电容→RST、R32→GND。刚上电的时分,电容开端充电,充溢电后相当于断路,在电容充电到充溢的过程中电压逐步从高到低(从5V到0V)。也便是说一上电,RST端得到便是高电平,当这个时刻超越2us时单片机复位,电容快充溢到充溢后RST得到是低电平,电源不断那么RST就一向是低电平而不会一向复位。RST高电平继续的时刻取决于电容充电时刻.。(这个电容要取多大?怎样核算的?)
手动复位:
通电之后,RST会主动复位一次,当单片机在运转的过程中咱们需求它复位时能够断电使之上电复位。或许按下SW0开关也能完成复位。当SW0开关按下时电流从VCC→R33→RST、R32→GND构成回路。为便利核算R33假定为300欧即0.3K,咱们能够先核算R33得到的电压是5V*(0.3k/(4.7k+0.3k))=0.3VR32得到的电压为5V*(4.7k/(4.7k+0.3k))=4.7VRST端的电压也为4.7V,那么4.7关于单片机来说也算高电平,当按下手动按下SW按钮到松开必定超越2us,所以单片机主动复位。
晶振电路:
两个%&&&&&%一定要持平,取值规模为20-50pf越大发动越慢。
自己建立最小体系要注意的当地:
EA引脚一定要接高电平即VCC,这是最简单疏忽的。这个引脚是用来挑选是用片内存储器仍是用片外存储器。51内部存储器一般都够咱们运用。在曾经的单片机需求外扩存储器。咱们烧录的程序便是存在片内存储器。
要将P0组引脚当一般IO用时,需求接10K的上拉电阻。P1-P3里边都有上啦电阻。
1做地址/数据总线时和做输入I/O口时,p0口不必接上拉电阻。
2但作为输出I/O口时,p0口有必要要接上拉电阻才能够。
P0口是集电极开路输出,也便是OC门,这种结构没有输出高电平的才能就相当于一个一端接地的开关,按下去就输出低电平0V,断开就没有电压,是悬空状况。
至于用不必上拉电阻,取决于外部电路,假如要输出高电平控制一个器材,而这个器材自身又没有内置上拉,就有必要自己接一个上拉电阻,假如要用低电平控制一个器材,则能够不必加上拉。
第七集
一、流水灯的规划
流水灯便是让八个小Led的顺次亮灭。先看看流水灯的电路图。
这是我的试验板的流水灯电路图。其间74HC573的D输入引脚DB1—DB8接在单片机的P1组引脚。74HC573的LE接在P2.5引脚。
程序规划思路:
我试验板上有8个Led灯,正极接在VCC,负极接在单片机的P1引脚(这儿不运用74HC573锁存功用所以LE一向保存高电平,相当于Led直接接在单片机的IO口)。要让Led灯亮只需求把对应的端口设为低电平,那么Led灯亮。顺次让P1的八个引脚给凹凸电平那么Led灯也会跟着暗亮。因为51单片机履行的速度很快,所以Led灯的闪耀速度也会很快,咱们肉眼无法看到,所以要在电平切换时恰当的延时一下。
流水灯的程序规划有许多种办法,如按方位位、数组、函数_cror_()_crol()等,我原本我是比较喜爱用函数的办法,但后来看了一下AVR的,形似用的最多的是与、或、非、异或这些运算符来控制IO口,所以我就用这种方法吧,练熟一些便利今后学习。
#include”reg52.h”
#defineucharunsignedchar
#defineuintunsignedint
//用来延时
voiddelay(ucharx)
{
uinty;
for(;x>0;x–)
for(y=500;y>0;y–);
}
voidmain()
{
ucharTmp;
uchari;
while(1)
{
Tmp=0xFE;//在流之前先让第一个灯亮11111110
for(i=0;i<8;i++)
{
P1=Tmp;
Tmp=Tmp<<1;//左移动一位0xFE=11111110<<1=11111100
Tmp=Tmp|0x01;//将最终一方位111111100|00000001=11111101
delay(100); //让灯亮一段时刻
}
}
}