本帖最后由 可爱的国务小胖 于 2020-8-12 09:45 编辑
单片机是什么? 在学之前必须要明白这个东西是什么,怎么用,为什么能这样用。理解这三个问题,那么51单片机就可以学得很好。 单片机的对比 这里只对8051与8052进行对比: 型号 Flash(ROM) RAM I/O 定时/计数器 中断源 引脚数 AT89C51 4KB 128B 32 2 5 40 AT89c52 8KB 256B 32 3 8 40 引脚描述
20引脚VSS:电源负极 40引脚VCC:电源正极(+5V) 19引脚XTAL1:片内时钟振荡器的输入端;当使用片内时钟振荡器时,这个引脚接石英晶体和微调电容。 18引脚XTAL2:片内时钟振荡器的输出端;当使用片内时钟振荡器时,这个引脚接石英晶体和微调电容。 9引脚RST:复位信号输入端;高电平有效(无效状态电平必须低于0.5V)。 31引脚EA/Vpp: EA=1,访问片内程序存储器,但在PC(程序计数器)值 超过0FFFH时,即超出片内程序存储器的4K字节地址范围时,将自动转向执行外部程序存储器内的程序。 EA=0,单片机只访问外部程序存储器 Vpp:对片内Flash进行编程时,该引脚接入编程电压。 通常情况下,将此引脚与VCC接在一起。 30引脚ALE/PROG: ALE:地址锁存控制信号端。不访问外部ROM与RAM时不使用。 PROG:为编程脉冲输入端。 29引脚PSEN:片外程序存储器的选通信号,低电平有效。 以下为I/O端口: P0: 第一功能:8位,漏极开路的双向I/O口。用时要加上拉电阻。 第二功能:低8位地址线和8位数据线分时复用;此时为真正的双向三态口。 电源时钟,晶振电路 1、内部时钟方式
1.起振电容C1和C2典型值15~33pF,通常选择为30pF的瓷片电容。 2.晶体的振荡频率一般为12MHz(方便定时计算)和 11.0592MHz(方便串口波特率设置)。 3.晶体和电容尽量安装得与单片机靠近。 2、外部时钟方式
这种方式常用于多片单片机同时工作。 时序 1、时钟周期: 单片机的基本时间单位。若时钟的晶体的振荡频率为fosc,则时钟周期Tosc=1/fosc。 2、机器周期:CPU完成一个基本操作所需的时间称为机器周期。 AT89S51单片机每12个时钟周期为1个机器周期。 通常,一条指令的执行要分为好几个基本操作,每个基本操作耗时一个机器周期。 3、指令周期:指令周期是执行一条指令所需的时间。 单片机的指令按字节可分为单字节(1个机器周期)、双字节(2个机器周期)、三字节指令(3个机器周期),乘法、除法指令需要(4个机器周期),因此执行一条指令的时间也不相同。 时钟周期==1/fosc ; 机器周期=12*时钟周期 ; 指令周期=1~4机器周期。当使用12M晶振,执行单字节指令的时间 t=12*(1/fosc)=12*(1/12M)=1us。 复位电路 上电自动复位电路:引脚RST加上大于2个机器周期的高电平(2us)就可使单片机复位。
1.工程上通常认为t=3rc~5rc,充放电结束。 2.先确定复位时间t,然后根据条件确定rc。 最小系统 复位电路的探讨: 若采用上图制作复位电路,使上电延迟100ms复位,选择10K电阻,则计算出电容为109mF,选择100mF。典型值通常选取,10K与10uF,则上电复位时间为:51ms 晶振电路的探讨: 上面已经说了… I/O口的探讨:“灌电流”:由外设向单片机引脚灌入电流,此时单片机输出低电平;“拉电流”:由单片机引脚向外设输出电流,此时单片机输出高电平;P0口的灌电流最大电流可达26mA,其他I/O稍弱些。而拉电流比较差,大概在1mA。所以通常是以低电平点亮LED灯。P0口用做通用I/O时,需加上拉电阻(1~10K),否则P0口作地址 / 数据总线。
|