🌈个人主页: 会编程的果子君
💫个人格言:“成为自己未来的主人~”
51开发平台的组成
单片机应用系统(也叫目标系统)
硬件:
用户可以自己设计制作,也可以采用现成的开发板快捷搭建
软件:
用户自己编写,编程器(也叫烧写器)STC的所有51单片机均不需要编程器,通过串口或USB口下载程序
开发工具
硬件
软件
通过集成开发环境(将编辑器,C编译器,软件仿真器软件全部集成在一个软件中)STC-ISP下载软件。
单片机的开发
单片机的开发条件和工作主要包括硬件条件,软件条件,软硬件设计,软硬件仿真,开发系统调试和运作等
51软件开发的大致流程
- 用C语言编写好源程序,(在电脑上的编辑器软件中)
- 将源程序(也叫源代码,源文件)编译成目标程序(也叫目标代码,机器码,目标文件,HEX文件),(调用电脑上的C语言编译器软件)
- 用下载软件将目标程序写入单片机芯片中
- 写入后会自动运行目标程序
- 如果程序运行后不正常,可以用人工检查,软件仿真器,硬件仿真器,串口助手等技术手段排除所编程序中存在的各种错误,错误排除后,再重复上面的3,4
MCS-51单片机的基本特性
- 8位的CPU,片内有振荡器和时针电路,工作频率为1~12MHz
- 片内有128/256字节RAM
- 片内有OK/4K/8K字节,程序存储器ROM
- 21/26个特殊功能寄存器(SFR)4个8位的
- 并行I/O口
- 1个全双工串行口(SIO/UART)
- 2/3个16位定时器/计数器
- 可处理5/6个中断源,两级中断优先级 内置1个布尔处理器和1个布尔累加器
- MCS-51指令集含111条指令(用C语言不需要记指令的)
VCC,GND:正电源端与接地端(+5v/3,3v/2,7v)不同的单片机可以允许不同的工作电压,不同的单片机表现出的功耗也不同
XTAL1,XTAL2:片内震荡电路输入/输出端
通常外接一个晶振,两个电容,也可以由XTAL1端接入外部时钟,此时应将XTAL2接地
CPU总是按照一定的时钟节拍与时序工作
震荡周期/时钟周期:Tc=晶振频率fosc(或外加频率)的倒数
状态周期:Ts=2个时钟周期(Tc)
机器周期:Tm=6个状态周期(Ts)=12个震荡周期(Tc)
指令周期:Ti:执行一条指令所需的机器周期(Tm)数
震荡周期=晶振周期fosc的倒数
一个机器周期=12个震荡周期
1个指令周期=1,2,4个机器周期
RESET:复位端(正脉冲有效,宽度>8 ms)
复位使单片机进入某种确定的初始状态
单片机的引脚
EA端
EA/Vpp:寻址外部ROM控制端/编程电源输入端
低有效,片内无ROM时必须接地
片内有ROM时应当接高电平
对片内ROM编程时编程正电源加到此端
ALE端
ALE/PROG:地址锁存允许/编程脉冲输入端
PO口寻址外部低8位地址时接外部存储器 C端;ALE端平时会输出周期正脉冲,F=FOSC/6,对片内ROM编程时编程脉冲由此端输入
如何通过I/O口输出电平信号
- 单片机和外部设备的交互,无论输入还是输出,都是通过I/O口进行的
- I/O口在进行数据的输入输出之前,必须先设置IO模式
- IT单片机所有I/O口均可通过对PnM1,PnM0这两个控制寄存器配置成4种工作类型之一,4中工作类型分别为:准双向口(标准8 0 5 1 输出模式,输入输出时有弱上拉),推挽输出(也称强输出),仅为输入(也是输出高阻)或开漏输出,上电复位后为准双向口(传统8051的I/O口)模式
- 注意,传统8051的I/O口输出不需要设置,输入时要给写1