目录

  • 1 单片机概述
    • 1.1 单片机概述
  • 2 单片机预备知识
    • 2.1 keil4使用教程
    • 2.2 利用Proteus和keil仿真51单片机流水灯
    • 2.3 PROTEUS中文手册
    • 2.4 芯片手册
    • 2.5 KEIL及PROTEUS软件下载
    • 2.6 单片机预备知识
  • 3 单片机结构与原理
    • 3.1 单片机最小系统
    • 3.2 使用Altium Designer绘制单片机最小电路原理图
    • 3.3 电源、晶振和复位电路
    • 3.4 单片机上下拉电阻
    • 3.5 单片机结构与原理
  • 4 C51语言
    • 4.1 4.1二进制、十进制和十六进制
    • 4.2 4.2 C 语言变量类型和范围
    • 4.3 4.3 C 语言基本运算符
    • 4.4 4.4 C 语言 for 循环语句
    • 4.5 4.5 C 语言 while 循环语句
    • 4.6 4.6 C 语言函数的简单介绍
    • 4.7 4.7 单片机延时方法(Keil 软件延时)
    • 4.8 C51语言
  • 5 LED灯实例
    • 5.1 工程仿真实例
    • 5.2 单片机 LED 灯闪烁程序
    • 5.3 单片机 LED 流水灯程序
    • 5.4 LED灯实例
    • 5.5 独立按键控制LED灯
  • 6 数码管/键盘实例
    • 6.1 单片机按键介绍
    • 6.2 单片机按键消抖程序
    • 6.3 单片机矩阵按键的扫描
    • 6.4 键 盘
    • 6.5 点亮数码管
    • 6.6 数码管的显示原理
    • 6.7 数码管实例
  • 7 中断系统
    • 7.1 51单片机中断详解(上)
    • 7.2 51单片机中断详解(中)
    • 7.3 51单片机中断详解(下)
    • 7.4 INT0中断计数实例
    • 7.5 中断系统
  • 8 定时/计数器
    • 8.1 51单片机定时计数器
    • 8.2 TIME0控制LED闪烁
    • 8.3 定时器 计数器
    • 8.4 实例一
    • 8.5 实例二
    • 8.6 实验-用计数器/中断实现 100 以内的按键计数
  • 9 串行通信
    • 9.1 51单片机串口通信
    • 9.2 单片机之间双向通信
    • 9.3 串行通信
  • 10 LCD1602实例
    • 10.1 1602液晶
    • 10.2 1602实验
  • 11 IIC总线技术
    • 11.1 51单片机IIC
    • 11.2 IIC总线实例
    • 11.3 I2C串行总线
  • 12 A/D&D/A转换
    • 12.1 单片机AD和DA
    • 12.2 ADC0808模数转换实例
    • 12.3 DAC0832数模转换实例
    • 12.4 D A 与 A D转换器
单片机最小系统

单片机最小系统[配图][超详细]

为什么称之为单片机最小系统呢?单片机最小系统,也叫做单片机最小应用系统,是指用最少的原件组成单片机可以工作的系统。单片机最小系统的三要素就是电源、晶振、复位电路,如图2-1所示。

图2-1 单片机最小系统电路

这张最小系统的电路图节选自我们的 KST-51 开发板原理图,下面我们就照这张电路图来具体分析最小系统的三要素。

1) 电源

这个很好理解,电子设备都需要供电,就连我们的家用电器(手电筒^_^)也不例外。目前主流单片机的电源分为 5 V 和 3.3 V 这两个标准,当然现在还有对电压要求更低的单片机系统,一般多用在一些特定场合,在学习中我们不做过多的关注。

我们所选用的 STC89C52,它需要 5V 的供电系统,我们的开发板是使用 USB 口输出的 5 V 直流直接供电的。从图2-1可以看到,供电电路在40脚和20脚的位置上,40脚接的是 +5 V,通常也称为 VCC 或 VDD,代表的是电源正极,20脚接的是 GND,代表的是电源的负极。+5 V 和 GND 之间还有个电容,作用我们下面介绍。

