下载

3下载券

加入VIP
  • 专属下载券
  • 上传内容扩展
  • 资料优先审核
  • 免费资料无限下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 单片微型计算机技术资料单片机原理讲稿

单片微型计算机技术资料单片机原理讲稿.doc

单片微型计算机技术资料单片机原理讲稿

飞雪
2018-09-07 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《单片微型计算机技术资料单片机原理讲稿doc》,可适用于IT/计算机领域

单片机原理第章单片机概述单片机的历史及发展概况单片机单片微型计算机简称为单片机它是把组成微型计算机的各种功能部件:中央处理器CPU、随机存储器RAM、只读存储器ROMIO接口电路、定时器计数器以及串行通讯接口等部件制作在一块集成芯片上而构成的一个完整的微型计算机。由于它的结构与指令功能都是按照工业控制要求设计的故有称为单片微控制器(或单片微型计算机)。单片机发展的三个阶段:单片机作为微型计算机的一个分支其产生与发展主要分为三个阶段:.初级单片机代表芯片MCS。单片机内部集成有位CPU、并行IO口、位定时器计数器、RAM等无串行口寻址范围不大于K。.高性能单片机典型芯片MCS。片内继承有串行IO口具有多级中断系统定时器计数器为位片内RAM和ROM容量相对增大寻址范围可达K。该类单片机在我国大量使用。.位单片机巩固、完善及位单片机推出阶段典型芯片MCS。CPU为位片内RAMROM容量进一步增大集成有高速输入输出部件、多级中断、多通道AD等。.位单片机阶段(嵌入系统)。位单片机已进入实用阶段(ARM系统)。单片机的应用单片机是为了实现控制功能而设计的一种微型计算机其应用首先是控制功能。实现手段为嵌入方式即嵌入到对象环境中作为一种智能控制单元。其应用已深入到我们生活的各个方面。.仪器仪表中的应用温度、湿度、流量、流速、压力、厚度、电压、电流、频率等的测量仪表。优点:数字化、智能化、微型化功能提高。.网络通讯。.测控系统。.日用家电。具体应用实例第二章MCS单片机的结构与原理提要:MCS单片机的硬件结构与工作原理。熟悉、理解单片机硬件结构对于应用设计者是十分重要的因为它是单片机应用系统设计的基础。本章我们要全面了解MCS单片机的硬件功能、系统结构、存储器结构、IO口、复位电路、CPU时序、CPU引脚功能和单片机的工作方式等。MCS系列单片机是Intel公司生产的一系列单片机的总称这一系列的单片机包含有很多品种如、、、、、等。功能有增有减指令兼容。MCS单片机硬件结构介绍MCS单片机的硬件结构特别是面向用户的一些硬件结构并将从硬件设计和程序设计的角度来分析MCS单片机的硬件结构重点介绍其应用特性和外部特性即从用户的角度来分析:单片机向我们提供了哪些资源及如何使用这些资源。MCS单片机硬件结构的特点.ROM和RAM存储器类型单片机系列掩模ROMEPROMRAMBKBBKBBBK况CPU该响应哪一个? 为了保证CPU能及时、准确地处理好这些中断用户应事先根据事件处理的轻重缓急程度规定优先级。中断优先级是指CPU响应各中断请求的一种先后次序。CPU先响应优先级高的中断请求后响应优先级低的中断请求。一般地把最重要最紧急的中断源赋给最高优先权然后根据轻重缓急依此赋予优先级。CPU根据个中断源的优先级别决定先响应哪个中断请求。()当CPU正在执行中断服务程序时又有新的中断源提出申请CPU是怎样处理的呢?对于只许单重中断的情形不管新来的中断优先级如何CPU会一概不理直到执行完现行的中断服务程序CPU才能够响应它。对于多重中断若新来的中断优先级别高则CPU会中断现行的中断服务程序响应优先级别高的中断在高优先级别中断处理完后再返回到原先的中断服务程序。这个过程称为中断嵌套。中断屏蔽(或禁止中断)为了增加控制的灵活性每个中断源都对应一个中断屏蔽触发器来控制该中断源的申请能否送到CPU。当该屏蔽触发器的状态为“0”时CPU不响应该中断源的中断申请这称为中断屏蔽或中断禁止反之称为中断开放。只有中断未被屏蔽时CPU才能响应该中断请求信号。中断源的识别所谓中断源的识别是指当CPU要响应某个中断请求时如何找到该中断源的中断服务程序入口地址执行相应的中断处理程序进行中断处理。解决该问题的方法有以下几种方法:(1)软件法 软件法是利用程序来识别中断源。CPU响应中断后硬件只提供一个中断入口所有的中断源都从这个中断入口进入中断源识别程序再按照事先编好的中断源的优先级次序依此查询每个中断源的中断请求触发器的状态再根据触发器的状态转去执行中断服务程序。(2)硬件法 用软件识别中断源硬件电路结构简单但响应速度慢特别在中断源的数目多时更是这样。现在的计算机一般都由硬件电路根据提出中断请求的中断源的数目自动找到该中断源中断服务程序的入口地址。(3)软件、硬件相结合的方法 该方法能够综合硬件法快速和软件法结构简单的优点较快地识别数目较多的中断源利用有限的中断入口迅速地响应较多的中断申请。中断响应和中断处理过程一个完整的中断过程应包括中断请求、中断判优、中断响应、中断处理和中断返回。首先中断源应提出申请在中断允许的下CPU首先响应优先级别高的中断请求等处理完高优先级别中断源的中断服务程序后再响应中断优先级别低的中断请求CPU暂停现行程序将PC中下一条指令的地址入栈保护起来响应中断请求进入中断服务程序中断服务程序首先保护现场接着执行中断源服务程序主体部分然后再恢复现场最后返回主程序。MCS单片机中断系统结构及中断控制MCS-51单片机中大部分芯片设立了5个中断源由特殊功能寄存器TCON的相应位表示了各中断源的状态。提供2个中断优先级。各中断源可以由中断优先级控制寄存器IP编程为高优先级或低优先级。中断源的排列顺序由中断优先级控制寄存器和内部查询电路共同决定并且各中断源可以由中断允许寄存器IE定义为开放或屏蔽状态。中断源外部中断源2个内部中断源2个串行口中断1个―――共5个。中断控制第六次课MCS-51单片机中断系统有以下4个寄存器:定时控制寄存器TCON串行口控制寄存器SCON中断允许寄存器IE中断优先级寄存器IP其中TCON和SCON只有一部分位用于中断控制。通过对以上各特殊功能寄存器的各个位进行编程可实现各种中断控制功能。TCON寄存器D7D6D5D4D3D2D1D0TF1TF0IE1IT1IE0IT08FH8EH8DH8CH8BH8AH89H88H各控制位的意义:TF1――定时器/计数器T1的溢出中断请求标志位。当T1计数以后T1从初值开始加1计数。当计数器计满产生溢出后该位由硬件置“1”并向CPU发出中断请求。当CPU响应中断时硬件将自动对TF1为清“0”。也可以用软件查询该标志然后用软件清“0”。TF0――――定时器/计数器T0的溢出中断请求标志位。当T计数以后T从初值开始加1计数。当计数器计满产生溢出后该位由硬件置“1”并向CPU发出中断请求。当CPU响应中断时硬件将自动对TF为清“0”。也可以用软件查询该标志然后用软件清“0”。IE外部中断1的中断请求标志位。当检测到外部中断1的引脚上存在有效的中断请求信号时由硬件使IE1置“1”。当CPU响应该中断时:若外部中断触发方式为边沿触发则由硬件使IE1清“0”若外部中断触发方式为电平触发则必须由软件对IE1及时清“0”。IT1―――外部中断1的中断方式控制位。当IT1=时外部中断1为边沿触发方式。该位由硬件置“1”。当CPU响应该中断时由硬件使IE1位清“0”。 IT1=0外部中断1为低电平触发。若外部中断1请求信号为低电平则使IE1=1若外部中断1请求信号为高电平则使IE1清“0”。IT0―――外部中断0的中断请求标志。SCON寄存器D7D6D5D4D3D2D1D0   TIRITI―――串行口发送中断请求标志位。串行口每发送完一帧串行数据硬件置“1“该标志位。但需要注意的是CPU响应中断时并不能自动清”0“TI标志位必须在中断服务程序中用软件对TI清”0“。RI―――串行口中断接收请求标志位。串行口每接收完一个串行帧硬件置“1”该位。同样CPU在响应中断时不会自动清除RI位必须由软件清“0“该标记位。IE(中断允许控制)D7D6D5D4D3D2D1D0EAESET1EX1ET0EX0AFHACHABHAAHA9HA8HMCS单片机对中断源的开放或屏蔽时由中断允许寄存器IE控制的。中断允许寄存器IE对中断的开放和屏蔽实现两级控制。所谓两级控制就是有一个总中断控制位EA和各中断源自己的中断允许控制位。当EA=0时屏蔽所有的中断申请即任何中断申请都不接受当EA=1时CPU开放中断但各个中断源是否允许开放还要由IE的低5位的个对应控制位的状态进行中断允许控制。EA―――中断允许总控制位。EA=0屏蔽所有中断请求EA=1开放中断。ES――串行口中断允许ES=0屏蔽ES=1允许。ET1――定时器/计数器T1的溢出中断允许位。0禁止1允许。EX1――外部中断1的中断允许位。0禁止1允许。  ET0――定时器/计数器T0的溢出中断允许位。0禁止1允许。EX0―――外部中断0的中断允许位。0禁止1允许。单片机复位后IE中各位为0。例6-1 假设允许片内定时/计数器1和0允许中断禁止其它中断。试根据假设条件设置IE的相应位。MOVIE,#AH用字节操作用位操作SETBETSETBETSETBEA中断优先级控制MCS单片机有两个中断优先级每一个中断请求都可以编程为高优先级中断或低优先级中断可以实现两级中断嵌套。中断系统中有两个不可寻址的“优先级生效”触发器一个为高优先级生效触发器一个是低优先级生效触发器若某个触发器的状态为“”则表明正在进行相应优先级的中断服务。假设CPU正在执行高优先级的中断服务程序则高优先级生效触发器的状态为“”所有后来的中断都被禁止若CPU正在执行低优先级的中断服务程序则低优先级生效触发器的状态为“”所有低级的中断都被禁止但开放高优先级中断。中断优先级寄存器IPD7D6D5D4D3D2D1D0PSPTPX1PT0PX0BCHBBHBAHB9HB8HIP低位为各中断源优先级的控制位可以用软件设定。PS串行口中断优先级控制位。PS=串行口为高优先级中断PS=串行口为低优先级中断。PT定时器计数器中断优先级控制位。PT=定时器计数器为高优先级中断PT=定时器计数器为低优先级中断。PX外部中断中断优先级控制位。PX=外部中断为高优先级中断PX=外部中断为低优先级中断。PT定时器计数器中断优先级控制位。PT=定时器计数器为高优先级中断PT=定时器计数器为低优先级中断。PX外部中断中断优先级控制位。PX=外部中断为高优先级中断PX=外部中断为低优先级中断。单片机在复位后IP=即所有中断均为低优先级中断。若某几个控制位为“”则相应的中断源就规定为高优先级中断反之若某几个控制位为“”则相应的中断源规定为低优先级中断。当同时接收到几个同一个优先级的中断请求时响应哪个中断则取决于内部硬件的查询次序。各中断源的中断优先级顺序排列如下:中断源入口地址同级优先级次序外部中断H高定时器BH外部中断H定时器BH串行通讯H低MCS单片机中断系统处理中断优先级的原则是:()不同级的中断源同时申请中断时先高后低()处理低级中断又收到高级中断申请时停低转高()处理高优先级中断又收到低优先级中断申请时继续执行高优先级中断服务程序()同级的中断源同时申请中断时按硬件规定的次序。例设片外中断为高优先级片内中断为低优先级试设置IP相应位。解根据要求(IP)=H。()用字节操作指令MOVIP#H()用位操作指令SETBPXSETBPXCLRPSCLRPTCLRPT中断响应中断响应条件)中断源发出中断请求)中断允许位EA=即CPU开放中断)发出中断请求的中断源所对应的中断允许位置为“”即不屏蔽该中断在满足上述条件的情况下并且不存在下述情况则CPU会响应中断:)CPU正在执行同级或更高级中断服务程序)当前的指令周期还未结束)现行指令为RETI或者是访问IE或IP的指令该指令以及紧接着的下一条指令还还未执行完。为了保证CPU能正确返回CPU在执行RETI或访问IE、IP的指令后至少需要再执行一条指令才会响应新的中断。若存在上述任何一种情况则CPU将丢弃中断查询结果若没有则CPU将在紧接着的下一个机器周期内响应中断。中断响应过程MCS单片机的CPU在每个机器周期的SP期间顺序采样每个中断源CPU在下一个机器周期按优先级顺序查询中断标志如查到某个中断标志为“”将在接下来的机器周期按优先级进行中断处理。MCS单片机一旦响应中断首先置位相应的中断优先级寄存器禁止同级或低优先级中断然后由硬件执行一个调用程序把当前的PC值压入堆栈以保护断点再将相应的中断服务程序入口地址送入PC于是CPU接着从中断服务程序的入口处开始执行。编写中断服务程序时应该注意的事项:()由于MCS单片机的两个相邻中断服务程序的入口地址相距只有个单元一般的中断服务程序是容纳不下的通常是在相应的中断服务程序的入口地址处存放一条跳转指令LJMP以跳转到K的任意区域。()对于有些中断源CPU在响应中断后回自动清除中断标志如定时器溢出标志位TF、TF和边沿触发方式下的外部中断标志IE、IE。对于串行口中断CPU在响应中断后会不能用硬件清除相应的标志为必须由软件清“”。如 CLRTI或CLR RI对于电平触发的外部中断因为响应中断后不能自动清“0”中断标志位因此需要利用外接电路来撤除中断请求信号。中断服务程序从入口地址开始执行最后一条指令为“RETI”。执行中断返回指令RETI的结果是清除优先级生效触发器以使其他同级或更低级的中断能够被响应。然后从堆栈中弹出两个字节到PC使程序回到原来被中断处继续执行。值得指出的是RET指令也能返回到原来被中断的地方但中断控制系统不能被恢复并认为中断仍在继续。因此中断返回一定要用RETI指令而不能以RET指令取代。在中断服务程序中用户应注意用软件保护并恢复现场以免中断返回后丢失原寄存器、累加器中的信息。如果在处理当前中断服务程序时不希望其他中断包括高级中断打断它进入中断服务程序时一般要利用关闭中断的方法(EA=0)是CPU暂不响应新的高优先级中断请求。如用户在中断服务程序中进行了现场的保护则在RETI指令执行前应进行相应的出栈操作这样做的目的一是恢复保护数据二是使栈顶指针SP与保护断点后的值相同。也就是说在中断服务程序中PUSH指令和POP指令必须成对使用否则断点地址将不会恢复到PC中造成CPU不能正确返回断点处继续执行程序。对于禁止更高优先级中断而关闭CPU中断的服务在中断返回前一定要再开中断。中断响应时间3~8个机器周期。中断应用举例要求:用4个指示灯显示4个开关的状态即开关打开时对应指示灯灭开关闭合时对应指示灯亮由另外一个开关控制中断申请要求每申请一次中断完成一个读写过程使指示灯与开关状态对应。解 设单片机的P~P用作检测4个开关S0、S1、S2、S3的状态,P~P用于输出以驱动4个指示灯。ORGHAJMPMAINORGHMOVA,#FFHMOVP,AMOVA,PSWAPAMOVP,ARETIORGHMAIN:SETBITSETBEXSETBEAHERE:AJMPHEREEND第七章定时器计数器单片机系统实现定时有三种方式:软件定时、硬件定时和可编程定时器定时。软件定时是靠执行一个循环程序消耗时间达到定时目的不需要外加硬件电路硬件定时全部由硬件电路完成不占用CPU时间但调整定时时间必须改变电路元件参数可编程定时器采用计数周期脉冲实现定时通过改变定时器计数器的计数初值来改变定时时间不占用CPU的时间使用灵活。定时器计数器的工作原理与组成定时器计数器的工作原理图定时器T的工作结构图形式定时器计数器的核心是加计数器即每来一个脉冲计数值加直到计满溢出。加计数器的输入脉冲有两个来源一个是外部脉冲源TX端(T和T)另外一个是系统的时钟振荡器计数器选择两个脉冲源之一进行输入脉冲计数每输入一个脉冲计数值加。当计数到计数器各位为(几计数器满)再输入一个脉冲时就使计数器回零同时从最高位溢出一个脉冲使特殊功能寄存器TCON的某一位(TF或TF)置“”作为计数器的溢出标志向CPU申请定时器中断。如果定时器计数器工作于定时状态则表示定时时间到若工作于计数状态则表示计数值回零中断。定时器计数器的基本功能是对输入脉冲计数。对输入脉冲的选择是由特殊功能寄存器的CT位的内容决定的。图中有两个模拟开关左边的决定定时器是工作于计数状态还是工作于定时状态。当其连向振荡器时为定时状态当与T或T端连接时则为计数状态。右边的模拟开关决定脉冲源是否加到计数器输入端即决定加计数器的启动与停止。定时器计数器的工作方式MCS单片机有两个位的定时器计数器具有定时、计数两种功能及种工作模式:位定时计数模式、位定时计数模式、自动重装初值的位模式和T分为两个位的工作模式。寄存器TCON寄存器控制寄存器D7D6D5D4D3D2D1D0TF1TRTF0TRIE1IT1IE0IT08FH8EH8DH8CH8BH8AH89H88HTF定时器溢出的中断标志位TF定时器溢出的中断标志位TR定时器的运行控制位由软件置“”或置“”。TR定时器的运行控制位由软件置“”或置“”。TMOD定时器方式寄存器D7D6D5D4D3D2D1D0GATECTMMGATECTMM其中低为与T有关高位与T有关。GATE门控位CT定时或计数功能选择位。MM工作方式选择位。表工作方式控制表MM工作方式功能位定时计数位定时计数自动重装初值仅T分为两个位定时器初值如何计算?定时器的工作方式方式位定时计数方式。图定时器T工作方式的结构原理图对于方式脉冲计数器位由TH的高位和TL的低位构成TL的高为不用。无论工作在定时还是计数方式在方式下TL的低位计数满溢出时向TH进位位计数器计数满溢出时使中断标志位TF置“”。定时器计数器举例定时器计数器的应用编程方法编程要点()计算计数器初值。()确定控制字。()编制初始化程序。编程步骤()确定工作方式对寄存器TMOD赋值()预置定时或计数器初值。()根据需要开放定时器计数器中断。()启动、停止定时计数器。振荡周期、时钟周期等概念()振荡周期单片机内部高增益反向放大器通过放大器XTAL、XTAL引脚外接的反馈石英晶体元件构成自激振荡器该振荡器的周期为振荡周期。()时钟周期时钟信号发生器把振荡器的脉冲信号分频向CPU提供了两相时钟信号P和P。时钟信号的周期称为机器状态时间S它为振荡周期的倍。在每个时钟周期的前半周期相位P信号有效而后半周期相位P信号有效。()机器周期MCS单片机工作的一个机器周期由个状态周期组成即S~S每个状态周期又持续两个振荡周期故一个机器周期包括个振荡周期。()指令周期CPU执行一条指令的时间称为指令周期。MCS单片机的指令周期有单机器周期、双机器周期和四周期指令三种。例利用定时器TI的方式在引脚为高电平时以中断方式由P端输出周期为的方波起点到跳变的时间为半个周期(假设单片机的晶体频率为)。确定计数初始值X晶体频率为,机器周期=对应方式的位计数器方式有求得计数初始值确定控制字向TMOD寄存器送控制字定时器T设置为方式采用外部控制在引脚输入高电平时定时器才启动工作故GATE=控制字为(TMOD)=x编写程序ORGhAJMPMAINORGbHAJMPSOFTMORGhMAIN:MOVTMOD,#hMOVTH,#hMOVTL,#hSETBETSETBEALOOP:SETBTRHERE:sjmpHEREORGhSOFTM:MOVTH,#hMOVTL,#HCPLPReti定时器计数器在应用中应注意的事项定时器计数器在运行过程中读取计数值从运行中的定时器计数器内去取计数值的方法是:先读取数据寄存器的高字节,后读取TLX,再读取THX。前后两次读得的THX相同则可以确定读得的内容是正确的若前后两次读得的THX不相同则再重复上述过程知道重读的内容正确为止。下面程序能将读得的TH和TL放在R和R中:ORGHRDTIMER:MOVA,THMOVR,TLCJNEA,TH,RDTIMERMOVR,ARET定时器计数器对输入信号的要求当单片机内部定时器计数器工作在定时器方式时计数的输入信号来自于内部时钟脉冲每个机器周期计数器递增计数一次定时时间由脉冲乘以计数脉冲周期确定。由于每个机器周期包括个振荡周期因此计数速率是系统振荡频率的。定时器精度取决于内部时钟脉冲的精度。当定时器计数器工作于计数方式时计数脉冲来自于芯片外部输入管脚T和T在每个机器周期的SP期间计数器对外部输入信号进行采样。当一个机器周期的采样值为高电平而下一个机器周期的采样值变为低电平计数值加。新的计数值在检测到一个跳变后的下一个机器周期的SP期间出现。由于识别一个从到的跳变需要两个机器周期因此最高的计数频率是系统振荡频率的。第章MCS单片机串行通讯接口与应用MCS单片机有一个全双工的串行口使单片机具有串行通讯的能力可以与其它计算机进行通讯因而扩展了单片机的应用领域。通讯基础通讯就是信息的交换。它可以在计算机与计算机、计算机与数据设备以及数据设备与数据设备之间进行。信息的交换要通过一定的介质进行如无线传输、光缆传输或电缆传输等通过使用这些介质将通讯设备连接起来。通讯设备的连接需要一定的机械和电气标准如RS口等。通讯过程还需要规定数据的格式即建立通讯协议。除此之外通讯各方还要一定的硬件、软件支持。、并行通讯与串行通讯通讯主要有两种方式:并行通讯和串行通讯。并行通讯是在传送数据过程中每个字节的各位同时进行传送的通讯方式而串行通讯是指每个字节的各位分别进行传送的通讯方式。并行通讯:速度快适用于短距离通讯。串行通讯:速度低适用于长距离通讯。、异步串行通讯和同步串行通讯在异步串行通讯中数据是一帧一帧传送的每帧数据包括一位起始位、一个字节的数据、一位校验位和一位停止位。每帧数据之间可以插入若干个高电平的空闲位。异步串行通讯要求发送数据与接收数据的双方约定相同的数据格式和速率用启始位、停止位来协同发送和接收过程。接收和发送端采用独立的移位脉冲控制数据的串行移出与移入发送移位脉冲和接收移位脉冲是异步的因此称为异步串行通讯。在异步串行通讯中每帧数据只有一个字节的数据也不需要同步脉冲因此应用较为灵活。但由于每帧数据都必须插入启动、停止位故传输速度比较慢。同步串行通讯是一种连续的数据传送方式。每次传送一帧数据每帧数据由同步字符和若干个数据及校验字符号组成其格式如下:同步字符同步字符N个连续字节校验字节校验字节在同步通讯中发送和接收双方由一个同步脉冲控制数据位的串行移出和移入是同步的因此称为同步串行通讯。同步串行通讯速度较快适应于大量传输数据的场合需要传送同步脉冲信号。、串行通讯的传送方式串行通讯的方式不同通讯线路不同其通讯能力也是不同的。按照数据传送的方式可分为单工、半双工、全双工方式。单工传送方式单工方式下只允许数据向一个方向传送它只需要一条通讯线和一条地线。半双工传送方式半双工传送方式也只需要一条通讯线和一条地线允许数据双向传送但分时工作。全双工传送方式全双工传送方式允许双方同时进行数据的接收和发送。接收和发送方采用两条不同的通讯线和一条地线。、波特率波特率是表征串行口数据传送速率的量其定义为每秒传送二进制数据的位数单位为bits单片机常用的波特率有波特波特波特和波特。无论是异步串行通讯还是同步串行通讯发送和接收方的波特率必须相同否则不能进行正常通讯。MCS单片机串行通讯接口MCS单片机有一个全双工串行通讯口它有四种工作模式。.与串行口有关的特殊功能寄存器串行口数据寄存器SBUF、串行口控制寄存器SCON和波特率控制寄存器PCON。SBUFSBUF对应两个物理单元:串行口接收缓冲区和串行口发送缓冲区但地址都是H。当执行写SBUF指令时(MOVSBUFA)数据写入到串行口发送缓冲区实际就是启动串行发送读SBUF就是读取串行口接收缓冲区。SCONSCON的地址为H用于选择串行口的工作方式、指示串行口的工作状态其各位的定义如下:DDDDDDDDSMSMSMRENTBRBTIRISM,SM串行口工作方式选择位。SMSM工作方式功能同步移位寄存器位UART位UART波特率不变位UART波特率可变RB接收数据的位。在方式和方式中接收到的第位送RB对应接收发送方的TB位。TI串行口发送中断标志位。在方式中接收到第位数据时由硬件置位在方式、和中于发送停止位之初由硬件置位。TI=时申请中断。该位必须由软件清零。RI串行口接收中断标志位。在方式中接收完位数据由硬件置位。在方式、和中于接收到停止位的中间由硬件置位用于申请中断。该位必须由软件清。PCON波特率控制寄存器DDDDDDDDSMODSMOD波特率选择位。当SMOD=时波特率提高一倍。串行口工作方式工作方式工作方式为移位寄存器输入输出工作方式。方式输出时RXD端输出数据TXD端输出移位脉冲发送数据开始于向SBUF写入数据的时刻发送的位数据为低位(D位)在先。位数据发送完后置位TI。方式输入时RXD端为数据输入端TXD端为移位脉冲输出端。方式接收过程只有在满足REN=和RI=时才进行。在TXD端的移位时钟的控制下将RXD端的数据移入移位寄存器中。位数据接收完后置位RI。工作方式的波特率为固定值它是晶体振荡器频率的十二分之一即fosc。工作方式工作方式为位异步串行通讯方式。TXD位发送数据端RXD为数据接收端。一帧数据包括一个起始位、位数据位和一个停止位(低位在先)。在不发送数据时TXD端为高电平。执行写SBUF指令便启动一次发送过程发送数据时先发送一个起始位该位通知接收端开始接收也使发送和接收过程同步。接下来发送位数据先发送低位后发送的是高电平的停止位。当REN=时CPU允许串行口接收数据接收数据开始于检测到RXD端发生的到的跳变。先接收起始位然后依次接收数据位。若满足条件RI=且SM=或接收到停止位则将数据装入SBUF并置位RI如果上述条件不满足则数据丢失。工作方式的波特率由定时器T的溢出率决定即方式的波特率=的溢出率定时器的溢出率指的是计满溢出的频率其值为定时时间的倒数即溢出率=计数速率计数值其中计数速率为计数器的计数时钟频率即内部时钟晶体振荡器频率的。例如单片机的晶体振荡器频率为fosc=MHz,需设定串行口的波特率为bits,设定SMOD=若采用T的工作方式根据串行口方式的波特率公式T的溢出率为溢出率=波特率X=次s从而决定T的计数值为计数值=(fosc)溢出率=则定时器T的定时器初值设定为==FH工作方式工作方式为位异步通讯方式包括一位起始位位数据位和一位停止位。发送结束后将TI置位。接收开始于检测到RXD端到的跳变确认起始位后开始接收位数据检测到停止位后将位数据分别装入SBUF和RB并置位RI。数据装入SBUF和RB必须满足两个条件:RI=SM=或者接收到的第位数据为。否则接收到的数据将丢失。工作方式的波特率与晶体振荡器的频率和SMOD位有关波特率=工作方式工作方式为位异步串行通讯方式数据帧格式和接收发送过程与方式相同方式的波特率设置与工作方式相同。例PC机与单片机的通讯。voidTimerInt(void)interrupt{TimeCounTF=TH=TL=}voidInitSerandIC(void){CPUCS=(CPUCSxe)|xMHZ=clockoutCKCON=(CKCONxc)TM=TM=TM=initializingserialportEZUSBInitIC()PORTACFG=OEA=xffIOA=xPCON=TMOD=X设置T为方式TH=XF设置波特率为TL=XFSCON=XF设置串口位方式SCON=X设置串口位方式设置串行口SMOD=SCON=xES=ES=EA=TR=定时器开始计数EA=Digit=xEZUSBWriteIC(,x,(Digit))EZUSBWaitForEEPROMWrite(LEDADDR)EZUSBDelay()Digit=xEZUSBWriteIC(LEDADDR,x,(Digit))EZUSBWaitForEEPROMWrite(LEDADDR)EZUSBDelay()EZUSBReadIC(LEDADDR,x,(Digit))EZUSBWaitForEEPROMWrite(LEDADDR)EZUSBDelay()Digit=xEZUSBWriteIC(ADCHIP,x,(Digit))EZUSBWaitForEEPROMWrite(ADCHIP)EZUSBDelay()EZUSBReadIC(ADCHIP,x,(Digit))EZUSBWaitForEEPROMWrite(ADCHIP)EZUSBDelay()}voidTestSerialPort(void){测试串行口0unsignedchari,jTestSeriflag=if((ChipAddr==)||(ChipAddr==)){switch(ComCoded){case::获取测量点的状态{ES=IOA=xffTI=SBUF=''while(TI==){}TI=SBUF=while(TI==){}TI=SBUF=HardAddrwhile(TI==){}TI=SBUF=''while(TI==){}TI=ES=ComCoded=}breakcase::回送测量数据{ES=TI=SBUF=''while(TI==){}TI=SBUF=while(TI==){}TI=SBUF=HardAddrwhile(TI==){}TI=SBUF=while(TI==){}TI=SBUF=while(TI==){}TI=for(i=i<i){SBUF=Databufiwhile(TI==){}TI=}TI=SBUF=''while(TI==){}TI=ES=ComCoded=}breakcase:测量数据{ES=ComCoded=IOA=xffDigit=EZUSBWriteIC(LEDADDR,x,(Digit))for(j=j<j){Digit=ChSelectorjEZUSBWriteIC(PCFADD,x,(Digit))EZUSBWaitForEEPROMWrite(PCFADD)EZUSBDelay()Digit=xEZUSBWriteIC(LEDADDR,x,(Digit))EZUSBWaitForEEPROMWrite(LEDADDR)EZUSBDelay()while(){EZUSBReadIC(LEDADDR,x,(Digit))if((Digitx)==)breakEZUSBWaitForEEPROMWrite(LEDADDR)}EZUSBDelay()if(j>){Databuf(j)*=DigitDatabuf(j)*=Digit}if(j==){Digit=xEZUSBWriteIC(LEDADDR,x,(Digit))EZUSBWaitForEEPROMWrite(LEDADDR)EZUSBDelay()EZUSBReadIC(LEDADDR,x,(Digit))EZUSBWaitForEEPROMWrite(LEDADDR)while(){EZUSBReadIC(LEDADDR,x,(Digit))if((Digitx)==)breakEZUSBWaitForEEPROMWrite(LEDADDR)}Databufj*=DigitDatabufj*=Digit}}for(j=j<j){Digit=ChSelectorjEZUSBWriteIC(PCFADD,x,(Digit))EZUSBWaitForEEPROMWrite(PCFADD)EZUSBDelay()Digit=xEZUSBWriteIC(ADCHIP,x,(Digit))EZUSBWaitForEEPROMWrite(ADCHIP)EZUSBDelay()EZUSBReadIC(ADCHIP,x,(Digit))EZUSBWaitForEEPROMWrite(ADCHIP)EZUSBDelay()while(){EZUSBReadIC(LEDADDR,x,(Digit))if((Digitx)==)breakEZUSBWaitForEEPROMWrite(LEDADDR)}if(j>){Databuf(j)*=DigitDatabuf(j)*=Digit}if(j==){EZUSBDelay()Digit=xEZUSBWriteIC(ADCHIP,x,(Digit))EZUSBWaitForEEPROMWrite(ADCHIP)EZUSBDelay()EZUSBReadIC(ADCHIP,x,(Digit))EZUSBWaitForEEPROMWrite(ADCHIP)EZUSBDelay()while(){EZUSBReadIC(LEDADDR,x,(Digit))if((Digitx)==)breakEZUSBWaitForEEPROMWrite(LEDADDR)}Databufj*=DigitDatabufj*=Digit}}EZUSBDelay()Digit=xEZUSBWriteIC(LEDADDR,x,(Digit))RI=ES=IOA=}break}}voidTimerInt(void)interrupt{TimeCounTF=TH=TL=}voidSerialPort(void)interrupt{unsignedcharSerialCon=接收命令帧缓冲区计数unsignedcharDatabuf数据缓冲区unsignedcharComDataBuf命令缓冲区if(RI==){RI=if(comTrg==){if(SBUF==)comTrg=}if(comTrg==){ComDataBufSerialCon=SBUFSerialConif(SerialCon==){comTrg==SerialCon=if((ComDataBuf==)(ComDataBuf==)){ChipAddr=ComDataBufif((HardAddr==ChipAddr)||(ChipAddr==)){ComCoded=ComDataBuf}}}}}}voidSerialPort(void)interrupt{if(RI==){RI=ComCoded=SBUF}if(TI==){TI=}}作业一:单片机芯片内包含哪些主要逻辑部件运算器、控制器、ROM和RAMIO口。存储器分为哪几个地址空间如何区别不同空间寻址程序存储器(片内、片外)、数据存储器(片内、片外)寻址程序存储器用MOVC指令寻址内部RAM用MOV指令寻址外部RAM用MOVX命令。简述直接位寻址的空间分配,片内RAM中包含哪些可位寻址单元内部RAM位寻址区为H~FH个单元位位地址为H~F。除此之外特殊功能寄存器区也有可以直接寻址的位。单片机EA引脚有何功能当单片机芯片内部有程序存储器时如果加电复位需要首先执行片内的程序存储器中的程序则EA必须接高电平。如果单片机片内没有程序存储器则EA需要接低电平。片内RAM的低B单元划分为哪三个主要区域各区域主要功能是什么工作寄存器区个工作寄存器对应的单元分为组用于存放工作寄存器的内容工作寄存器占用的单元可编程位寻址区用于记忆一些事件的两种状态一般数据区存放临时数据及堆栈区。开机复位后,CPU使用的个工作寄存器的地址是什么如何改变工作寄存器的地址H~H由PSW寄存器的RS、RS两位的值决定R~R的地址。位地址与字节单元地址CH如何区别位地址CH位于片内RAM中的什么地址的单元由指令区别位地址CH位于FH单元内的D位。什么是堆栈堆栈的作用是什么堆栈的容量最大为多少位于H~FH内的一块区域遵循“先进后出”或“后进先出”规则。在中断程序调用或子程序调用中用于保护现场存储临时数据。字节。第二次作业:.什么是寻址方式?MCS单片机有几种寻址方式?MCS单片机的低空间分成几个区?每个区的特点或用途是怎样的?对特殊功能寄存器区应采用何种寻址方式?如何找到存放被操作数据地址的方法。种。直接寻址。.请写出以下数据传送的指令。()R的内容传送到RMOVRRMOVARMOVRA()外部RAM的H单元的内容送内部RAM的H单元MOVDPTR#HMOVXADPTRMOVH,A()外部RAM的H单元的内容送内部RAM的H单元MOVDPTR#HMOVXADPTRMOVH,A()外部ROM的H单元送内部RAM的H单元MOVDPTR,#hMOVA,#MOVCA,ADPTRMOVH,A()外部ROM的H单元送外部RAM的H单元。MOVDPTR,#HMOVA,#MOVCA,ADPTRMOVDPTR,#HMOVXdptr,A.设内部RAM的H单元的内容为H即(H)=H(H)=H(H)=H端口P寄存器的值为CAH问执行以下指令各有关存储单元、寄存器及端口(即R、R、ABPHHH单元)的内容是什么?MOVR#HR=HMOVARA=HMOVR,AR=HMOVB,RB=HMOVR,P(H)=CAHMOVH,#H(H)=HMOVH,H(H)=H分析以下程序段运行的结果。设一个位的二进制数高位存于H单元低位存于H单元。请分析以下程序。CLRC(CY)=XCHAHA=(H),(H)=ARRCA带进位循环右移XCHAH(H)=A,A=(H)XCHAH(H)=A,A=(H)RRCA带进位循环右移XCHAH(H)=A,A=(H)程序功能:位数第三次作业:试编写程序查找在内部RAMH~H单元中出现的H的次数并将查找的结果存入H单元。MOVR,#MOVR,#HMOVR,#LOOP:MOVA,RINCRCJNEA,#,NextINCRNext:DJNZR,LOOPMOVH,R已知两个位无符号数a,b存放在BUF和BUF两个单元,编写程序计算ab,结果可能大于位,仍放回BUF和BUF单元(BUF单元为高字节)MOVR,BUFMOVA@R0MOVB,#MULABMOVR,BCLRCINCRADDA,RMOVBUF,AMOVA,RADDCA,#MOVR,A外部数据RAM从H到H有一个数据块,现要将它们传送到H到H的区域,试编写有关程序MOVDPTR,#HMOVR,#FFHMOVXA,dptrINCDPTRMOVR,DPLMOVR,DPHMOVDPTR,#HMOVXdptr,AINCDPTRLOOP:PUSHDPHPUSHDPLMOVDPL,RMOVDPH,RMOVXA,dptrINCDPTRMOVR,DPLMOVR,DPHPOPDPHPOPDPLMOVXDPTR,AINCDPTRDJNZR,LOOP下列程序经汇编后,从H开始的单元存放的内容是什么ORGHTABEQUHTABEQUHDB“START”DWTAB,TAB,HH:’S’,’T’,’A’,’R’,’T’H:H,H,H:H,H,H:H,H. 知片内RAM以ADDR为起始地址的区域存放着个无符号数,试编写程序找出最小值,并存入MIN单元MOVMIN,#MOVR,ADDRMOVR,#LOOP:MOVA,RCLRCSUBBA,MINJCLessThanAJMPGreateThanLessThan:MOVMIN,RGreateThan:INCRCJNER,LOOPEND. 分别用数据传送、位操作指令编写程序将片内RAM位寻址区的位地址清零。     MOVR,#hMOVR,#LOOP:MOVA,#MOVR,AINCRDJNZR,LoopMOVR,#ffHLOOP:CLRRDJNZRend第四次作业:.什么是ROM和RAM?简述各自的特点?芯片功能引脚各有哪些?ROM:其数据只能读出掉电数据仍然存在用于保存程序和数据引脚为:片选、输出使能、数据线和地址线。RAM:随机存储器数据既可以读出也可以写入数据掉电后将丢失。引脚为:片选、读信号线和写信号线、数据线和地址线。.简述单片机系统中的三总线。系统扩展时单片机提供的三大总线信号有哪些?怎样生成数据和地址线?        数据线、地址线和控制线。P0P2ALEPSEN读、写数据从P0口读和写P0和P2构成地址线。.画出8031单片机采用2片2764EPROM芯片扩展16KB程序存储器的电路图。.画出8031单片机扩展一片2764和一片6264的电路图指出各个芯片的地址范围。第五次作业:什么是中断什么是中断源当CPU正在运行时外部发生的某一随机事件请求CPU迅速去处理于是CPU暂时中止现行的程序转取处理所发生的事件(执行中断服务程序)处理完该事件后再回到原来被终止的地方继续原来的程序。这种在程序执行过程中由于随机事件的发生而被中断运行的情况称为中断。产生中断请求的事件。MCS单片机有几个中断源各中断源的优先级是如何确定的MCS-51单片机具有5个中断源可编程为2个中断优先级。同级的中断源由其硬件的查询次序确定。MCS单片机响应中断的条件是什么CPU响应中断时,不同的中断源,其中断服务程序的入口地址是什么条件:中断源发出中断请求中断允许位EA=即CPU开放中断发出中断的中断源所对应的中断允许位置为“”即不屏蔽该中断在满足上述条件的情况下并且不存在下述情况则CPU会响应中断:CPU正在执行同级或更高级中断服务程序当前的指令周期还未结束现行指令为RETI或者是访问IE或IP的指令该指令以及紧接着的下一条指令还还未执行完。为了保证CPU能正确返回CPU在执行RETI或访问IE、IP的指令后至少需要再执行一条指令才会响应新的中断。若存在上述任何一种情况则CPU将丢弃中断查询结果若没有则CPU将在紧接着的下一个机器周期内响应中断。入口地址:03H0BH13H1BH23H。MCS单片机的外部中断有几种触发方式     电平触发和边沿触发。MCS单片机的中断系统有几个优先级如何设定    2个由中断优先级寄存器的各编程位确定。MCS单片机系统定时测试压力、温度定时用T来实现压力超限和温度超限报警信号分别由外部中断和外部中断实现中断优先级排列顺序以次为压力超限→温度超限→定时检测试确定专用寄存器IE和IP的内容并编写初始化程序。IP:PSPT1PX1PT0PX000000101IE:EAESET1EX1ET0EX010000111作业六:MCS的T、T用作定时器时其定时时间与哪些因素有关?定时器模式、振荡器频率。MCS单片机的晶振频率为MHz使用单片机的内部定时方式在P引脚上产生频率为kHz的方波信号。kHz方波信号的周期为可以采用8位重装载模式产生该方波假设方波的占空比为50%则定时器的定时间隔为并采用中断方式。采用定时器0。      ORG 0H       AJMPSTARTORGBHAJMPTimerSrvSTART:MOVTMOD,#MOVTL,#CEHMOVTH,#CEHSETBETSETBEASETBTRLOOP:AJMPLOOPTimerSrv:CPLPRETIEND设MCS单片机的晶振频率为MHz使用定时器T的定时模式在P输出周期为占空比(高电平占用整个信号周期的比例)为以查询方式编写程序。时间常数:高电平时间TH=xFFH,TL=xFAH低电平时间,TH=xFFH,TL=xFCH。MOVTH,#FFHMOVTL,#FAHMOVTMOD,#HSETBTRSETBPLOOP:Wait:JNCTF,WaitCLRTFMOVTH,#FFHMOVTL,#FCHCLRPWait:JNCTF,WaitSETBPMOVTH,#FFHMOVTL,#FAHAJMPLOOPEND设MCS单片机的晶振频率为MHzT用于定时T用于次计数T和T均要求重复工作。外部计数脉冲应从何引脚输入?(外部引脚从INT引脚引入)。试根据上述要求编写程序。两者均采用位模式即定时计数模式。时间常数:定时器TH=BHTL=EH计数器TH=FFHTL=CH两者均采用中断方式但不嵌套。ORGHAJMPSTARTORGBHAJMPTimeSrvORGBHAJMPCountSrvORGHSTART:MOVTH,#BHMOVTL,#EHMOVTH,#FFHMOVTL,#CHMOVTMOD,#HSETBETSETBETSETBEASETBTRSETBTRWait:AJMPWaitTimeSrv:CLREAMOVTH,#BHMOVTL,#EHSETBEARETICountSrv:CLREAMOVTH,#FFHMOVTL,#CHSETBEARETIEND作业:i计算机的两种通讯方式是什么?各有什么特点?并行和串行。并行:传输速度高距离近。串行:传输速度低距离远。ii什么是异步串行通讯?什么是同步串行通讯?接收和发送端采用独立的移位脉冲控制数据的串行移出与移入发送移位脉冲和接收移位脉冲是异步的因此称为异步串行通讯。在同步通讯中发送和接收双方由一个同步脉冲控制数据位的串行移出和移入是同步的因此称为同步串行通讯。iii波特率具体含义是什么?波特率是表征串行口数据传送速率的量其定义为每秒传送二进制数据的位数单位为bitsivMCS单片机的串行口工作方式有几种?各是什么?每种方式的波特率如何计算?种工作方式~工作方式。工作方式波特率fosc波特率=的溢出率溢出率=计数速率计数值波特率=波特率=的溢出率溢出率=计数速率计数值v设串行口为工作方式波特率为bits,fosc=MHz,T为自动重装载工作方式试确定T的定时常数。参阅上述表格自行计算。分别用中断和查询方式编写一段程序从串行口发送个字节的数据设数据缓冲区的首地址为H。查询:PCON=TH=XF设置波特率为TL=XFSCON=X设置串口位方式TR=定时器开始计数MOVR,#MOVR,#HCLRTISLoop:MOVA,RINCRMOVSBUF,AWait:JNCTI,WaitCLRTIDJNZR,SLoopEND中断:ORGhAJMPSTARTORGHAJMPSerialSRVSTART:PCON=TH=XF设置波特率为TL=XFSCON=X设置串口位方式设置串行口ES=TR=定时器开始计数SETBESSETBEAMOVR,#MOVR,#HCLRTIMOVA,RMOVSBUF,AINCRLOOP:AJMP LOOPSerialSRV:DECRCJNER,#,RretMOVA,RMOVSBUF,AINCRRETIRret:CLREARETIENDa)试编写一段程序将初始化为串行口工作方式为波特率为波特允许串行口中断。设特殊功能寄存器中无关的位均为fosc=MHz(自行计算)作业:在单片机系统中为什么要进行IO接口扩展?IO接口具有哪些基本功能?芯片上集成的资源不能满足测控系统的要求。地址译码和IO设备选择功能输入输出功能信息电平转换功能联络功能可编程功能。在单片机系统中非编码键盘有几种形式?各有什么特点?        独立式按键和行列式按键。独立式按键是指直接用IO口线构成单个按键电路每个按键占用一条口线每个按键的工作状态不会产生影响。占用口线多。行列式键盘是将IO口线的一部分作为行线另外一部分作为列线按键设置在行和列的交叉点上从而构成了行列式键盘。行列式键盘中按键的数量可达行线数乘以列线数故行列式键盘在按键较多时可以节省IO口线。数码管显示器有哪两种显示方式?各有何特点?动态显示方式和静态显示方式。静态显示各位独立各位的显示字符一经确定相应锁存器的输出不变直到显示另外一个字符为止显示亮度较高。动态显示硬件简单但需要定时刷新。作业:DA转换器的作用是什么把数字量转换成模拟量。AD转换器的作用是什么把模拟量转换成数字量以使计算机能够识别。用单缓冲的电路图产生特殊波形的程序,要求方波周期为毫秒,而占空比为:(高电平时间占整个周期时间的比值)(自行编写乘程序)。测控线路及传感器测控处理器(CPU)GPRS模块电讯网络INTERNET网络数据服务器耦合线路电力载波收发器传感器执行器耦合线路电力载波收发器传感器执行器网络接口计算机电力线CPU控制部件RAMP口P口程序存储器P口串行口定时器计数器中断系统特殊功能积存器P口CB外部程序存储器HFFFFH内部EA=外部EA=FFFHH工作寄存器HFH位寻址区HFH数据缓冲区HFH特殊功能寄存器RAM(或)HFFHARi#dataRndirectRiARndirectXCHDXCHXCHSWAPXCHAAACYACY#dataRndirectRiA加计数器TF振荡器�EMBEDEquation���TGATETRINT中断CT=CT=TL低位TF振荡器�EMBEDEquation���TGATETRINT中断CT=CT=TH高位unknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknow

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/51

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利