单片机总复习-2011下.ppt_第1页
单片机总复习-2011下.ppt_第2页
单片机总复习-2011下.ppt_第3页
单片机总复习-2011下.ppt_第4页
单片机总复习-2011下.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理与应用技术总复习 2011 12 20 杭州电子科技大学HangzhouDianziUniversity 基本内容 一 单片机的概述二 MCS 51单片机的结构和原理三 MCS 51单片机指令系统四 汇编语言程序设计五 C51程序设计基础六 MCS 51单片机内部资源与编程七 单片机系统扩展八 单片机功能扩展 杭州电子科技大学HangzhouDianziUniversity 杭州电子科技大学HangzhouDianziUniversity 一 单片机概述 单片机概念单片微型计算机单片机基本构成 CPU RAM ROM I O 其他辅助模块特点 体积小 功耗低软硬结合 易于组成各种应用系统 在线控制可靠性高应用广泛等单片机的发展趋势 高性能化大容量内装化应用领域工业测控系统智能仪器仪表信息通信智能接口家电军事装备等 杭州电子科技大学HangzhouDianziUniversity 二 MCS 51单片机的结构和原理 CPU 8位的中央处理单元 完成运算和控制功能内部数据存储器 RAM 低128B 基本RAM区 按用途分三个区 通用寄存器区 位寻址区 堆栈 用户数据区 各区地址与主要用途 高128B 特殊功能寄存器区 分布21个可寻址SFR PC PSW A SP PC P0 P3功能与复位状态内部程序存储器ROM 与外部ROM总计64KB EA引脚作用 EA 0 只访问外部存储器 51子系列4KB 52子系列8KB 2个16位定时器 计数器具有定时 计数功能4个并行I O端口P0 P1 P2 P3均有I O功能 P0需外接上拉电阻 注意读引脚操作 P2 P3的第二功能总线扩展地址总线 AB P0P2 16 数据总线 DB P0 8 控制总线 CB ALE PSEN EA WR RD功能 杭州电子科技大学HangzhouDianziUniversity 串行口 RXD TXD全双工串行口串口数据传送方式与特点 波特率定义 如何确定 中断控制系统51系列5个中断源入口地址 0003H 0023H共五个中断控制时钟电路与时序振荡器周期机器周期指令周期 二 MCS 51单片机的结构和原理 杭州电子科技大学HangzhouDianziUniversity 三 MCS 51单片机指令系统 指令系统 机器指令集 以助记符表示的计算机指令称汇编语言 7种寻址方式 确定操作数单元地址的方式 特点 及寻址范围常用指令数据类传送MOVMOVCMOVXSWAPPOPPUSH运算类ADDADDCADSUBBDIVMUL逻辑运算ANLORLXRLCPLRRRRCRLRLC控制类DJNZCJNEJZJNZSJMPLJMPACALLLCALLRETRETI位操作MOVSETBCLRJCJNCJBJNBJBC 杭州电子科技大学HangzhouDianziUniversity 四 汇编语言程序设计 数据传送 内存 内存 内存 外存数制转换 十六进码 BCD码 ASCII码组字拆字 BCD个位 十位拆字组字软件定时 通过CPU执行指令而实现定时 定时时间 执行指令数 T运算程序 加 减查表程序 MOVC查找LED字形码或其他数表关键字查找 CJNE XRL位操作程序 SETB CLR 杭州电子科技大学HangzhouDianziUniversity 四 程序设计 例 把内部RAM中起始地址为data的数据串传送到外部RAM以buffer为首地址的区域 直到发现 24H 字符的ASCII码为止 同时规定数据串的最大长度为16个字节 程序设计 SUB1 MOVR0 data 内部RAM首址MOVDPTR buffer 外部RAM首址MOVR1 10H 字节数LOOP MOVA R0CJNEA 24H LOOP1 是否为 SLMPBACKLOOP1 MOVX DPTR AINCR0INCDPTRDJNZR1 LOOP 是否送完32字节BACK RET 四 程序设计 例 软件定时程序设计 杭州电子科技大学HangzhouDianziUniversity 四 程序设计 例 查表程序设计 将存于10H中的数据用共阳LED显示 源程序1 使用MOVCA A DPTRORG0100HDisplay MOVA 10HMOVDPTR ledtabMOVCA A DPTRMOVP1 ASETBP3 0 高电平有效 共阳 RETLedtab 0C0H 0F9H 0A4H 0B0H 99H 0 492H 82H 0F8H 80H 90H 5 9 杭州电子科技大学HangzhouDianziUniversity 五 C51程序设计基础 1 C51变量定义格式C语言 存储属性 数据类型变量名表keilC 存储属性 数据类型 存储类型 变量名表1 存储类型 确定变量存储区 杭州电子科技大学HangzhouDianziUniversity 杭州电子科技大学HangzhouDianziUniversity 2 数据类型 确定存储单元长度 五 C51程序设计基础 2 单片机特殊功能寄存器的C51定义 1 sfr 声明字节寻址的特殊功能寄存器 2 sfr16 该关键字对于一些8051派生系列单片机 可以声明其内两个连续地址的特殊功能寄存器 SFR 3 sbit 声明可位寻址的特殊功能寄存器标志位 杭州电子科技大学HangzhouDianziUniversity 五 C51程序设计 杭州电子科技大学HangzhouDianziUniversity 例1 延时程序voiddelay unsignedintx unsignedcharj while x for j 0 j 125 j fosc 12MHz T 1us 五 C51程序设计 例2 对共阳LED循环显示0 9 设段控线 位控线均采用同相驱动 includeunsignedcharcodeled 10 0 xc0 0 xf9 0 xa4 0 xb0 0 x99 0 x92 0 x82 0 xf8 0 x80 0 x90 unsignedintx x 0 9 sfrsegcon P1 sbitbitcon P2 0 main while 1 for x 0 x 9 x segcon led x bitcon 1 共阳LED delay 延时 杭州电子科技大学HangzhouDianziUniversity 杭州电子科技大学HangzhouDianziUniversity 六 单片机内部资源及编程 1 中断系统中断 CPU暂停当前程序 转向中断处理程序 结束转回中断响应及响应条件中断入口地址中断响应优先级同级响应顺序中断嵌套中断服务程序设计C51中断服务程序与普通C函数的区别 杭州电子科技大学HangzhouDianziUniversity 2 五个中断源 六 单片机内部资源及编程 3 中断控制寄存器 返回本节首页 杭州电子科技大学HangzhouDianziUniversity 4个控制寄存器 定时器控制寄存器TCON 中断允许控制寄存器IE 中断优先控制寄存器IP 串行口控制寄存器SCON 中断控制 提供给用户使用的中断控制手段 六 单片机内部资源及编程 4 Cx51中断程序设计 1 中断函数定义Void函数名 void interrupt中断号using寄存器组例 voidint1 void interrupt2using1 外部中断1 INT1 中断函数 使用寄存器组1 2 函数设计规则中断函数不能进行参数传递 形参为 void 中断函数没有返回值 返回值为void中断号参考8x51定义中断函数中调用其它函数时 被调用函数用不同寄存器组中断函数不能直接调用 返回本节首页 杭州电子科技大学HangzhouDianziUniversity 杭州电子科技大学HangzhouDianziUniversity 六 单片机内部资源及编程 5 外部中断程序设计6 定时器 计数器功能 计数 定时4种工作方式 TMOD设置 初值计算 初值重置方式程序设计 中断方式 查询方式 杭州电子科技大学HangzhouDianziUniversity 例 设MCS 51单片机系统时钟频率fosc为12MHz 要求利用定时 计数器T0在P1 0引脚上输出周期为4ms 占空比为50 的方波 用查询方式定时 主程序 方式1 1 T0工作方式的设定 选择方式1 16位方式 TMOD 01H fosc 12MHz 最大定时65 5ms 2 定时常数的设定 TC 216 2000 2 s 0F830HTH0 0F8H TL0 30H 3 中断管理 中断禁止IE 00000000B 00H或 CLREA CLRET04 启动定时器T0 SETBTR05 查询 TF0 1则 CPLP1 0CLRTF0 软件复位 汇编源程序如下 ORG0000HLJMPMAINORG0030HMAIN MOVTMOD 01HMOVIE 00HSETBTR0LOOP JBCTF0 NEXTLJMPLOOPNEXT MOVTH0 0F8HMOVTL0 30HCPLP1 0LJMPLOOPEND 杭州电子科技大学HangzhouDianziUniversity 查询方式C语言程序 includesbitP1 0 P1 0 voidmain void TMOD 0 x01 定时器 计数器0工作在定时器方式1 TR0 1 启动定时器 计数器0 while 1 TH0 65536 2000 256 预置计数初值 TL0 65536 2000 256 while TF0 0 查询等待TF0置位 P1 0 P1 0 定时时间到P1 0反相 TF0 0 软件清TF0 杭州电子科技大学HangzhouDianziUniversity 习题6 10已知振荡频率为6MHz 用定时 计数器T0 实现从P2 0产生周期为1s的方波 占空比30 的波形 要求分别用汇编语言和C语言编程实现 2 确定定时时间及波形实现 取定时时间为100ms 则周期1s需要定时次数为10次 占空比为30 高电平需要定时3次 3 计算100ms定时初值 X 216 6 12 100000 65536 50000 15536 3CB0HTH0 3CH TL0 0B0H 216 0 12 6 131 072ms 解 1 确定定时 计数器工作方式使用定时 计数器T0 方式1TMOD 01H 对于6MHz晶振 选用工作方式1 最大定时时间为 杭州电子科技大学HangzhouDianziUniversity 习题6 10C语言程序 中断定时方法 include defineucharunsignedcharuchartime 0 中断计数器 ucharperiod 10 周期计数 ucharhigh 3 高电平计数 sbitP2 0 P2 0 main TMOD 0 x01 定时器 计数器0工作于方式1 TH0 0 x3C 预置计数初值 TL0 0 xB0 EA 1 开CPU中断 ET0 1 开定时器 计数器0中断 TR0 1 启动定时器 计数器0 P2 0 1 while 1 timer1 interrupt1using0 定时器 计数器0中断服务程序 TH0 0 x3C 重置计数初值 TL0 0 xB0 if time high P2 0 0 高电平时间到变低 elseif time period 周期时间到变高 time 0 P2 0 1 杭州电子科技大学HangzhouDianziUniversity 习题6 10汇编程序 ORG0000HLJMPMAINORG000BHAJMPSER T0ORG0100HMAIN MOVTMOD 01H 写入方式控制字MOVTH0 3CH 写入计数初值MOVTL0 0B0HMOVR7 00H 中断次数初值SETBP2 0SETBEA 开总中断SETBET0 开T1中断SETBTR0 启动T1SJMP 等待中断SER T1 MOVTH0 3CH 重写计数初值MOVTL0 0B0HINCR7 中断次数加1CJNER7 3 LOOP1CLRP2 0 中断次数到3次即高电平时间到P1 0输出0AJMPLOOPLOOP1 CJNER7 10 LOOPSETBP2 0 中断次数到10次即周期到P1 0输出1MOVR7 00HLOOP RETIEND 杭州电子科技大学HangzhouDianziUniversity 3 串行通信及其接口 串行传输按位顺序传送数据串行传输数据通路形式 单工 半双工 全双工分异步 同步距离远 数据线少 异步传送数据帧格式 起始位 数据位 校验位 停止位串行口的4种工作方式适用范围波特率选择 方式0 2固定 方式1 3通过T1溢出率调节不同方式帧格式程序设计 查询方式 中断方式 六 单片机内部资源及编程 解 1 电路原理图设计 近距离全双工双机通信电路如下图2 通信系统设计 设定系统晶振为12MHz设定串行数据通信波特率为1200bps串行通信工作方式为方式1 则甲机SCON 40H 乙机SCON 50H T1作为波特率发生器 选用工作方式2 SMOD 0 则T1计数初值 256 26 230 E6H 习题6 19用汇编语言或C语言实现一个双机通信系统 将甲机的片内RAM中30H 3FH的数据块 传送到乙机片外RAM中0030H 003FH中 并画出电路图 甲机对应的C语言发送程序如下 include include defineADDRADBYTE 0 x30 定义数据缓存首址 defineucharunsignedcharucharnum 0 声明计数变量 uchar p 定义p为指针 voidmain void 主程序 SCON 0 x40 置串行口工作方式1 TMOD 0 x20 定时器1为工作方式2 PCON 0 x00 SMOD 0 TL1 0 xe8 置计数初值 TH1 0 xe8 计数重装值 TR1 1 启动定时器1 EA 1 开中断 ES 1 串行口开中断 p 等待中断 voidSer T1A void interrupt4 中断号4是串行中断 TI 0 清发送中断标志 if num 0 x0F ES 0 判断是否发送完 若已完 则关中断 else 否则 修改指针 发送下一个数据 num 计数变量加1 p SBUF p 乙机对应的C语言程序如下 include include defineADDRBXBYTE 0 x0030 定义数据缓存 defineucharunsignedcharucharnum 0 声明计数变量 ucharxdata p 定义p为指针 voidmain void 主程序 SCON 0 x50 置串行口工作方式1 允许接收 TMOD 0 x20 定时器1为工作方式2 PCON 0 x00 SMOD 0 TL1 0 xe8 置计数初值 TH1 0 xe8 计数重装值 TR1 1 启动定时器1 EA 1 开中断 ES 1 串行口开中断 p 0 x0030 直接设置接收数据缓冲器区指针 while 1 等待中断 voidSer T1B void interrupt4 中断号4是串行中断 RI 0 清接收中断标志 num 计数变量加1 if num 16 ES 0 判断是否接收完 若已完 则关中断 else 否则 接收数据 修改指针 p SBUF p 杭州电子科技大学HangzhouDianziUniversity MCS 51系统扩展总线数据总线 P0地址总线 P2P0控制总线 ALEPSENRDWREA存储器扩展扩展能力 16位地址线 寻址范围64KB编址技术ROM与片外RAM独立编址 寻址空间为64KB 空间重叠 不会冲突原因片外RAM与I O扩展统一编址 总寻址空间为64KB地址译码 线选法 译码法 七 单片机系统扩展 杭州电子科技大学HangzhouDianziUniversity 简单I O扩展输入 接口电路 控制信号RD 操作指令MOVA DPTR输出 接口电路 控制信号WR 操作指令MOV DPTR A可编程接口8255组成与功能 3个数据口 1个控制口 可编程输入输出 七 单片机系统扩展 杭州电子科技大学HangzhouDianziUniversity 8255A的逻辑结构和信号引脚 1 与CPU连接部分 2 与外设接口部分 数据总线DB D0 D7 8位A B C3个可编程I O口地址总线AB A0 A1 选择端口 3 控制器控制总线CB CS RST WR RD控制可编程I O工作方式 杭州电子科技大学HangzhouDianziUniversity 八 MCS 51单片机功能扩展 键盘接口及其应用独立式按键 机械式按键键码识别流程及编程行列式按键 扫描法键码识别流程 LED接口及其应用共阴 共阳LED及其字形码静态显示动态显示电路设计显示程序流程图设计 杭州电子科技大学HangzhouDianziUniversity 上拉按键扫描C51示例程序if P1 0 0 第一次检测到按键信息Delay 延时20ms左右 消除抖动if P1 0 0 第二次检测到按键信息 执行按键功能while P1 0 0 等待按键释放 P1 0 LED静态显示方式接口电路段控线 段选线 每位LED段控线由独立的I O控制 位控线 位选线 公共端 常接GND 共阴 或Vcc 共阳 显示驱动位驱动 静态 全显 接GND 共阴 或Vcc 共阳 段驱动 驱动电路的驱动能力与LED显示器的工作电流匹配 例用74LS373驱动 Iol 8mA Ioh 0 4mA 应选共阳极LED 程序设计 仅控制段控口 字型口 杭州电子科技大学HangzhouDianziUniversity 八 MCS 51单片机功能扩展 LED动态显示方式接口电路段控线 段选线 段控线由统一的驱动控制 位控线 位选线 公共端 动态扫描 显示驱动段驱动器 驱动电路的驱动能力与LED显示器的工作电流匹配 位驱动 提供的位驱动电流应约等于段控电流之和 程序设计 同时控制字型口与位选线 且位选线需动态扫描 八 MCS 51单片机功能扩展 LED静态显示方式用2位共阳LED显示器 显示x数据 includeunsignedcharcodeled num 10 0 xc0 0 xf9 0 xa4 0 xb0 0 x99 0 x92 0 x82 0 xf8 0 x80 0 x90 voiddisplay unsignedcharx 2位led静态显示函数 P1 led num x 10 十位P2 led num x 10 个位 杭州电子科技大学HangzhouDianziUniversity LED动态显示方式用2位共阳LED显示器 显示x数据 includeunsignedcharcodeled num 10 0 xc0 0 xf9 0 xa4 0 xb0 0 x99 0 x92 0 x82 0 xf8 0 x80 0 x90 共阳字形码sbitP2 0 P2 0 sbitP2 1 P2 1 voiddelay unsignedinti for j 0 j 1000 j voiddisplay unsignedcharx 2位led动态显示函数 P2 杭州电子科技大学HangzhouDianziUniversity 杭州电子科技大学HangzhouDianziUniversity D A转换转换原理 数字量 模拟电流 模拟电流

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论