这些电容,目的是使电源线和地线之间为低阻抗,电源接近理想电压源。你要说是滤波作用也可以,但需要弄清楚是滤什么波。不是滤电源的纹波,而是某芯片电流发生变化在电源线上造成的纹波,使其不影响其它芯片。
使用0.1uF无极性电容和10uF电解电容并联,是因为电解电容的寄生电感比较大,消除高频纹波能力较差。而无极性电容寄生电感小,滤除高频纹波能力较好。。但若根据低频的要求选择容量,则无极性电容体积太大,成本也高,电解电容体积小,同样容量价格较便宜。故采用两种电容并联。
你自己设计电路,也应该这样使用,而且各电容位置和走线很有讲究。
只能说两句原则:
1)、各小容量的无极性电容两端到芯片的电源引脚和地引脚联接线尽可能短,越短越好。
2)、电源通常由其它电路板引入,电解电容通常每块电路板上只有一个两个。一个电解电容的话,放到电源进入该电路板之处。此时电解电容当然离各芯片较远,但因电解电容主要在较低频率起作用,所以稍远一点没有关系。如果该电路板上用两支电解电容,另一支放到耗电最多的芯片附近。
这些和电路板元件布局、地线的走线安排(多层板通常有地层)都有关系

10MHz以下的噪声0.1μF电容效果好
按C=1/F,即10MHz取0.1μF

简单的说是,将干扰通过电容接地

这个地方我们还要普及一个看原理图的知识。电路原理图是为了表达这个电路的工作原理而存在的,很多器件在绘制的时候更多考虑的是方便原理分析,而不是表达各个器件实际位置。比如原理图中的单片机引脚图,引脚的位置我们是可以随意放的,但是每个引脚上有一个数字标号,这个数字标号代表的才是单片机真正的引脚位置。一般情况下,这种双列直插封装的芯片,左上角是1脚,逆时针旋转引脚号依次增加,一直到右上角是最大脚位,我们现在选用的单片机一共是40个引脚,因此右上角就是40(在表示芯片的方框的内部),如图2-2所示,大家要分清原理图引脚标号和实际引脚位置的区别。

图2-2 单片机封装图

2) 晶振

晶振,又叫晶体振荡器,从这个名字我们就可以看出来,它注定一生都要不停振荡的。

他起到的作用是为单片机系统提供基准时钟信号,类似于我们部队训练时喊口令的人,单片机内部所有的工作都是以这个时钟信号为步调基准来进行工作的。STC89C52 单片机的18脚和19脚是晶振引脚,我们接了一个 11.0592 M 的晶振(它每秒钟振荡11,059,200次),外加两个 20 pF 的电容,电容的作用是帮助晶振起振,并维持振荡信号的稳定。

3) 复位电路

在图2-1左侧是一个复位电路,接到了单片机的9脚 RST(Reset)复位引脚上,这个复位电路如何起作用我们后边再讲,现在着重讲一下复位对单片机的作用。单片机复位一般是3种情况:上电复位、手动复位、程序自动复位。

假如我们的单片机程序有100行,当某一次运行到第50行的时候,突然停电了,这个时候单片机内部有的区域数据会丢失掉,有的区域数据可能还没丢失。那么下次打开设备的时候,我们希望单片机能正常运行,所以上电后,单片机要进行一个内部的初始化过程,这个过程就可以理解为上电复位,上电复位保证单片机每次都从一个固定的相同的状态开始工作。这个过程跟我们打开电脑电源开电脑的过程是一致的。

当我们的程序运行时,如果遭受到意外干扰而导致程序死机,或者程序跑飞的时候,我们就可以按下一个复位按键,让程序重新初始化重新运行,这个过程就叫做手动复位,最典型的就是我们电脑的重启按钮。

当程序死机或者跑飞的时候,我们的单片机往往有一套自动复位机制,比如看门狗,具体应用以后再了解。在这种情况下,如果程序长时间失去响应,单片机看门狗模块会自动复位重启单片机。还有一些情况是我们程序故意重启复位单片机。

电源、晶振、复位构成了单片机最小系统的三要素,也就是说,一个单片机具备了这三个条件,就可以运行我们下载的程序了,其他的比如 LED 小灯、数码管、液晶等设备都是属于单片机的外部设备,即外设。最终完成我们想要的功能就是通过对单片机编程来控制各种各样的外设实现的。