51系列单片机第1章单片机入门什么是单片机?•CPU、内存ROM、内存RAM、并行接口电路、串行接口电路、中断控制器、定时器集成在一个芯片上•作为嵌入式系统的一个核心部件•内部资源非常有限,需要节约使用•如果内部资源不够用,可以选用更高级的单片机产品类型,但一般不需要考虑外部扩展51系列单片机芯片简介•生产厂家很多,同类产品型号也很多•封装样式–双列直插式(DIP),40引脚(实验用)–QFP,44引脚(工程用)•P0、P1、P2、P3共4个8位数据端口51系列单片机外部引脚结构12345678910111213141516171819204039383736353433323130292827262524232221P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDP3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDXTAL2XTAL1VSSVCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VPPALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.080C51/89C5151系列单片机最小系统Y112MHzC915PC810uFS1SW-PBALEWRRDRXDTXDINT0EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10VCC40GND2089S52VCCPSENP10P11P12P13P14P15P16P17T0T1INT1P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P27VCCR610KR4100R510KC1015PX1X2单片机时钟电路Y112MHzC915PALEWRRDRXDTXDINT0EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10VCC40GND2089S52VCCPSENP10P11P12P13P14P15P16P17T0T1INT1P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P27C1015PX1X2单片机复位电路C9C810uFS1ALEWRRDRXDTXDINT0EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10VCC40GND2089S52VCCPSENP10P11P12P13P14P15P16P17T0T1INT1P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P27VCCR610KR4100R510K51系列单片机的内部资源•至少4KBFlashROM•至少128字节RAM•至少2个定时器通道•至少2级中断•同为51系列单片机,不同型号的内部资源会有显著不同单片机开发板HOT51简介HOT-51开发板实体图单片机开发板HOT51的通信接口USB接口异步通信接口单片机开发板HOT51的USB接口USB接口选择跳线单片机开发板与上位机的连接接向上位机注意跳线单片机开发板与上位机的连接•上位机可以是PC或笔记本,PC上面通常有多个USB端口,每个USB映射到一个COM端口(大多数笔记本计算机已取消了COM端口),开发板上通过PL2303实现转换•USB端口既提供串行通信,又提供电源J24如果开发板连接到上位机的USB端口,跳线应该接到J24中下端(默认)USB映射COM端口的查看与选择先连接开发板到USB端口中,然后查看设备管理器,确认使用了哪个COM端口Windows检测到USB端口连接设备之后,设备管理器才把USB映射到一个COM端口目标程序下载到单片机根据开发板连接到哪一个USB端口,决定COM端口的选择创建一个新的项目•51系列包括选择目标设备这是我们当前使用的MCU类型注意观察当前选用的MCU的结构组成描述要不要拷贝标准启动代码?一般来说是没有必要的现在已经创建了一个新的项目一般来说启动代码是没有必要的添加新的程序文件程序文件与项目文件最好在一起创建并且保存程序文件C语言代码程序文件添加到项目右击这里单击这里程序文件添加到项目之后单击Close按钮编译程序文件这就意味着程序没错设置必要的选项这样设置,写程序方便些自动缩进设置晶振频率•本机学习板的晶振频率为11.0592MHz晶振频率创建HEX文件设置调试方式•Simulator——在PC机上仿真运行这才是真正的在单片机上运行程序下载步骤1.选择单片机型号(STC90C516RD+)2.选择要下载的HEX(打开程序文件)3.如果用PL2303,接USB线;如果用MAX232,接串口线(注意跳线J24)4.选择端口(COM1~COM16)5.单片机断电,然后按“Download/下载”6.单片机加电,执行下载操作并运行程序HOT-51开发板程序下载1.选择单片机型号(STC90C516RD+)HOT-51开发板程序下载2.选择要下载的HEX(打开程序文件)下载接口线的选择与跳线连接(串口)RS-232接口下载接口线的选择与跳线连接(USB)USB接口HOT-51开发板程序下载4.选择端口(COM1~COM16)单片机断电,然后按“Download/下载”按“Download/下载”之后MCU加电之后添加程序文件保存程序文件程序文件添加到项目程序文件添加到项目之后执行Close51系列单片机主要特点•8位CPU•片内带128字节数据存储器,4KB程序存储器•程序存储器寻址空间64KB•128个用户位寻址空间•21个字节特殊功能寄存器•4个8位并行I/O接口•2个16位定时器/计数器•2个优先级别的5个中断源•1个全双工串行接口2.2MCS-51单片机的结构原理MCS-51内部结构运算部件•ALU•累加器ACC•B寄存器•暂存器•标志寄存器PSW•实现算术运算、逻辑运算、位运算、数据传输B寄存器•辅助寄存器,为乘除法指令而设置•乘法运算前,累加器A和寄存器B存放乘数和被乘数•运算后,寄存器B和累加器A存放结果•除法运算前,累加器A和寄存器B存入被除数和除数•运算后,存放商和余数标志寄存器PSW•C进位•AC辅助进位•F0用户标志位•RS1、RS0寄存器组选择位•OV溢出标志位•P奇偶标志位(当1的个数为奇数时,P置位)RS1、RS0工作寄存器组选择RS1RS0工作寄存器组000组(00H~07H)011组(08H~0FH)102组(10H~17H)113组(18H~1FH)标志位实例•MOVA,#67H•ADDA,#58H011001110101100010111111+问题:有没有进位?有没有半进位?有没有溢出?1的个数是奇数还是偶数?标志:C=0A=0OV=0P=1控制部件•包括:–定时和控制电路–指令寄存器–指令译码器–程序计数器PC–堆栈指针SP–数据指针DPTR–信息传送控制部件•作用:–产生CPU时序,从ROM中取指令,译码产生控制信号,使各功能部件产生相应的操作2.2.4MCS-51单片机的存储结构•程序存储器——存放程序、固定常数和数据表格•数据存储器——用作工作区及存放数据•程序存储器和数据存储器各有自己的寻址方式、寻址空间和控制系统程序存储器•用于存放单片机的工作程序,在控制器的控制下,依次从程序存储器中取出指令,送到CPU执行•程序计数器PC——用来存放要执行的指令地址,每取出一条指令,内容自动加1,指向下一条要执行的指令程序存储器的地址重叠问题•EA=0选片外存储器•EA=1选片内存储器程序存储器存放表格•查表指令–MOVCA,@A+DPTR–MOVCA,@A+PC03FH106H25BH34FH466H56DH67DH707H87FH96FHA77Hb7CHC39Hd5EHE79HF71Habcdefg程序存储器的7个特殊地址•0000H——系统程序的启动地址(在这里放一条绝对转移指令,转到真正的主程序起始地址)表2.2中断的入口地址中断源入口地址外部中断00003H定时器/计数器0000BH外部中断10013H定时器/计数器1001BH串行通信端口0023H定时器/计数器2(仅52系列)002BH程序存储器空间分配示意图数据存储器•用于存放程序执行时所需的数据工作寄存器组区•共32字节,分成4组,由程序状态寄存器PSW中的RS1、RS0选择•每组8个寄存器,R0~R7RS1RS0工作寄存器组000组(00H~07H)011组(08H~0FH)102组(10H~17H)113组(18H~1FH)位寻址区堆栈区与堆栈指针•安排在2FH以后的数据存储区•主要为子程序调用和中断调用而设立•功能:–保护断点–保护现场•堆栈指针SP–从地址低端向高端延伸–入栈时,SP+1,数据存入–出栈时,按SP指向单元取出数据,SP-1–复位时,SP的初值为7特殊功能寄存器(SFR)•用于控制、管理片内算术逻辑部件、并行接口、串行接口、定时器/计数器、中断等功能模块•地址空间为80H~FFHMCS-51单片机的输入/输出接口P0口的一位结构=1控制=“1”,P0作为地址/数据分时复用总线使用P0口的一位结构=0漏极开路反相反相控制=“0”,P0作为通用I/O接口使用P0口作为通用I/O接口时应注意(1)输出数据时,由于V2截止,输出端为漏极开路,要使“1”信号正常输出,必须外接上拉电阻(2)输入数据前,应先向P0口写“1”,使输出V1、V2均截止P1口的一位结构P2口的一位结构=1P2口的一位结构=0P3口的一位结构第二功能输出时,必须Q=1P3口的第二功能输入/输出引脚•P0——准双向I/O接口,接片外存储器或扩展I/O时,分时复用为低8位地址总线和双向数据总线•P1——准双向I/O接口•P2——准双向I/O接口,接片外存储器或扩展I/O时,作为高8位地址总线•P3——准双向I/O接口,第二功能控制线(1)ALE/PROG(地址锁存允许/编程)•地址锁存信号输出端,每个机器周期内输出两个脉冲•访问片外程序存储器期间,下降沿用于锁存P0输出的低8位地址•不访问片外程序存储器期间,可作为对外输出的时钟脉冲或用于定时控制线(2)PSEN•片外程序存储器读选通信号输出端,低电平有效•从外部程序存储器读取指令或常数期间,每个机器周期该信号有效两次,通过数据总线P0口读回指令或常数•访问片外数据存储器期间,PSEN不出现控制线(3)RST上电复位或掉电保护(4)EA•片外程序存储器选用端•低电平时选用片外程序存储器•高电平时选用片内程序存储器外接晶体引脚2.3.2片外总线结构1.地址总线——16位,寻址范围64KB2.数据总线——8位,P0口提供3.控制总线——第二功能状态下的P3口及RST、EA、ALE、PSEN51单片机的工作方式•复位方式•程序执行方式•单步执行方式•掉电和节电方式•编程和校验方式2.4.1复位方式•RST高电平有效•RST由高电平变为低电平后,PC指针变为0000H复位后内部各寄存器