[工学]东北大学检测专业 复试 第一章 C51与单片机

东北大学自动化仪表研究所主讲:王玉涛 主讲:王玉涛 第一章 C51与单片机 课程的目的系统介绍单片机C语言编程 基本方法; 应用技术。蒲公英彩票_[官网首页] 课程的任务 学习单片机硬件接口结构上 以C语言为主要编程工具; 汇编语言为辅助编程工具; 采用模块化编程技术; 独立进行应用程序设计。 第一章 C51与单片机 通过本课程的学习,应该掌握8051单片机的指令系统; 掌握C51程序设计语言; 掌握8051中断、定时器/计数器、串行通信等 内部资源的C编程方法; 正确理解单片机C语言模块化设计汇编、编译 及优化方法; 掌握8051外部扩展资源、输出控制、数据采集 以及人机交互的C程序设计方法。 第一章 C51与单片机 第一章C51与单片机; 第二章 80C51的C语言简介(C51) 第三章C51数据与运算; 第四章 C51流程控制语句 第五章C51构造数据类型; 第六章 C51函数 第七章模块化程序设计; 第八章 80C51内部资源的C编程; 第九章 80C51外部接口的C编程 第一章C51与单片机 课程学时:共48学时其中: 讲课 32学时 实验 16学时 考核办法采取平时和期末考试综合评定成绩 平时成绩不低于总成绩的30% 考试成绩不低于总成绩的70% 第一章 C51与单片机 教材单片机的C语言应用程序设计,马忠梅、籍顺心、张凯、 马岩等,北京航空航天大学出版社 参考书 单片机C程序设计及应用实例,胡伟、季晓衡主编, 人民邮电出版社 单片机高级语言C51Windows 环境编程与应用,徐爱 钧、彭秀华主编,电子工业出版社 单片机应用技术教程,张洪润,易涛主编 清华大学出 MCS-51系列单片机原理及应用,孙涵芳、徐爱卿主编,北京航空航天大学出版社 第一章 C51与单片机 1.11.1 汇编语言与高级语言 汇编语言与高级语言 相关定义 机器语言:用二进制代码表示的能为计算机立即识别和执行的指令。 汇编语言:采用一些简单而又形象的符号来代表操作码或地址码所编写的指令。蒲公英彩票_[官网首页] 源程序:用汇编语言编写的程序称为汇编语言源程序,简称源程序。 目标程序:将汇编语言编写的源程序“翻译”成机器语言的程序,这种经过翻译之后的形成的机器语言程序称 为目标程序。 编译程序:把用高级语言编写的源程序全部翻译成机器语言程序,称为编译程序。 第一章 第一章 C51 C51与单片机 与单片机 第一章 C51与单片机 补充补充 源代码(也称源程序),是指一系列人类可读的计算机语言指令。计算机程序包括 源程序和目标程序。同一程序的源文本和 目标文本应当视为同一作品。蒲公英彩票_[官网首页]源程序是指 用高级语言或汇编语言编写的程序。 源程序具有易读性,规范性,简易性。蒲公英彩票_[官网首页]并 不是所有的程序都是这样。 第一章 C51与单片机 由编译程序将源程序编译成与之等价的由机器码构成的,计算机能直接运行的程序,该程序叫目标程序。 计算机并不能直接地接受和执行用高级语言编写的源程序,源程序在输入计算机时,通过"翻译程序"翻译成机器语言形式的目标程序, 计算机才能识别和执行。蒲公英彩票_[官网首页]这种"翻译"通常有两种方式,即编译方式和 解释方式。编译方式是指利用事先编好的一个称为编译程序的机器 语言程序,作为系统软件存放在计算机内,当用户将高级语言编写 的源程序输入计算机后,编译程序便把源程序整个地翻译成用机器 语言表示的与之等价的目标程序,然后计算机再执行该目标程序, 以完成源程序要处理的运算并取得结果。解释方式是指源程序进入 计算机后,解释程序边扫描边解释,逐句输入逐句翻译,计算机一 句句执行,并不产生目标程序。如PASCAL、FORTRAN、COBOL 等高级语言执行编译方式;BASIC语言则以执行解释方式为主;而 PASCAL、C语言是能书写编译程序的高级程序设计语言。 第一章 C51与单片机 10 编译程序、解释程序、汇编程序是3种语言处理程序。其区别主要为:汇编程序(为低级服务)是将汇编语言 书写的源程序翻译成由机器指令和其他信息组成的目标 程序。解释程序(为高级服务)直接执行源程序或源程 序的内部形式,一般是读一句源程序,翻译一句,执行 一句,不产生目标代码,如BASIC解释程序。编译程序 (为高级服务)是将高级语言书写的源程序翻译成与之 等价的低级语言的目标程序。编译程序与解释程序最大 的区别之一在于前者生成目标代码,而后者不生成;此 外,前者产生的目标代码的执行速度比解释程序的执行 速度要快;后者人机交互好,适于初学者使用。用 COBOL、FORTRAN等语言编写的程序考虑到执行速度 一般都是编译执行。 第一章 C51与单片机 11 一种面向机器的低级程序设计语言。 以助记符形式表示每一条计算机指令。 主要特点: 汇编语言程序与处理器指令系统密切相关; 程序员可直接、有效地控制系统硬件; 形成的可执行文件运行速度快、占用主存容量少。 汇编语言源程序需要利用汇编程序进行“翻译”。 汇编语言程序与汇编程序是两个概念 汇编语言汇编语言 第一章 C51与单片机 12 汇编语言采用助记符 汇编语言采用助记符 助记符(mnemonic)是便于人们记忆、并能描述指令功 能和指令操作数的符号。 助记符一般就是表明指令功能的英语单词或其缩写 用助记符表示的指令就是汇编格式指令 汇编格式指令以及使用它们编写程序的规则就形成汇 编语言(Assembly Language) 用汇编语言书写的程序就是汇编语言程序,或称汇编 语言源程序。 汇编程序将汇编语言程序“汇编”成机器代码目标模 第一章C51与单片机 13 标号:操作码 操作数 ;注释 例如:MOV A,#20H;立即数送A 标号:指令符号地址,以便于在源程序中找到相应的语 句。标号的后面一定要带冒号; 操作码:用记忆符来表示; 操作数:用符号地址,如A或#20H; 注释:分号后面的是注释部分,以说明语句的功能,便于 阅读和交流。 注意: 1.不是每一条指令都需要标号,需要其它语句访问时才 加一个标号。 2.标号由1~8个ASCII字符组成,但头一个字符必须是字 母,其它字符可以是字母、数字或其他特定字符。 3.不能使用本汇编语言已定义的符号作为标号,如指令 助记符、伪指令记忆符以及寄存器的符号名称等。 4.不是每一条语句都需要注释。 第一章 C51与单片机 14 汇编语言 汇编语言和和高级语言 高级语言比较一 比较一 汇编语言与处理器密切相关 汇编语言程序的通用性、可移植性较差 高级语言与具体计算机无关 高级语言程序可以在多种计算机上编译后执行 汇编语言: 汇编语言: 高级语言: 高级语言: 第一章 C51与单片机 15 汇编语言 汇编语言和和高级语言 高级语言比较二 比较二 汇编语言功能有限,又涉及硬件细节 编写程序比较繁琐,调试起来也比较困难高级语言提供了强大的功能,不必关心琐碎问题 类似自然语言的语法,易于掌握和应用 汇编语言: 汇编语言: 高级语言: 高级语言: 第一章 C51与单片机 16 汇编语言 汇编语言和和高级语言 高级语言比较三 比较三 汇编语言本质上就是机器语言 可以直接、有效地控制计算机硬件 易于产生速度快、容量小的高效率目标程序 高级语言不针对具体计算机系统 不易直接控制计算机的各种操作 产生目标程序比较庞大、运行速度较慢 汇编语言: 汇编语言: 高级语言: 高级语言: 第一章 C51与单片机 17 汇编语言 汇编语言和和高级语言 高级语言比较总结 比较总结 汇编语言的优点: 直接控制计算机硬件部件 可以编写在“时间”和“空间”两方面最有效的程序 汇编语言的缺点: 与处理器密切有关 需要熟悉计算机硬件系统、考虑许多细节问题 编写程序繁琐,调试、维护、交流和移植困难 汇编语言:? 汇编语言:? 高级语言:? 高级语言:? 第一章 C51与单片机 18 汇编语言 汇编语言和和高级语言 高级语言比较结论 比较结论 汇编语言的优点使得他在程序设计中占有重要的位置, 是不可被取代的。 汇编语言的缺点使得人们主要采用高级语言进行程序开 发工作。 有时需要采用高级语言和汇编语言混合编程的方法,互 相取长补短,更好地解决实际问题。 混合编程 混合编程 取长补短 取长补短 第一章 C51与单片机 19 汇编语言 汇编语言的主要应用场合 的主要应用场合 程序要具有较快的执行时间,或者只能占用较小的存储 容量。 程序与计算机硬件密切相关,程序要直接、有效地控制 硬件。 大型软件需要提高性能、优化处理的部分。 没有合适的高级语言、或只能采用汇编语言的时候。 分析具体系统尤其是该系统的底层软件、加密解密软件、 分析和防治计算机病毒等等。 汇编语言的用途实在不小 第一章C51与单片机 20 1.2 1.2 单片机的结构特点 单片机的结构特点 单片机是在一块硅片上集成了CPU、RAM、ROM、定时器/计数器和 多种I/O接口电路的微型计算机。 主流单片机:虽然单片机的品种繁多,各具特色,但仍以8051为核心, 8051为核心的单片机占据了半壁江山。 兼容其结构和指令系统有 PHILIPS公司的产品; ATMEL公司的产品; 中国台湾的SyncMos、Winbond系列单片机等。 注8051与80C51: MCS-51系列单片机有两种半导体生产工艺: HMOS:高密度金属氧化物半导体工艺,功耗630mW; CHMOS:互补高密度氧化物半导体工艺,具有高速度、高密度 的特点及CMOS低功耗的特点,功耗120mW。 具有CHMOS工艺的MCS-51系列单片机带有字母“C”,其余为 HMOS工艺。 1.2.1 1.2.1 单片机的发展 单片机的发展 第一章 C51与单片机 21 80C51单片机指MCS-51系列和其它公司的8051派生产 品。这些派生产品是在基本型的基础上增强了各种功能的产 品,如高级语言型、Flash型、EEPROM型、A/D型、DMA 型、多并行口型、专用接口型和双控制器串行通信型等。 Atmel公司的AT89系统单片机把8051内核与其Flash 专利存储技术相结合,具有较高性价比。 Philips公司具有丰富的外围部件,是8051系列单片机 品种最多的生产厂家。 Dallas公司和Infineon公司的单片机增加了数据指针和 运算能力。 ADI公司和TI公司把ADC,DAC和8051内核结合起来, 推出微转换器系统芯片。 Cypress公司把8051内核和USB接口结合起来,推出 USB控制器芯片。 Cygnal公司的片上系统单片机C8051F系列改进了 8051内核,具有JTAG接口,可实现在线下载和调试 程序,是8051最具生命力的体现。 派生 派生 80C51 80C51产品 产品 第一章 C51与单片机 22 1.2 1.2 单片机的结构特点 单片机的结构特点 常用的单片机有 MICROCHIP PIC16C5X系列 Intel MCS-51系列 Philips 80C51XA Intel 8XC251 ATMEL 89系列 Philips 83C552 DALLAS DS80C320 WINBOND W78C31 Philips 87C752 第一章 C51与单片机 23 MICROCHIP PIC16C5X MICROCHIP PIC16C5X系列 系列 PIC16C5X系列单片机是MICROCHIP公司高性价比嵌入式8位单片机, CMOS工艺,其高速度、低电压工作、低功耗、强大驱动能力、低价 OTP技术(一次性编程)、体积小等都体现了单片机工业的新趋势。 采用精简指令集(RISC),仅33条指令。字长12位,全部是单字节指 工作频率为DC--20MHz系统为哈佛结构。数据总线8位,指令总线为12位。 内部程序存储器从0.5K--2K不等。内部寄存器组有25--72个。 7个特殊功能寄存器。 2级子程序堆栈。 工作电源:2.5V--6.25V 内部自振式看门狗(WDT) 低功耗模式(Standby Mode),耗电小于10uA. 内部复位电路 内带一个8位定时器/计数器(RTCC) 具备保密位。保密熔丝可在烧写时熔断,使程序不能被读出拷贝。 提供四种可选振荡方式:RC、XT、HS、LP 12--20根双向可独立编程I/O口。 第一章 C51与单片机 24 Intel Intel MCS MCS--51 51 MCS-51是Intel公司生产的一个单片机系列的名称。属于这一个系列 的单片机芯片有许多种,如8051,8751,80C51BH等等,它们的基本 组成、基本性能和指令系统都是相同的。是目前国内最常用的单片机。 MCS-51单片机的基本组成: 一个8位的微处理器。 片内数据存储器RAM(128B/256B),用以存放可以读/写的数据。 片内程序存储器ROM/EPROM(4KB/8KB),用以存放程序,数据和 表格。 四个8位并行I/O口P0-P3,每个口既可以用作输入,也可以用作输出。 两个定时器/计数器,每个都可以设成对外计数和内定时方式。 五个中断源的中断控制系统。 一个全双工UART(通用异步接收发送器)串行I/O,用于串行通讯。 片内振荡器和时钟产生电路,最高振荡频率达12M。 温度范围为: 民品(商业用A) 70摄氏度工业品 -40 85摄氏度军用品 -65 125摄氏度第一章 C51与单片机 25 Philips 80C51XA Philips 80C51XA Philips Semiconductor 最新推出新一代80C51系列16位 微处理器-----80C51XA与当今广泛使用的80C51系统保持着 源码级的兼容性,用户不用投入很大的软件开销和人员就能 极大提高其产品性能。80C51XA是对原8位微控制基本结构 彻底改进的基础上,使其满足现代设计人员的不同需求的各 种高性能,主要包括: 提高执行速度。比80C51快10--100倍。 支持最新的高级语言,如C语言。 支持实时多任务执行。XA提供系统堆栈和用户堆栈。多任 务彼此隔离。 易于形成派生产品系列。 80C51XA的结构特征: 与标准的8XC51核(汇编源程序级)向后兼容 24位寻址范围(16MB程序代码和数据空间) 第一章 C51与单片机 26 Philips 80C51XA Philips 80C51XA 16位静态CPU 可使用16位字和8位字节的扩展结构 高的程序代码效率,大多数指令为2--4字节 快速的16 16的除法指令16位堆栈指针和通用寄存器 支持32个矢量中断(31个可屏蔽和1个不可屏蔽) 支持16位硬陷阱和16位软陷阱 对多任务的硬件支持 第一章 C51与单片机 27 Intel 8XC251 Intel 8XC251 MCS 251系列单片机是最新的,也是Intel公司8位单片机的最高 系列,它是MCS 51的换代产品,且与MCS 51完全兼容,而且还 吸取16位单片机的许多特点和功能,如:PCA(可编程计数器阵 列)、电源管理、存贮空间管理等,崭新的指令系统使用运行速度 高于51系列5--15倍。 此系列芯片包括以下一些特征参数: 指令流水线方式,寄存器内置于CPU,最短的指令只需1个状态 周期。 线性地址可达64MB。 16KB片内OTP ROM/ROM 128KB外部代码/数据存贮空间(17根地址线)。 1KB片内RAM,且全部可以位寻址。 64KB外部堆栈。 可配置为页模式,以及增加等待状态,扩展ALE脉宽。 扩展指令集,增添许多新指令,可进行8位、16位、32位操作。 芯片内多种外设:3个16位定时器/计数器,1个串口,5个PCA 模块 (含1个软件WDT),1个硬件WDT,7个中断源。 第一章 C51与单片机 28 ATMEL ATMEL 89 89 ATMEL 89系列是以8031核构成,所以和8051系列完全兼 容。它的优点是: 内部含Flash存贮器 和80C51插座兼容 静态时钟方式 错误编程亦无废品 可反复进行系统试验 一、低档型单片机 AT89C1051和AT89C2051,除了并行I/O端口数较少之外, 其它部件基本和AT89C51差不多,因为它的引脚只有DIP20, 所以称它低档型。 第一章 C51与单片机 29 ATMEL ATMEL 89 89 二、标准型单片机 标准型有89C51、89LV51、89C52、89LV52这4种型号。 标准型和MCS51单片兼容的。 内部含有4K或8K可重复编程的Flash存储器; 可进行1000次擦写操作。 全静态工作为0Hz到24Hz; 有3级程序存储器锁定; 内部含128到256字节的RAM; 32条可编程的I/O端口; 有2--3个16位定时/计数器; 有6-8级中断; 有通用串行口; 有空闲及电源下降方式。 第一章 C51与单片机 30 ATMEL ATMEL 89 89 三、高档型单片机 高档型只有一种型号AT89S8252,它在标准型基础上增加 一些功能: 8KFlash可下载功能,下载功能是由IBM微机通过 AT89S8252的串行外围接口SPI执行的。 除了8KFlash存储器之外,还含有一个2K的EEPROM, 从而提高了存储容量。 含有9个中断响应的能力。 含有标准型和低档型不具有的SPI接口。 含有Watchdog定时器。 含有双数据指针。 含有从电源下降的中断恢复。 第一章 C51与单片机 31 Philips 83C552 Philips 83C552 Philips 83C552是一种高性能微控制器,可广泛用于仪器 仪表、工业控制、汽车控制、电机调速等实时测控领域。 83C552是80C51的增强型产品,共68(或80)只引脚, 它与Intel 8051兼容,其资源特性如下: 中央处理器为80C51。 8K 8位ROM,可在外部扩展64KB。256 8位RAM,可外部扩展64KB数据存储器或I/O。2个标准的16位定时器/计数器T0,T1。 1个附加的16位定时器/计数器T2,配4个捕捉和3个比较寄 1个8路输入的10位A/D转换器。2路8位分辨率的脉冲宽度调制输出PWM。 第一章 C51与单片机 32 Philips 83C552 Philips 83C552 5个8位I/O口,外加一个与模拟输入共享的8位输入口。 C串行口。全双工异步串行口UART。 监视定时器(WATCHDOG)T3。 15个具有2个优先级的中断源。 工作频率为1.2MHz---16MHz. 第一章 C51与单片机 33 DALLAS DS80C320 DALLAS DS80C320 87C752是Philips 公司生产的一种小体积、低价格的 80C51系列单片机。 其内部总线不对外开放,这意味着没有扩展外部程序存储 器和数据存储器的并行扩展总线端口。 指令系统和80C51兼容。 内含2K字节的EPROM。 内含64字节的RAM。 一个常数可自动重装的16位定时器/计数器。1个固定速率的定时器。 7个中断源,1个中断优先级。 5路8位A/D转换器 1路脉宽调制输出以及方式的I C总线接口。第一章 C51与单片机 34 DALLAS DS80C320 DALLAS DS80C320 最新改进8051兼容蕊片。主要特点简介如下: 工作频率为25MHz。 内置看门狗计数器。 内置两组全双工的串行传输端口。 两组DPTR方便程序设计。 一个机器周期只需4个时钟工作周期。 第一章 C51与单片机 35 87C752 87C752 87C752是Philips 公司生产的一种小体积、低价格的 80C51系列单片机。 其内部总线不对外开放,这意味着没有扩展外部程序存储 器和数据存储器的并行扩展总线端口。 指令系统和80C51兼容。 内含2K字节的EPROM。 内含64字节的RAM。 一个常数可自动重装的16位定时器/计数器。1个固定速率的定时器。 7个中断源,1个中断优先级。 5路8位A/D转换器、 1路脉宽调制输出以及方式的I C总线接口。第一章 C51与单片机 36 ALU(算术逻辑单元)对数据进行 算术运算; 逻辑运算; 位操作运算。 1.2.2 1.2.2 88位位CPU CPU 1.2.3 1.2.3 片内振荡器及时钟电路 片内振荡器及时钟电路 一、8051外部控制总线由输出控制线及输入控制信号线构成 输出控制线(如PSEN,ALE,RD,WR); 输入控制信号线(如INT0,INT1,T0和T1)。 1.2 1.2 单片机的结构特点 单片机的结构特点 第一章 C51与单片机 37 1.2 1.2 单片机的结构特点 单片机的结构特点 P2振荡周期 时钟周期 机器周期 机器周期 指令周期 XTAL MCS-51单片机各种周期的相互关系二、8051时钟由反相放大器构成振荡器产生内部时钟,包含振荡周期、 时钟周期、机器周期、指令周期等基本时序周期: 振荡周期(节拍P):振荡源的周期 (1/fosc) 时钟周期(状态S):振荡周期的2倍 (2/fosc) 时钟周期=振荡周期P1+振荡周期P2( S=P1+P2) 机器周期:含6个时钟周期(6S) 指令周期:1~4个机器周期 第一章 C51与单片机 38 指令的字节数与机器周期数 指令的字节数与机器周期数 根据指令的执行时间,可分为单机器周期、双机器周期与四机器周期指令。 二者之间有一定的联系,但又没有必然的联系。 图中ALE脉冲为锁存地址的选通信号,每出现 一次该信号单片机即进行 一次读指令操作。 从时序图中可看出,该信号是振荡频率6分频 后得到,在一个机器周期 中,ALE信号两次有效, 第一次在S1P2和S2P1期 间,第二次在S4P2和 S5P1期间。 单周期和双周期取指时序 第一章 C51与单片机 39 指令的字节数与机器周期数 指令的字节数与机器周期数 单机器周期指令,主要有: 单字节指令如:MOV Rn只进行一次读指令操作,当第二个ALE信号有效时,PC不加1,读出 的还是原指令,属于一次无效的读操作。 双字节指令如:MOV A,#data 两次的ALE信号都是有效的,第一个ALE信号有效时读的是操作码, 第二个ALE信号有效时读的是操作数。 双机器周期指令: 单字节指令 MOVCA,@A+DPTR 进行四读指令操作,但只有一次读操作是有效的,后三次的读操作均为 无效操作。 有一种特殊的情况,象执行MOVC这类指令,先在ROM中读取指令, 然后对外部数据存储器进行读或写操作,头一个机器周期的第一次读指 令的操作码为有效,而第二次读指令操作则为无效的。在第二个指令周 期时,则访问外部数据存储器,这时,ALE信号对其操作无影响,即不 会再有读指令操作动作。 双字节指令 如:PUSH direct 三字节指令 如:MOV direct, #data 四机器周期指令: 单字节四机器周期指令(如单字节的乘除法指令)如:MUL AB 第一章 C51与单片机 40 1.2 1.2 单片机的结构特点 单片机的结构特点 三、指令部件 程序计数器PC:16位计数器,指向下一条待执行指令的 地址,可寻址范围为64K; 指令寄存器IR:存放当前正在执行的指令; 指令译码器ID:对IR中指令操作码进行解释、产生相应 的控制信号; 数据指针DPTR:16位地址寄存器,既可以用于外部数 据存储器、也可以用于外部程序存储器中的表格数据, 范围64K 第一章C51与单片机 41 1.2 1.2 单片机的结构特点 单片机的结构特点 数据存储器:内、外部数据存储器1.2.4 1.2.4 存储器组织 存储器组织 图1.1 8051存储器组织结构 第一章 C51与单片机 42 1.2 1.2 单片机的结构特点 单片机的结构特点 片内有256字节,片外可扩展至64K,片外RAM与ROM在地址上重叠。 片内RAM 片内的256字节分为两个区域 00~7FH:真正的RAM区 80~FFH:SFR区 一、RAMRAM 图1.2 内部数据存储器的分布 第一章 C51与单片机 43 1.2 1.2 单片机的结构特点 单片机的结构特点 片内的低128字节分为三个区域: (1)00H~1FH:共有四组工作寄存器组,每组占用8个RAM字节, 共32字节,记为R0~R7, 由程序状态控制字PSW的第3位与第4位确定工作寄存器切换; 注:同一时刻只能选用一组工作寄存器 (2)20H~2FH:可位寻址区,共16字节,对每个字节的每一位进 行操作,共有128位,用位地址00H~7FH与之对应; 表1.1 位内RAM位寻址区的位寻址 第一章 C51与单片机 44 1.2 1.2 单片机的结构特点 单片机的结构特点 (3)30H~7FH:一般RAM区,共80字节;对8052来说, 地址80H~FFH也可以作为一般RAM区,与SFR地址重叠, 使用时通过地址加以区别。 片内的高128字节为SFR区 26个特殊功能寄存器(其中T2CON,RLD,T2只属于 8052),其中5个是双字节寄存器(8052的T2,RLD为双 字节),共占用26个字节(80C51只占用21个字节); 8051的SFR区的128位没有全部利用特殊功能寄存器地址能被8整除的可以进行位寻址, 共有11个特殊功能寄存器可以被位寻址(ACC (0E0H),B(0F0H),PSW(0D0H),P0~P3 (80H~0B0H),IE(0A8H),IP(0B8H), TCON(88H),SCON(98H)), IP.5,IP.6,IP.7及IE.6,IE.5未定义 第一章 C51与单片机 45 1.2 1.2 单片机的结构特点 单片机的结构特点 SFR的地址分布 PSWP3 IP P2 IE P1 SCON SBUF P0 SP DPL DPH PCON TCON TMOD TL0 TL1 TH0 TH1 第一章C51与单片机 46 1.2 1.2 单片机的结构特点 单片机的结构特点 表1.2 SFR地址表 图1.4 SFR地址表 第一章 C51与单片机 47 ((11)并行口: )并行口:P0~P3 P0~P3 表1.4 80C51并行I/O端口的比较 P0口P1口 P2口 P3口 位数 性质真正双向口 准双向口 准双向口 准双向口 功能 替代功能上拉电阻 作为地址/数据 口不需要; 作为I/O口需要; 不需要 不需要 不需要 SFR地址 80H 90H 0A0H 0B0H 位地址范围 80H~87H 90H~97H A0H~A7H B0H~B7H 驱动能力 8个LS TTL负载 3个LS TTL负载 LSTTL负载 3个LS TTL负载 替代功能 ROM及片外 RAM低8位地址 及8位数据 T2 T2EX ROM及片外 RAM高8位地址 第二功能口 片外数据存储器 第一章 C51与单片机 48 1.2 1.2 单片机的结构特点 单片机的结构特点 补充表 用于与微机相连接的各种逻辑门集成块的电气特性 图1.5 P3口各引脚功能表 逻辑族系 每门功耗 mW 所需输入电流 iL,uA 能提供输出电流 oL,mA 典型传输延迟 tp, ns TTL 74S (快速肖特基钳位系列) 19 2000 20 TTL74H (高速高功率系列) 22 2000 20 TTL74 (标准TTL系列) 10 1600 16 10 TTL 74LS (低功率肖特基系列) 10TTL 74L (低速低功率系列) 1803.6 33 CMOS 0.001 0.00001 0.6 35 第一章 C51与单片机 49 P0的位结构图 组成: 输出驱动电路:一对FET(场效应管) 输出控制电路:包括1个与门、一个反相 器和1路模拟转换开 关(MUX)。 模拟转换开关的位置由来自CPU的控制信号决定: 一般的I/O口:控制信号为低电平“0”时,模拟开关与锁存器/Q相 与门输出为0,上拉FET处于截止状态,输出极是漏极开路的开漏电路; 写脉冲加在时钟端CP上,内部总线数据取反出现在/Q端上; 经输出FET反相,在P0引脚上出现的数据正好是内部总线数据。 第一章 C51与单片机 50 B.输入操作(读操作) 当P0口作为输入口使用时,在电路中有两个用于读入的三态缓冲器 应区分读引脚和读锁存器(端口)两种情况。 A.输出操作(写操作) 内部的写脉冲加在D触发器的CP端; 数据写入锁存器,并向端口引脚输出,即锁存器的输出与引脚的输出 状态是一致的; 作通用输出口时,输出级属漏极开路,在驱动NMOS电路时应外接上 拉电阻。 第一章 C51与单片机 51 读引脚 若输出锁存过数据0,则T2导通,引脚上的电位始终被钳在“0”电平上,输入数据不可能被正确地读入; 在端口处于输入状态,应先向锁存器写“1”,这时输出级2个FET截 止,可用作高阻抗输入(系统复位时P0=0FFH); MOV类传送指令进行读口操作就是属于这种情况。第一章 C51与单片机 52 在端口已处于输出状态的情况下,不能正常读取引脚的信号,只能读取锁存器的状态; 通过上方的缓冲器读锁存器Q端的状态,对端口进行“读—修改—写”操作指令的需要。 例如“ANLP0,A”就属于这类指令,执行时先读入P0口锁存器中的数据, 然后与A的内容进行逻辑“与”,再把结果送到P0口输出。从这种意义 上说,该指令又可看作是输出指令。 除MOV类指令外的其它口操作指令都属于这种情况。第一章 C51与单片机 53 C.结论 P0口既可作地址/数据总线使用,又可作通用I/O口用。当P0口作地址/数据总线使用时,就不能再 把它当通用I/O口使用。 作通用输出口时,输出级属漏极开路,在驱动NMOS电路时应外接上拉电阻。 作通用输入口使用时,应区分读引脚和读锁存器。读引脚时,应先向锁存器写“1”,这时输出级2 FET截止,可用作高阻抗输入。第一章 C51与单片机 54 1.2 1.2 单片机的结构特点 单片机的结构特点 表1.3 P3口各引脚功能表 54 图1.5 P3口各引脚功能表 第一章 C51与单片机 55 1.2 1.2 单片机的结构特点 单片机的结构特点 (2)CPU:ACC,B,PSW,SP,DPTR(DPL, DPH) 程序计数器:16位计数器 注:没有地址,具有自动加1功能,寻址范围64K,用户 无法读写,但可通过转移、调转、返回指令改变其内容。 ACC:累加器,最常用的专用寄存器,既可以存放操 作数,也可以存放中间结果,复位后初态为00H。 乘法运算时,存放被乘数及16位乘积的低字节; 除法运算时,存放除数及运算结果的余数。 B:一般寄存器,还用于乘除运算,复位后初态为00H。 乘法运算时,存放乘数及16位乘积的高字节; 除法运算时,存放被除数及运算结果的商。 第一章 C51与单片机 56 1.2 1.2 单片机的结构特点 单片机的结构特点 PSW:程序状态控制字,复位后初态为00H。除PSW.1位保留未用外, 其余各位的定义及使用如下: CY(PSW.7):进位标志位,是PSW最常用的标志位,它存放 算术运算的进位标志,位操作时作累加器使用; AC(PSW.6):辅助进位标志,BCD码调整时也要用到AC位状 F0(PSW.5):用户标志位,用软件方法置位或复位;RS1和RS0(PSW.4,PSW.3):寄存器组选择位,四种状态组 合用来选择0~3寄存器组。 OV(PSW.2):溢出标志,当符号运算结果超出-128~+127或 无符号乘法运算超过255及除数为0时,OV=1;否则,OV=0。 P(PSW.0):奇偶校验标志,若A中1的个数为奇数时,P=1;否 表1.5PSW状态字定义 第一章 C51与单片机 57 1.2 1.2 单片机的结构特点 单片机的结构特点 SP:8位堆栈指针,堆栈按照“先进后出,后进先出”原 则进行存取。 8051的椎栈为向上生长型,压栈时SP先加1再将程序计数器自动保护进栈。 例:(SP)=40H, 则CPU执行一条调用指令或中断响应,程序 计数器PC(L)保护到41H,PC(H)保护到42H,(SP)= 42H 初始状态为07H,一般设在30H以后的范围为宜。(3)中断系统:IE,IP (4)定时器: TCON,TMOD,TL0,TL1,TH0, TH1 (5)串行口:SCON,SBUF,PCON 第一章 C51与单片机 58 1.2 1.2 单片机的结构特点 单片机的结构特点 (6)几点说明: 内部RAM的高128单元,SFR是不连续地分布,尽 管有许多空闲单元,但用户并不能使用; 程序计数器不占用RAM单元,在物理上是独立的, 是不可寻址的寄存器; 对专用寄存器只能直接寻址,书写时既可以使用地 址,也可以使用符号。 第一章 C51与单片机 59 1.2 1.2 单片机的结构特点 单片机的结构特点 OV的讨论 OV=C 6Y (+105)CY=0 (+189)结果为负数,产生正溢出 OV=C6Y 当除法数为0时,OV=1,否则为0。对于两个单字节数相乘,乘积不会超过双字节,所以MUL AB执行后没 有进位和溢出的可能,但借用溢出标志位OV作为另一种二态信息的标 志,当乘积不超过单字节时(B的内容为0)OV=0,而乘积超过单字节 时(B的内容不为0)令OV=1。 第一章 C51与单片机 60 1.2 1.2 单片机的结构特点 单片机的结构特点 二、ROM 片内有4K字节,片外可扩展至64K,其中 0000H~0FFFH这4K字节对于片内ROM和片外ROM 是共用的,可用控制信号EA区分,EA为低电平时, 从片外ROM取指,EA为高电平时,从片内ROM取 8051通过片外程序存储器选通信号PSEN来选通ROM,当PSEN=0选通外部ROM。 程序存贮器某些单元是保留给系统使用的: (1)0000H~0002H:所有执行程序的入口地址; (2)0003H~002AH:中断服务程序入口地址。 第一章 C51与单片机 61 1.2 1.2 单片机的结构特点 单片机的结构特点 表1.6 单片机的基本中断 中断号 描述 入口地址 外部中断00003H 定时器/计数器0000BH 外部中断10013H 定时器/计数器1001BH 串口0023H 第一章 C51与单片机 62 1.2 1.2 单片机的结构特点 单片机的结构特点 1.2.5 8051的内部资源 (一)串行口:1个可编程的、全双工的串行接口。 (二)定时器/计数器:2个16位可编程定时器/计数器,记

东北大学自动化仪表研究所主讲:王玉涛 主 http://www.shenmezhidexia.com 讲:王玉涛 第一章 C51与单片机 课程的目的系统介绍单片机C语言编程 基本方法; 应用技术。 课程的任务 学习单片机硬件接口结构上 以C语言为主要编程工具; 汇编语言为辅助编程工具; 采用模块化编程

文档格式:
.ppt
文档页数:
131页
文档大小:
7.07M
文档热度:
文档分类:
待分类

更多>> 相关文档

页面底部区域 foot.htm