一个模拟信号输入到单片机给单片机,单片机如何判定他大小?

基于单片机的正弦信号发生器的设计
我的图书馆
基于单片机的正弦信号发生器的设计
摘 要:本系统采用AT89S51单片机为核心,辅以必要的模拟,数字电路,构成了一个基于DDS技术的正弦波信号发生器。该软件系统采用4*4键盘操作,以菜单形式进行显示,操作方便简单,软件增加了许多功能。它通过启动DDS,把内存缓存区的数据读出送到DDS后输出相应的频率,并把数据转换为BCD码,通过液晶显示器进行显示。该系统体积小、稳定度、精度极高,方便携带,适用于当代的尖端的通信系统和精密的高精度仪器以及高频无线传输系统等。  一.方案  1. 常见信号源制作方法:采用DDS,即直接数字频率合成,其原理方框图如图0所示,  它以有别于其它频率合成方法的优越性能和特点成为现代频率合成技术中的佼佼者。具体体现在相对带宽、频率转换时间短、频率分辨率高、输出相位连续、可产生宽带正交信号及其他多种调制信号、可编程和全数字化、控制灵活方便等方面,并具有极高的性价比。  2.调幅电路:用增益可变运放AD603,其传输带宽高达90MHZ,完全可以满足输出信号频率的要求。  3.调频电路 :压控振荡器  压控振荡器的输出频率是随着输入电压的改变而改变的,鉴于此,如果用调制信号来控制压控振荡器的输入电压,即可实现调频。这样显然简单而容易控制,且精度较高。  4.显示模块:采用液晶(LCD)显示,界面形象清晰,内容丰富,可显示复杂字符,易于和单片机接口,且耗电少,故优先采用。  5.A/D转换模块:用8位串行A/D转换器TLC549实现,TLC549(TLC548)是TI公司生产的一种低价位、高性能的8位A/D转换器,它以8位开关电容逐次逼近的方法实现A/D转换,其转换速度小于17us,它能方便地采用三线串行接口方式与各种微处理器连接,构成各种廉价的测控应用系统,且读写TLC549比读写ADC0809简单。  二.系统硬件设计  1.总体设计  本系统采用51单片机作为核心,控制DDS芯片AD9851产生频率为1KHZ至10MHZ的正弦波系统框图如图1所示图1 正弦波系统总体框图2.模块说明  (1)用单片机控制AD9851产生频率为1K至10MHZ的正弦波,自动增益控制实现增益自动调节,当输出幅度过大或偏小时,单片机通过检波电路和A/D 采样调节增益大小。放大级对已调信号进行幅度放大,然后输出至负载。  (2)检波电路对输出信号采样,经过A/D转换送给单片机处理。  (3)显示模块对输出信号动态显示  (4)单片机控制压控振荡器产生频0率随调制信号变化的信号,并把已调信号送到AD9851,作为AD9851的时钟频率,从而实现对载波信号的调频。  (5)模数转换用8位串行A/DTLC549即可实现。  (6)二进制数字基带信号用单片机直接产生,这种方式简便,快捷,而且稳定度很好  3.理论分析与参数计算  (1)正弦信号发生器  DDS是产生高精度、快速变换频率、输出波形失真小的优先选用技术。DDS以稳定度高的参考时钟为参考源,通过精密的相位累加器和数字信号处理,通过高速D/A变换器产生所需的数字波形(通常是正弦波形),这个数字波经过一个模拟滤波器后,得到最终的模拟信号波形。如图2所示,通过高速DAC产生数字正弦数字波形,通过带通滤波器后得到一个对应的模拟正弦波信号,最后该模拟正弦波与一门限进行比较得到方波时钟信号。DDS系统一个显著的特点就是在数字处理器的控制下能够精确而快速地处理频率和相位。除此之外,DDS的固有特性还包括:相当好的频率和相位分辨率(频率的可控范围达μHz级,相位控制小于0.09°),能够进行快速的信号变换(输出DAC的转换速率300百万次/秒)。这些特性使DDS在军事雷达和通信系统中应用日益广泛。  本系统采用了美国模拟器件公司采用先进DDS直接数字频率合成技术生产的高集成度产品AD9851芯片。AD9851是在AD9850的基础上,做了一些改进以后生成的具有新功能的DDS芯片。AD9851相对于AD9850的内部结构,只是多了一个6倍参考时钟倍乘器,当系统时钟为180MHz时,在参考时钟输入端,只需输入30MHz的参考时钟即可。如图4(AD9851内部结构)所示,AD9851是由数据输入寄存器、频率/相位寄存器、具有6倍参考时钟倍乘器的DDS芯片、10位的模/数转换器、内部高速比较器这几个部分组成。其中具有6倍参考时钟倍乘器的DDS芯片是由32位相位累加器、正弦函数功能查找表、D/A变换器以及低通滤波器集成到一起。这个高速DDS芯片时钟频率可达180MHz, 输出频率可达70 MHz,分辨率为0.04Hz。  为了实现调频,DDS的基准信号源采用压控振荡器输出的30 M频率作为基准信号源由于AD9851是贴片式的体积非常小,引脚排列比较密,焊接时必须小心,还要防静电击穿,焊接不好就很容易把芯片给烧坏。还有在使用中数据线、电源等接反或接错都很容易损坏芯片。所以在AD9851外围采用了电源、输入、输出、数据线的保护电路。为了不受外界干扰,添加了不少的滤波电路,显得整个电路更完美。详细电路图如图2。  图2 硬件电路图  (2)压控振荡器  MC1648有两种基本型VCO的压控特性,这里我们只采用其中一种第一种基本负阻集成LC VCO 电路如图3 示,它仅用一只变容二极管,并由芯片MC1648 外加谐振回路组成。MC1648 为集成射极耦合振荡电路,具有负阻效应,输出MECL 电平。  图3 基本负阻集成LC VCO 电路图  其详细电路图如图4所示  图4 详细电路图  (3)自动增益控制模块  AD603 的原理框图[1 ]其原理图如图5 所示  图5 AD603 的原理框图  已调信号从1K至10MHZ变化,频带很宽,用一般的运放不能满足要求,AD603的频带宽度为0到90MHZ,完全能够满足要求,且为增益可变运放,由于频率高时信号衰减比较快,用AD603可实现对不同频率信号的放大倍数。其电路他图6所示  图6 AD603可实现对不同频率信号的放大倍数的电路图(5)正弦波调制信号  采用NE555产生1KHZ的正弦波调制信号,电路如图7所示,其中AM和FM 都是用此电路产生调制信号  图7 正弦波调制信号产生电路图  (6)稳幅输出模块  峰值检波器获得输出电压的幅值,经过A/D采样后就得到输出端当前电压的幅值,送回单片机与预设值相比就可以知道输出下降的情况,从而实现自动增益控制。  (7)显示模块  显示电路是很重要的人机界面。在显示电路中,我们没有选择普通的数码管显示,而是优先采用了能够显示复杂字符的5 × 7 点阵液晶显示器(1602)。此显示界面分为上下两行:提示字符“请输入频率:”下一行为频率值显示与数码管相比,其优点是:功耗低,显示形象直观,人机界面友好。控制部分:键盘输入经单片机处理后控制AD9851的频率输出,达到智能控制目的。  (8)按键电路  采用4*4键盘,系统不停的对按键进行扫描,当有键按下时,即转去执行相应的程序。  (九)A/D转换模块  其中 1和3脚为参考电压,接电位器可以改变参考电压,2脚为模拟信号输入端,4脚为 接地端,5脚为片选,低电平有效,故接地,6,7,8分别为数据输出端和时钟输入端及电源端。  三.系统软件设计  系统软件流图如图8所示,通过按键选择所需要的频率,操作简单快捷。图8 系统软件流程图四.系统调试  根据方案设计要求,调试过程公分三大部分,硬件调试,软件调试,软件和硬件联调。电路按模块逐个调试,各模块调试通过后在联调。程序先在最小系统板调试,通过后在软硬联调。  1. 硬件调试  (1) 高频电路抗干扰设计 AD9851的时钟频率很高,对周围的电路有一定的影响,我们采取了各种抗干扰措施。例如引线尽量短,减少交叉,尽量减少跳线,在电源输入端都加上去藕电容,数字地与模拟地分开,信号源与地尽量隔远,增大接地面积,这就要求设计电路时采取敷铜的方法,实践证明,这些措施对消除某些引脚上的毛刺及干扰噪声起到了很好的作用。  (2) 由于输出频率很高,因此对运放的带宽有一定的要求,我们选择了带宽较大的AD811。  2. 软件调试  本系统的软件系统采用C51写,调试也是分模块进行,各个模块调试通过函数里调用,这样写结构明了,出错时容易查错。  3. 软硬联调  按程序定义的各个口分别把线接好,然后把程序写进单片机控制各个模块  五.指标测试  1. 测试仪器  (1)示波器  (2)万用表  六.测试方法与结果分析  (1)通过键盘输入所需的频率,然后按确认键即可从示波器上看到输出信号,输出频率范围为:1KHZ至10MHZ。输入所需频率后,按住“+”“-”键即可实现频率的步进,步进频率为100±5HZ,每按按一次“-”键,频率降低:100±5HZ。  按一次“+”键,频率升高:100±5HZ。  (2)输出所需频率F后,观测到频率跳变小于发F×10E-4,所以输出频率稳定度优于1×10e-4.  (3)在输出端接上50欧的电阻 ,用示波器探头接到输出端,观察到示波器输出峰峰值如下表所示    由此可见,输出幅度符合基本要求。  (4)用示波器探头接在输出端,改变输入频率从1KHZ到10MHZ变化,输出波形没有失真现象。  经过测试,基本部分的指标都能达到。发挥部分由于要求输出频率带宽很大,1KHZ到800KHZ 能够满足6v±1v,800KHZ到10MHZ电压幅度放大不够,只能达到2.5±0.5V,后来我们想设计一个高通滤波器,由于时间仓促,这部分没办法实现,所以1MHZ到10MHZ这个频段没有达到发挥部分的要求,在1M到10MHZ范围内调制度Ma 可在10%到100%内程控调节,步进量为10%,在100KHZ到10MHZ频率范围内产生的最大频偏位10KHZ,PSK和ASK信号都很好,没有明显的失真。  (5)用单片机产生速率为10Kbps的二进制基带信号,从键盘输入100KHZ的频率,然后用二进制基带信号调制载波信号,得到ASK信号和PSK信号。
馆藏&128453
TA的推荐TA的最新馆藏[转]&[转]&[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢豆丁微信公众号
君,已阅读到文档的结尾了呢~~
单片机模拟信号采集???,8
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
单片机模拟信号采集
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口如何用一个单片机制作一个简易示波器如何用一个单片机制作一个简易示波器木家具机床知识百家号作为(伪)科班出身的小编,大学苦逼学了四年各种电路、各种单片机,也是各种设计,各种懵逼。虽然如此,曾有小编也是有过“给我一个单片机,还你一个世界”的雄心壮志,现在……,现在,嘿嘿,还是先看看如何用一个AVR单片机设计一个简易示波器吧(大神可以自动忽略此贴)。1系统结构框图图1 系统结构图1.1信号调理电路首先介绍信号调理电路。信号调理电路要完成的功能是:程控放大,叠加直流分量。程控放大:程控放大的作用则是当输入信号的幅度很小的时候就需要对输入信号进行放大,使得被测信号可以在LCD上尽可能清楚地显示出来。叠加直流分量电路:ATmega16自带的A/D是单电源的,没办法输入负压,而待测信号又往往有负压,这时候就需要一个叠加直流分量的电路,从而可以把负压抬高到0电平以上。图2 信号调理电路原理图R1、R2分别由一个模拟开关CD4051来连接不同的电阻,用以实现程控放大功能了。可调电阻R9来设置信号调理电路加入的直流分量的大小。放大后的信号和直流分量最后由U3模拟加法器叠加后输出。1.2主控芯片软件设计本系统的主控芯片选择Atmel公司的AVR系列单片机ATmega16,最高可达到16MPIS指令速度。ATmega16有16K的flash, 1K的SRAM, 512 B的EEPROM,单片机内部自带一个10 bits精度的逐次逼近型模数转换器,内建采样/保持电路。ADC的时钟是可编程的,在这个设计中为了太到最高的采样频率100KHz ADC的时钟设置为2MHz。ADC的触发源选择为定时器/计数器0溢出,ATmega16的定时器的时钟源也是可编程的。这样就可以通过控制定时器/计数器0溢出中断频率来控制ADC的采样频率。图3 简易示波器系统程序流程图1.2.1键盘功能在这个系统中设置了7个按钮分别为:运行与停止,放大倍数增大,放大倍数减小,采样频率增大,采样频率减小,触发电平上移,触发电平下移。运行与停止键:是通过开启和关闭ATmega16 ADC转换完毕中断的方式来实现的。放大倍数的增大与减小:是通过ATmega16控制模拟开关CD4051来实现放大倍数的数字化控制。CD4051为8通道的模拟开关,所以程控放大器可以有8档。采样频率的增大与减小:是通过控制ATmega16的定时器0的时钟源及定时器的初始值来实现系统所需要的各个采样频率。定时器0的中断频率就等于ADC的采样频率。触发电平的上移与下移:是通过对采样来的数据进行数字触发时,当数据的二进制值在增加的过程中某个数据的大小刚好与数字触发的二进制数值一样,在此以后的波形数据才存入显示RAM中。当这7个按键中的某一个被触发,都会置位相应的标志位,以便刷新LCD液晶屏上相应的显示信息。1.2.3、数字触发功能用硬件来完成的话又会增加系统硬件电路的复杂度,本设计用软件的方式来实现触发的功能。实现的过程如下:for (ik=0;ik&500;ik++){if (k0_ram)if (box_buff[ik] & trigger)kk_ram = 1 ;}if (kk_ram)if ((box_buff[ik] &= trigger) & (ik & 402))en_ram = 1 ;k0_ram = 0 ;kk_ram = 0 ;if (en_ram)boxing[adc_data]=box_buff[ik] ;adc_data++ ;if (adc_data & 96)adc_data = 0x00 ;en_ram = 0 ;trigger的大小可以通过触发电平上移与触发电平下移按键来设置它的大小。1.2.3还原波形GDM12864A是一个具有128点x 64点的点阵LCD。根据所选的LCD的特点,Y轴上只有64个点,所以能显示的数据范围为0到63而采样得到的数据为8位的二进制数据为0到255。为了能在这个LCD上显示只取8位数据的高6位。那么如何把这高6位的二进制数据转换成在LCD上的Y轴座标和数据值呢?我想了这样一个计算的方法:LCD的纵向分为8个地址从上到下依次为0~7,每个地址段有8个数据点。在某个数据段中如果想依次让这些位从上到下点亮就需要依次向这个地址段送数据0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,送入0x00后这个地址段的8个数据点将不被点亮。实现的具体过程如图4所示。dat = dat&&2y = 7dat &= 8 ;dat = dat – 8; y--;y == 1 ;dat & 7 ;dat = 7 ;dat = 0x80 && datwrite_add(y,x) ;write_data(dat) ;否图4 数据还原成波形上点的程序流程图1.2.4ADC采样频率控制ADC的采样频率在上文已有提及,ADC中断的计算公式为:,通过ATmega16的特殊功能寄存器TCCR0的低3位CS02,CS01,CS00的设置就可以改变的频率,再把TCNT0设置成不同的数值就可以得到这个系统所需要的各个采样频率值了。表1中的数据是通过上面的公式计算出来的数据再经实际的系统调试并修正后的数据。表1 采样频率的设置2系统性能指标及误差2.1系统性能指标系统主要性能指标见表2所示。表2 系统主要性能指标2.2系统误差系统的误差主要出在信号调理电路,因为模拟开关有一定的内阻约为80Ω对调理电路的放大倍数会造成一定的影响。通过1.1中的计算公式计算出来的电阻值在实际中不存在,通过几个电阻串联来实现也还是会有一定的误差。平衡电阻R3是固定的在R1,R2发生变化的时候,平衡电阻可能就不能平衡也会给运算放大器引入一定的误差。2.3可以改进的地方系统可以进一步改进的地方在于信号调理电路,可以通过选择性能更好的模拟开关和运算放大器,更合理的选择电阻这样就可以提高信号调理电路的放大的准确度。使整个系统的性能得以进一步改善。2.4、系统实际工作情况LCD显示的信息分别有,波形图像,在波形的上面是横轴的标尺,在屏幕的右边为系统的运行状态(Run / Stop),Time为整个波形框的时间长度,Volt-为电压档,在波形框与信息框之间有个小点为信号的触发电平。信号的频率=波形框中信号的周期数/Time。结论用这种方法可以实现一个简易的示波器,整个系统结构简单,清晰。充分利用了AVR单片机内部资源使系统电路得以简单化,就连系统的工作时钟也是AVR内部自带的。通过测试该系统在测量频率方向的误差很小,可以用来比较准确的测量测试信号的频率。本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。木家具机床知识百家号最近更新:简介:排他性视角,个人独创性,科学探索作者最新文章相关文章1.微型计算机通常由哪些部分组成?各有哪些功能? SJMP rel ;相对跳转范围:-128~+127
必须采用其它方法撤消该引脚上的低电平,来撤除外部8751等单片机虽然向用户提供EPROM程序存储器,但答:通常由控制器、运算器、存储器、输入/输出接口(2) 指令长度不同。
中断请求信号,否则有可能再次中断造成出错。 采用程序存储器空间容量不大,程序存储空间不足时,还必电路、输入设备和输出设备组成。控制器的功能是负责(3) 指令构成不同。AJMP、LJMP后跟的是绝对地址,边沿触发方式时,IT0=1,CPU在每个机器的S5P2期须扩展外部程序存储器。 MCS-51系列单片机内部通常从内部存储器中取出指令,并对指令进行分析、判断、而SJMP后跟的是相对地址。不能用 AJMP 指令代替间采样,当检测到前一周期为高电平,后一周期为低电有128B至256B的片内数据存储器,用于一般的控制并根据指令发出控制信号,使计算机有条不紊的协调工程序中的 SJMP 指令,因为如果改变的话,程序跳转平时,使标志IE0置1,向CPU申请中断,此标志位一及运算是足够的,但若用于数据存储,其容量是不足的,作;运算器主要完成算术运算和逻辑运算;存储器用于到的新 PC值指向的地址会不同,导致程序出现错误。
直保持到CPU响应中断后,才由硬件自动清除。在边在这种情况下,必须扩展数据存储 存储程序和数据;输入/输出接口电路完成CPU与外设13.写出实现下列要求的指令或程序片段。(1) 将R0的沿触发方式中,为保证CPU在两个机器周期内检测到器。 MCS-51系列单片机对外提供32条I/O口线,但之间相连;输入和输出设备用于和计算机进行信息交流内容传送到R1;MOV A, R0
由高到低的负跳变,高电平与低电平的持续时间不得少其P0口作为地址/数据复用口,P2口用于提供高 8 位MOV R1, A
的输入和输出。 于一个机器周期的 地址,而其 P3 口具有第二功能,若扩展了程序存储器MOV 时间。
2单片微型计算机与一般微型计算机相比较有哪些区(2) 内部RAM的20H单元内容传送到寄存器R1;或数据存储器,单 R1, 20H(3) 内部RAM的20H单元的D7和D3位清零,23.试分析以下几种中断优先级的排列顺序别?有哪些特点?
(级别由高到片机的I/O口往往也不够用,有时必须进行I/O口的扩答:与通用微型计算机相比,单片机的硬件上,具有严其它位保持不变;MOV A, 20H
低)是否可能?若可能,则应如何设置中断源的中断级展。 应用系统中有时还涉及到数据的输入、输出、人ANL A, #77H
格分工的存储器ROM和RAM和I/O端口引脚具有复别?否则,请简述不可能的理由。 (1) 定时器T0中断,机交互信息等接口问题,必须进行有关 用功能;软件上,采用面向控制的指令系统和硬件功能(4) 外部RAM的1000H单元内容传送到内部RAM的定时T1中断,外中断1NT0,外中断INT1,串行口中接口电路扩展。 60H单元中;
具有广泛的通用 断;答:可以,将定时器T0中断,定时T1设置为高优34.A/D及D/A转换的含义是什么? 答:A/D转换是指MOV DPTR, #1000H
性,以及品种规格的系列化。单片机还具备体积小、价先级中断,将外中断1NT0,外中断INT1,串行口中断将模拟信号转换为数字信号,主要用于微机控制系统的MOVX A, @DPTR
格低、性能强大、速度快、用途广、灵活性强、可靠性(2) 串行口中断,外中断1NT0,定时器T0中断,外中模拟信号数据采集。D/A转换是指将数字信号转换为模MOV 60H, A
高等特点。 断INT1,定时器T1中断;答:可以,将串行口中断设拟信号,主要用于恢复模拟信号或进行模拟控制。
(5) 外部RAM的1000H单元内容传送到寄存器R2;3.单片机的几个重要指标的定义 置为高优先级中断,将外中断 1NT0,定时器 T0 中断,35.DAC0832器件有哪些主要技术指标?其含义是什MOV DPTR, #1000H
答:单片机的重要指标包括位数、存储器、I/O口、速外中断INT1,定时器T1中断设置为低优先级中断;(3) 么? 答:DAC0832是将数字信号转换为模拟信号的器MOVX
度、工作电压、功耗和温度 外中断INT0、定时器T1中断,外中断INT1,定时器件。它的主要技术指标及含义如下: 分辨率:8位,可MOV
4.简述单片机嵌入式系统的定义和特点 T0中断,串行口中断。答:不行,因为 MCS-51 单片以将8位数字量转换为模拟量; 建立时间:1μS,即(6) 清除累加器高4位。ANL A, #0FH 答:单片机嵌入式系统是嵌入到对象体系中的专用计算14.试编写一段程序,将内部数据存储器30H、 3lH单机有 2 级中断优先级别,同级中断还存在按次序决定从数字量写入8位DAC寄存器到产生与输入数字量对机系统;其特点是面向特定应用、与各个行业的具体应元内容传送到外部数据存储器1000H、1001H单元中。 的第二优先级结构,由高到低依次为外中断 1NT0、定应的模拟量输出的时间; 输入信号:与TTL电平兼容用相结合、硬件和软件高效率、软件固话在存储器芯片MOV A, 30H
时器 T0 中断、外中断 INT1、定时器T1中断、串行的二进制信号; 输出信号:与输入二进制信号对应的MOV DPTR, #1000H
或单片机本身和不具备自举开发能力。 口中断。 电流信号; 电源:单一+5V电源;
5.MCS-51单片机内部包含哪些主要功能部件?他们的MOV @DPTR, A
24.当正在执行某一中断源的中断服务程序时,如果有新36.ADC0809器件有哪些主要技术指标?其含义是什MOV A, 31H
作用是什么? 的中断请求出现,试问在什么情况下可响应新的中断请么?
答:MCS-51单片机在一块芯片中集成了CPU、RAM、MOV DPTR, #1000H
求?在什么情况下不能响应新的中断请求? 答:一个答:ADC0809是将模拟信号转换为数字信号的AD器MOV @DPTR, A
ROM、定时\\计数器、多功能I\\O口和中断控制等基本正在执行的低优先级中断程序能被高优先级的中断源件,它的主要技术指标及含义如下: 分辨率:8位,可15.试编写一段程序,将外部数据存储器40H单元中的功能部件。单片机的核心部分是CPU,CPU是单片机所中断,但不能被另一个低优先级的中断源所中断。若 以将输入模拟量转换为与之对应的8位数字量;信号输内容传送到0l00H单元中。
的大脑和心脏。程序存储器用于存放编好的程序或表格MOV DPTR, #0040H
CPU 正在执行高优先级的中断,则不能被任何中断源入范围:0-5V;
常数。数据存储器用于存放中间运算结果、数据暂存和MOV A, @DPTR
所中断。 转换时间:即完成一次A/D转换所需时间,与外加时钟缓冲、标志位等。定时\\计数器实质上是加法计数器,MOV 0100H, A
25.在下列各种中断方式中,需要外加电路来实现中断撤信号频率有关,外部时钟信号为500KHz时转换时间为当他对具有固定时间间隔的内部机器周期进行计数时16.试编写D段程序,将P1口的高5位置位,低3位不除的是:
128μS;输出信号:与输入模拟信号对应的8位二进制它是定时器;当他对外部事件进行计数时,它是计数器。变。MOV A, P1
(1) 定时中断
(2) 脉冲方式的外部中断 (3) 外部串行数字量,信号电平与TTL电平兼容;电源:单一+5VI\\O接口的主要功能包括:缓冲与锁存数据、地址译码、中断 (4) 电平方式的外部中断 答:(4) 电平方式的外电源;
信息格式转换、传递状态和发布命令等。中断控制可以部中断
37.简述干扰的种类及其来源。
解决CPU与外设之间速度匹配的问题,使单片机可以17.常用的程序结构有哪几种?特点如何? 答:常用的26.定时/计数器有哪些专用寄存器,它们有几种工作模答:干扰一般通过导线或者通过空间和大地传播,通过及时处理系统中许多随机的参数和信息,同时他也提高程序结构有顺序、分支、循环、查表及子程序结构;特式?如何设置?
这些耦合通道对单片机测控系统发生电磁干扰作用,如点是程序的结构清晰、易于读写和验证、可靠性高。
答:有定时控制寄存器(TCON)和工作方式寄存器串模干扰与共模干扰。了其处理故障与应变能力的能力。 串模干扰来源一般是周围较强的6.简述MCS-51单片机片内RAM区地址空间的分配特18.子程序调用时,参数的传递方法有哪几种? 答:传(TMOD),具有四种工作方式:方式0、方式1、方式交变磁场,使 递方法有传递数据、传送地址和通过堆栈传递参数。 2和方式3,四种方式由工作方式寄存器(TMOD)的系统受周围交变磁场影响而产生交流电动势形成干扰,点。
答:片内数据存储器分为工作寄存器区、位寻址区和数19.编写程序,将片内30H~39H单元中的内容送到以M1和M0两位决 共模干扰的来源一般是设备对地漏电、地电位差、线路据缓冲器区等3个区域。 工作寄存器使用内部RAM中2000H为首的外部存储器。ORG 0000H
定。 本身具有对地干扰等。
地址为00H~1FH的32个单元, 并分成4个工作寄存START: MOV R0, #30H
27.如果采用晶振的频率为 3MHz,定时/计数器工作方38.简述各种干扰的特点及其主要抑制措施。
MOV DPTR, #2000H
器组,每个组有8个工作寄存器,名称为R0~R7。 对式 0、1、2 下,其最大的定时时间为多少?
答:干扰有经导线侵入的,如串模干扰与共模干扰,其MOV R1, #10
于内部 RAM 中地址为 20H~2FH 的 16 个单元,答:内部定时脉冲周期=机器周期=12/3Mhz=4us
抑制措施应从电路设计和接地技术两方面解决;干扰有CLR
CPU 不仅具有字节寻址功能,而且还具有位寻址功能。LOOP: MOV A, @R0
工作方式0:Tmax=8192*4us=32.768ms
经空间侵入的,如通过辐射与感应方式侵入,此时应采这 16 个单元共 128 位,每一位都赋予 1 个位地址,工作方式1:Tmax=65536*4us=262.144ms
用屏蔽技术来抑制;干扰有经地线传导的,此时应选择MOVX @DPTR, A
位地址范围是00H~7FH。30H~7FH是数据缓冲区,工作方式2:Tmax=256*4us=1.024ms
合适的接地方式来抑制。
即用户RAM区,共80个单元。 28.定时/计数器的工作方式2有什么特点?适用于哪些39.简述干扰对单片机应用系统的影响。
DJNZ R1, LOOP
7.单片机复位后,各特殊功能寄存器中的初始化状态是应用场合? 答:工作方式2具有初值自动重新加载和答: (1)数据采集误差增大
20.简述中断、中断源、中断嵌套及中断优先级的含义。
循环工作的特点,适用于产生固定脉宽的脉冲信号,和(2)控制状态失灵
答: 特殊功能寄存器
特殊功能寄存器
答:所谓中断是指计算机在执行某一程序的过程中,由作为串行口波特率发生器使用。
(3)数据受干扰发生变化
于计算机系统内、外的某种原因而必须终止原程序的执29.定时/计数器测量某正单脉冲的宽度,采用何种方式(4)程序运行失常初始状态
行,转去完成相应的处理程序,待处理结束之后再返回可得到最大量程?若时钟频率为6MHz,求允许测量的40.简述有源滤波器结构特点、ACC
参数选择及其主要应用场继续执行被终 PC
0000H TCON
最大脉冲宽度是多少? 答:采用定时器工作方式1可合。
止原程序的过程。
得到最大量程,最大脉冲宽度:M=131.072ms
答:由电阻、电容、电感和有源元件如晶体管、线性运SP
中断源指向 CPU 提出中断申请的设备,包括中断请求30.编写一段程序,功能要求为:当P1.0引脚的电平正算放大器等构成的滤波器为有源滤波 DPTR
信号的产生及该信号怎样被 CPU有效地识别,要求中跳变时,对P1.1的输入脉冲进行计数;当P1.2引脚的器。如下图 P0~P3
断请求信号产生一次,只能被 CPU 接收处理一次,即电平负跳变时,停止计数,并将计数值写入R0、R1(高 IP
不能一次中断申请被CPU多次响应。 中断嵌套是 CPU 位存R1, IE
正在执行低优先级中断的服务程序时,可被高优先级中低位存R0)。 答:将P1.1的输入脉冲接入T0,即使用PCON
不定 断请求所中断 T0 计数器完成对P1.1口的脉冲计数.R2中记T0计满数8.程序状态字寄存器(PSW)的作用是什么?
答:PSW寄存器是8位寄存器,用做程序运行状态的,去执行高优先级中断服务程序,待高优先级中断处理的次数。程序代码如下:
完毕后,再返回低优先级中断的服务程序。
标志,字节地址为D0H。可以进行位 中断优先级指在实际应用系统中往往有多个中断源,且
寻址。 中断申请是随机的,有时还可能会有多个中断源同时提
9.单片机时钟电路有何用途?起什么作用?
出中断申请,但 CPU 一次只能响应一个中断源发出的
答:单片机工作是在统一的时钟脉冲控制下一拍一拍地中断请求,CPU响应哪个中断请求,就需要用软件或硬MAIN: JNB
P1.0, MAIN
(a) 进行的,这个脉冲是单片机控制器中
MOV TMOD, #05H
;定时/计数器T0为计数方式1
件安排一个优先顺序,即中断优先级排队 的时序电路发出的。单片机的时序就是 CPU 在执行指 SETB TR0
;启动T0,开始计数
令时所需控制信号的时间顺序。为了保证各部件间的同21.MCS-51 单片机提供了几个中断源?有几级中断优 SETB ET0
;允许T0中断
步工作,单片机内部电路应在唯一的时钟信号下严格地先级别?各中断标志是如何产生的又如何清除这些中 SETB EA
;CPU开中断
断标志?各中断源所对应的中断矢量地址是多少?
按时序进 WAIT: JB
P1.2, WAIT
行工作。MCS-51 系列单片机内部有一个高增益反相放答:MCS-51单片机提供了5个中断源,有2级中断优
大器,用于构成振荡器,但要形成时钟脉冲,外部还需先级别。中断标志由特殊功能寄存器TCON和SCON
的相应位锁存。中断标志的撤消分为:
MOV R1, TH0
附加电路。 41.简述屏蔽的作用及其基本方法。 答:屏蔽是指用屏10.什么是寻址方式?MCS-51指令系统有哪些寻址方1)定时/计数器中断请求的撤消 中断请求被响应后,
MOV R0, TL0
硬件会自动清TF0或TF1。 2)外部中断请求的撤消( 1)
蔽体把通过空间进行电场、磁场或电磁场耦合的部分隔式?相应的寻址空间在何处?
(2)电平IT0:
离开来,割断其空间场的耦合通道。屏蔽的方法通常是答:在指令系统中,操作数是一个重要的组成部分,它跳沿方式外部中断请求的撤消是自动撤消的。
用低电阻材料作成屏蔽体,把需要隔离的部分包围起指定了参与运算的数据或数据所在的地址单元。如何找方式外部中断请求的撤消,除了标志位清“0”之外,31.简述特殊功能寄存器SCON,TCON,TMOD功能。 还需在中断响应后把中断请求信号引脚从低电平强制来。被隔离的部分既可以是干扰源,也可以是易受干扰到参与运算的这个数据或数据所在的地址就称为寻址答:SCON是串行口控制寄存器,主要用于控制、监视的部分。这样,既屏蔽了被隔离部分向外施加干扰,也方式。 MCS-51 指令系统的寻址方式主要有立即寻址、改变为高电平。
串行口的工作状态;TCON是定时控制寄存器,主要用屏蔽了被隔离部分接受外来的干扰。
直接寻址、寄存器寻址、寄存器间接寻址、基址加变址3)串行口中断请求的撤消响应串行口的中断后,CPU还需测试这两个中于控制定时/计数器的启动和停止、计数溢出标志和管42.什么是嵌入式系统?
寻址、相对寻址和位寻址等七种。 对程序存储器只能无法知道是接收中断还是发送中断,理外部中断;TMOD 是工作方式控制寄存器,主要用答:嵌入式系统是以应用为中心、以计算机技术为基础、采用立即寻址和基址加变址寻址方式;对特殊功能寄存断标志位的状态,以判定是接收操作还是发送操作,然于设定定时/计数器的的工作方式和选定定时还是计数后才能清除。所以串行口中断请求的撤消只能使用软件软/硬件可裁剪,适应应用系统对功能、可靠性、成本、器只能采用直 以及门控INT0非信号。
体积、功耗严格要求的专用计算机系统。
接寻址方式,不能采用寄存器间接寻址,对
32.简述串行口接收和发送数据的过程。 答:MCS-5143.与通用型计算机相比,嵌入式系统有哪些特点? 答:等单片机内部 RAM 的高 128 个字节(80H~FFH),
TI清TI标志位
单片机内部有一个全双工的异步串行通信口,即串行接与通用型计算机系统相比,嵌入式计算机系统具有以下只能采用寄存器间接寻址,不能使用直接寻址方式;对
RI清RI标志位
,这两个在物理上独立的接收各中断源对应的中断矢量地址分别为: 中断源
中断收和发送缓冲器(SBUF)特点: (1)功能单一。嵌入式系统通常是面向特定应位操作指令 发送器,既可以接收数据,也可以发送数据,串行口发 用的,一个嵌入式系统通常只能重复执行一个特定的功只能对位寻址区操作;外部扩展的数据存储器只能用矢量
送的过程是:先从累加器A中读入8位数据到SBUF,外部中断0
能。(2)严格的约束。所有的计算机系统在设计指标上MOVX指令访问, 而内部RAM的低128个字节随后在串行口有硬件自动加入起始位和停止位,构成一定时器T0中断
都有一些约束,但对嵌入式系统而言,这些约束尤为严(00H~7FH)既能用直接寻址,也能用间接寻址。 个完整的帧格式,然后在移位脉冲的控制下,由 TXD 外部中断1
格。(3)反应性与实时性。很多嵌入式系统都需要不断11.试用下列3种寻址方式编程, 端串行输出,一个字符帧发送完后,使 TXD 输出线维地对所处环境的变化做出反应,而且要实时地得出计算将立即数0FH送入内部RAM的30H单元中。(1)立定时器T1中断
持在 1 状态下,并将 SCON 寄存器的 TI置 1,通知 结果,不能延迟。(4)综合技术学科。嵌入式系统是将即寻址方式:
MOV 30H, #0FH (2)寄存器寻址方式: 串行口中断
CPU 可以发送下一个字符帧。串行口接收的过程是:定时器中断T2(仅52系列有) 002BH
计算机技术、半导体技术、电子技术和自动控制技术与 MOV R5, #0FH
SCON 的 REN 位应处于允许接收状态(REN=1) ,22.外部中断源有电平触发和边沿触发两种触发方式,这 MOV 30H, R5
各个行业的具体应用相结合后的产物,是一门综合技术两种触发方式所产生的中断过程有何不同?怎样设在此前提下,串行口采样RXD端,当采样到从1向0学科。(3)寄存器间接寻址方式:
(5)专用开发工具。嵌入式系统本身不具备自主定? 答:采用中断电平触发方式时,中断请求标志的状态跳变时,就认定是接收到起始位,随后在移位脉开发能力,MOV @R1, #0FH
即使设计完成以后用户通常也不能对其中的把通过位采样脉冲接收到的数据位移入接 MOV 30H, @R1
IT0=0,CPU在每个机器周期的S5P2期间采样,一旦冲的控制下,程序功能进行修改,必须有一套开发工具和开发环境才12. SJMP 指令和 AJMP 指令都是字节转移指令,它们在 P3.2(INT0)引脚上检测到低电平,则有中断申请,收寄存器中,直到停止位到来之后把停止位送入 RB8 能进行开发。 中,并置位中 有什么区别?各自的转移范围是多 使 IE0 置位(置 1), 44.根据嵌入式系统的复杂程度,嵌入式系统可分为哪几少?能否用AJMP指令代替程序中的所有SJMP指令?向 CPU 申请中断。在电平触发方式中,在中断响应后断标志位RI,通知CPU从SBUF取走接收到的一个字类?
中断标志位 IE0 的清 0 由硬件自动完成,但由于CPU符。 答:根据嵌入式系统的复杂程度,可以将嵌入式系统分答:AJMP和SJMP的区别有:
对P3.2(INT0)引脚没有控制作用,使中断请求信号的33.单片机应用系统中为什么要进行系统扩展? 答:为以下3类:(1)单个微处理器的系统。这类系统一般(1) 跳转范围不同。
低电平可能继续存在,在以后的机器周期采样时又会把 等单片机不提供用户程序存储器,必须进由单片嵌入式处理器组成,嵌入式处理器一般以某种微AJMP addr1;短跳转范围:2KB
已清 0 的 IE0 标志位重新置 1,所以,在中断响应后行程序存储器的扩展,以存放控制程序、数据表格等;处理器内核为核心并集成了存储器、I/O设备、接口设
备(如 A/D转换器)等,嵌入式处理器加上简单的元件如电源、时钟元件等就可以工作。(2)嵌入式处理器可扩展的系统。这类嵌入式系统使用的处理器根据需要,可以扩展存储器,也可以使用片上的存储器,处理器一般容量在 64KB 左右,字长为 8 位或 16位。在处理器上扩充少量的存储器和外部接口,以构成嵌入式系统。(3)复杂的嵌入式系统。组成这样的嵌入式系统的嵌入式处理器一般是16位、32位等,用于大规模的应用,由于软件量大,因此要扩展存储器。扩展存储器一般在 1MB 以 上,外部设备接口一般仍然集成在处理器上。45.举例介绍嵌入式处理器有哪几类。 答:嵌入式处理器可以分成嵌入式微处理器(EMPU) 、嵌入式微控制器(EMCU) 、嵌入式DSP处理器(EDSP)和嵌入式片上系统(ESoC)4类。 (1)嵌入式微处理器(Embedded Microprocessor Unit,EMPU) 嵌入式微处理器的基础是通用计算机中的CPU。在应用中,将微处理器及其存储器、总线、外设等装配在专门设计的电路板上,成为单板计算机,如STD-BUS、PC104等。(2)嵌入式微控制器(Embedded Microcontroller Unit,EMCU)嵌入式微控制器又称单片机,顾名思义,就是将整个计算机系统集成到一块芯片中。嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成 ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A、FlashRAM、EEPROM 等各种必要的功能和外设。目前,嵌入式微控制器的品种和数量最多,比较有代表性的通用系列包括 8051、P51XA、MCS-251、MCS-96/196/296、 C166/167、MC68HC05/11/12/16、68300等。(3)嵌入式DSP处理器(Embedded Digital Signal Processor,EDSP) DSP 处理器对系统结构和指令进行了特殊设计,使其适合于执行 DSP 算法,编译效率较高,指令执行速度也较高。嵌入式 DSP 处理器比较有代表性的产品是美国德州仪器 (Texas Instruments,TI)公司的TMS320系列和摩托罗拉(Motorola)公司的DSP56000系列,以及性能更高的C6000和C8000,DSP56100,DSP56200和DSP56300等几个不 同系列的处理器。(4)嵌入式片上系统(Embedded System on Chip,ESoC)
随着EDI的推广和VLSI设计的普及化,以及半导体工艺的迅速发展,在一个硅片上实现一个更为复杂的系统的时代已经来临, 这就是SoC。 例如Infineon的TriCore, Motorola 的 M-Core,某些 ARM 系列器件,Echelon 和 Motorola 联合研制的 Neuron 芯片等都属于SoC。
例4-1 将片内RAM的20H单元中的压缩BCD码拆成两个ACSII码存入21H、22H单元。低4位存在21H单元,高4位存在22H单元。 ORG 2000H MOV A, 20H MOV B, #10H除以10H DIV AB ORL B, #30H低4位BCD码转换为ASCII码 MOV 21H, B ORL A, #30H高4位BCD码转换为ASCII码 MOV 22H, A END
例2-1 设计一电路,监视某开关(K),用发光二极管(LED)显示开关状态。如果K闭合,则LED亮;如果K断开,则LED熄灭。
汇编语言程序代码如下: CLR
P1.0 ;使LED灭 AGA: SETB
P1.1 ;先对P1.1口写入“1”,以便能正确读入P1.1口数据 JB P1.1, LIG ;判断P1.1口状态(0或1),“1”为K断开,转LIG SETB
P1.0 ;K闭合时,置位P1.0,LED亮 SJMP
AGA ;循环执行,方便反复调整开关状态,观察执行结果 LIG:
P1.0 ;K断开时,P1.0清0,LED灭 SJMP
AGA ;循环执行,方便反复调整开关状态,观察执行结果 复位后MCS-51片内各特殊功能寄存器的状态如表所示,表中“x”为不定数。
控制转移类指令列表
例4-2 设有16位二进制数存放在内部RAM的50H及51H单元中,要求将其算术左移一位(即原数各位均向左移1位,最低位移入0)后仍存放在原单元。试编制相应的程序。 ORG
4000H BIHROL: CLR CCy清零
A, 51H 低8位向左环移1位RLC
51H, A MOV
A, 50H 高8位向左环移1位
50H, A END 例4-5 设有一带符号的数组存放在内部RAM以20H为首址的连续单元中,其长度为90,要求找出其中的最大值,并将其存放到内部RAM的1FH单元中,试编写相应的程序。 ORG 1000H SCMPPMA:MOV R0, #20H ;置取数指针R0初值 MOV B, #59H;置循环计数器B初值 MOV A, @R0 ;第一个数送A SCLOOP:
INC R0 修改指针 MOV R1, A暂存 XRL A, @R0 ;两数符号相同? JB ACC.7, RESLAT;若相异,则转 RESLAT:MOV A, R1;若相同,则恢复A中原来值 CLR C ;C清零 SUBB A, @R0两数相减,以判断两者的大小 JNB ACC.7, SMEXT1;若A中值为大,则转SMEXT1 CXAHER:MOVA, @R0
:若A中值为小,则将大数送入A SJMP SMEXT2 RESLAT: XRL A, @R0恢复A中原值
JNB ACC.7, SMEXT2若A中值为正,侧转SMEXT2 SJMP CXAHER ;若A中值为负,则转CXAHER SMEXT1: MOV R1,A;恢复A中原值 SMEXT2: DJNZ B, SCLOOP
MOV 1FH, A ;最大者送1FH单元
END 例4-6 将内部RAM中起始地址为data的数据串传送到外部RAM中起始地址为buf的存储区域内,直到发现“$”字符停止传送。 ORG 8000H MOV R0, #DATA:置源数据区首地址 MOV DPTR, #BUF ;置目的数据区首地址 LOOP0: MOV A, @R0:取数据 CJNE A, #24H, LOOP1;判断是否为$字符 SJMP LOOP2 ;是$,转结束 LOOP1: MOVX
@DPTR, A ;不是$,执行传送 INC R0:修改源地址 INC DPTR ;修改目的地址 SJMP LOOP0传送下一个数据 LOOP2: END 例7-2
T0工作于定时方式1,定时时间Td=2ms,系统主频fosc=8MHz,允许中断,对T0进行初始化编程。 1)
假设T1定时/计数器闲置不用,可设控制寄存器TMOD的高4位为0000,即TMOD7~4=0000B。 2)
T0工作于定时方式,可确定T0的GATE=0,C/T=0,即TMOD3~2=00B。 3)
T0工作于方式1时,应确定M1M0=01,即TMOD1~0=01B。则TMOD=B=01H。 4)
系统主频fosc=8MHz,时钟周期Tcp=1/8μs,系统机器周期Tcy=12Tcp=12/8=1.5μs, 计数器位数n=16,定时时间Td=2ms=2000μs,数初值Count=2n-Td/Tcy=216-=64203=FACBH 即TH0=FAH,TL0=CBH。 汇编语言初始化程序段: MOV TMOD,
#01H设置T0工作于定时方式1 MOV TH0,
#FAH加1计数器高8位TH0赋初值FAH MOV TL0,
#CBH加1计数器低8位TL0赋初值CBH SETB ET0 ;T0开中断 SETB EACPU开中断 SETB TR0启动T0开始定时 例7-4 设单片机的fosc=12MHz,要求在P1.0脚上输出周期为2ms的方波。用定时器1的方式1编程,采用中断方式。
0000H ;复位入口 AJMP
001BH ;T1中断服务程序入口地址 AJMP
0030H START:MOV
SP, #60H ;初始化程序 MOV
TMOD, #10H ;设置T1工作于定时方式1
TH1, #0FCH设置加1计数器的计数初值高字节 MOV
TL1, #18H:设置加1计数器的计数初值低字节 SETB
TR1启动T1 SETB
ET0开T1中断 SETB
EA开总允许中断 MAIN: AJMP
MAIN主程序 T1INT: CPL
P1.0 ;T1中断服务程序
TH1, #0FCH MOV
RETI 1.定时/计数器初始化(1)初始化步骤 1)设置工作方式; 2) 计算加1计数器的计数初值Count,并将计数初值Count送入TH、TL中; 3) 启动计数器工作,即将TRx置1。 4) 若采用中断方式,则应设置T0、T1及CPU开中断。 (2)计数方式初始化:假设T0工作于计数方式1,现用n表示加1计数器的位数,用x表示计数值,则计数初值Count=2n-x,式中,n=13、16、8、8,分别对应工作方式0、1、2、3。 例7-1 定时/计数器T0工作于计数方式,计数值x=1,允许中断,分别使用工作方式1、方式0和方式2。进行初始化编程。 1)
假设T1定时/计数器闲置不用,可设控制寄存器TMOD的高4位为0000,即TMOD7~4=0000B。 2)
T0定时/计数器工作于计数方式,可确定T0的GATE=0,C/T=1,即TMOD3~2=01B。 3)
T0工作于方式1时,应确定M1M0=01, 即TMOD1~0=01B。 则TMOD=B=05H。 计数器位数n=16,计数器初值 Count=216-1=FFFFH,即TH0=FFH,TL0=FFH。 4)
T0工作于方式0时,应确定M1M0=00,即TMOD1~0=00B。 则TMOD=B=04H。 计数器位数n=13,计数器初值
Count=213-1=,1111B, 即TH0=FFH(高8位FFH送入TH0中),TL0=1FH(低5位1FH送入TL0中)。 5)
T0工作于方式2时,应确定M1M0=10,即TMOD1~0=10B。 则TMOD=B=06H。 计数器位数n=8,计数器初值Count=28-1=FFH,即TH0=FFH,TL0=FFH。 按照前面分析,初始化程序如下。 1)
T0工作于方式1的初始化程序。 MOV
#05H ;设置T0工作于计数方式1 MOV
#0FFH ;加1计数器高8位TH0赋初值FFH MOV
#0FFH ;加1计数器低8位TL0赋初值FFH SETB
ET0T0开中断 SETB
EA ;CPU开中断 SETB
TR0启动T0计数 2)
T0工作于方式0的初始化程序。 汇编语言初始化程序段: MOV TMOD,
#04H设置T0工作于计数方式0 MOV TH0,
#FFH加1计数器高8位TH0赋初值FFH MOV TL0,
#1FH加1计数器低8位TL0赋初值1FH SETB ET0T0开中断 SETB EACPU开中断 SETB TR0启动T0 3)T0工作于方式2的初始化程序。
汇编语言初始化程序段: MOV TMOD,
#06H ;设置T0工作于计数方式2 MOV TL0,
#0FFH计数器TL1赋初值FFH MOV TH0,
#0FFH重装寄存器TH1赋初值FFH SETB ET0T0开中断 SETB EACPU开中断 SETB TR0启动T0 (3)定时方式初始化 若系统主频fosc=6MHz,则机器周期Tcy=2μs,即计数器加一次1所用时间为2μs,若计数器加100次产生溢出(计数值N=100),则定时时间为200μs,即定时器定时时间Td=N×Tcy。
计数值N与计数器初值Count的关系是 N=2n-Count,所以定时时间Td=(2n-Count)Tcy。
计数初值Count=2n-Td/Tcy。式中,n=13、16、8、8,分别对应方式0、1、2、3。 例7-2
T0工作于定时方式1,定时时间Td=2ms,系统主频fosc=8MHz,允许中断,对T0进行初始化编程。 1)
假设T1定时/计数器闲置不用,可设控制寄存器TMOD的高4位为0000,即TMOD7~4=0000B。 2)
T0工作于定时方式,可确定T0的GATE=0,C/T=0,即TMOD3~2=00B。 3)
T0工作于方式1时,应确定M1M0=01,即TMOD1~0=01B。
则TMOD=B=01H。 4)
系统主频fosc=8MHz,时钟周期Tcp=1/8μs,系统机器周期Tcy=12Tcp=12/8=1.5μs,
计数器位数n=16,定时时间Td=2ms=2000μs,
计数初值Count=2n-Td/Tcy=216-
=64203=FACBH
即TH0=FAH,TL0=CBH。 例7-3
T1工作于定时方式2,定时时间Td=500μs,系统主频fosc=6MHz,不允许中断。对T1进行初始化编程。 1)
假设T0定时/计数器闲置不用,可设控制寄存器TMOD的低4位为0000,即TMOD3~0=0000B。 2)
T1工作于定时方式,可确定T1的GATE=0,C/T=0,即TMOD7~6=00B。 3)
T1工作于方式2时,应确定M1M0=10,即TMOD5~4=10B。
则TMOD=B=20H。 4)
系统主频fosc=6MHz,时钟周期Tcp=1/6μs,Tcy=12Tcp=12/6=2μs,
计数器位数n=8,定时时间Td=500μs,
计数初值Count=2n-Td/Tcy=28-500/2=6=06H,
即TH0=06H,TL0=06H。 汇编语言初始化程序段: MOV
#20H设置T1工作于计数方式2 MOV
#06H ;计数器TL1赋初值06H MOV
#06H重装寄存器TH1赋初值06H CLR
ET1T1关中断 SETB
TR1启动T1 2.定时/计数器应用实例 例7-4 设单片机的fosc=12MHz,要求在P1.0脚上输出周期为2ms的方波。 分析:周期为2ms的方波要求定时间隔为1ms,每次时间到将P1.0取反。定时器计数频率为fosc/12,Tcy=12/fosc=1μs。每个机器周期定时器计数加1,1ms=1000μs,需计数次数为1000/(12/fosc)=1000。由于计数器向上计数,为得到l000个计数之后的定时器溢出,必须给定时器赋初值,C语言中相当于-1000。 (1) 汇编语言程序设计 用定时器1的方式1编程,采用中断方式。
0000H复位入口
001BHT1中断服务程序入口地址
0030H START:MOV
SP, #60H初始化程序
TMOD, #10H ;设置T1工作于定时方式1
TH1, #0FCH设置加1计数器的计数初值高字节
TL1, #18H设置加1计数器的计数初值低字节
ET0开T1中断
EA开总允许中断 MAIN: AJMP
MAIN主程序 T1INT: CPL
P1.0 ;T1中断服务程序 MOV
TH1, #0FCH
RETI 例7-5 设一只发光二极管LED和8051的P1.0脚相连。当P1.0脚是高电平时,LED发亮;当P1.0脚是低电平时,LED熄灭。编制程序用定时器来实现发光二极管LED的闪烁功能,设置LED每1s闪烁一次。已知单片机系统主频为12MHz。 设计思想:定时/计数器的最长定时是65.536ms,无法实现1s的定时。可以采用软件计数器来进行设计。定义一个软件计数器单元30H,先用定时/计数器T0做一个50ms的定时器,定时时间到后将软件计数器中的值加1,如果软件计数器计到了20(1s),取反P1.0,并清除软件计数器中的值,否则直接返回。则完成了20次定时中断才取反一次P1.0,实现定时时间20×50=1000ms=1s的定时。 定时/计数器T0采用工作方式1(16位定时器), 其初值为:216?50ms/1?s==H 程序如下: ORG 0000H AJMP START转入主程序 ORG 000BH定时/计数器T0的中断服务程序入口地址 AJMP TIME0跳转到真正的定时器中断服务程序处 ORG 0030H START: MOV SP,
#60H ;设置堆栈指针 MOV P1,
#00H ;关发光二极管LED(使其灭) MOV 30H,
#00H ;软件计数器预清0 MOV TMOD,
#01H ;定时/计数器T0工作于方式1 MOV TH0,
#3CH ;设置定时/计数器的初值 MOV TL0,
#0B0H SETB EA开总中断允许 SETB ET0开定时/计数器T0中断允许 SETB TR0启动定时/计数器T0 LOOP: JMP LOOP循环等待 TIME0:INC 30H中断程序 MOV A,
30H CJNE A,
RET0 ;与20比较,不等转RET0 MOV 30H,
#00H CPL P1.0 RET0: MOV TH0,
#3CH重设定时初值,启动 MOV TL0,
#0B0H RETI
主程序:CPU正常情况下运行的程序称为主程序。 中断源:把向CPU提出中断申请的设备称为中断源。 中断请求:由中断源向CPU所发出的请求中断的信号称中断请求。 中断响应:CPU在满足条件情况下接受中断申请,终止现行程序执行转而为申请中断的对象服务称中断响应。 中断服务程序:为服务对象服务的程序称为中断服务程序。 断点:现行程序被中断的地址称为断点。 中断返回:中断服务程序结束后返回到原来程序称中断返回。 在MCS-51内部提供了一个中断优先级控制寄存器(IP)。其字节地址为B8H,既可按字节形式访问,又可按位形式访问,其位地址范围为0B8H~0BFH。
PS:串行口中断优先级控制位 PS=1,设定串行口为高优先级;PS=0,设定串行口为低优先级。 2) PT1:定时器T1中断优先级控制位 PT1=1,设定T1为高优先级;PT1=0,设定T1为低优先级。 3)PX1:外部中断1中断优先级控制位 PX1=1,设定外部中断1为高优先级; PX1= 0,设定外部中断1为低优先级。 4) PT0:定时器T0中断优先级控制位 PT0=1,设定T0为高优先级;PT0=0,设定T0为低优先级。 5) PX0:外部中断0中断优先级控制位 PX0=1,设定外部中断0为高优先级;PX0=0,设定外部中断0为低优先级。 I2C总线运用主/从双向通信。器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。主控器件和被控器件都可以工作于接收和发送状态。总线必须由主控器件控制,主控器件产生串行时钟控制总线的传输方向,并产生起始和停止条件。串行数据线(SDA)上的数据状态仅在串行时钟线(SCL)为低电平期间才能改变,SCL为高电平期间,SDA状态的改变被用来表示起始和停止条件。I2C总线数据传输过程如图9-11所示。见表六 嵌入式系统的组成 中断请求控制 1) TCON中的中断请求标志位 TCON为定时/计数器控制寄存器,其字节地址为88H,可位寻址,位地址范围为88H~8FH。这个寄存器有两个作用,即除了控制定时/计数器T0和T1的溢出中断外,还控制外部中断的触发方式和锁存外部中断请求标志位。TCON中的各位定义如图6-4所示。
IT0:选择外部中断0的中断触发方式。
IT0=0,为电平触发方式,低电平有效;
IT0=1,为边沿触发方式,P3.2引脚信号出现负跳变有效。 IT1:选择外部中断1的中断触发方式。其功能与IT0类同。 IE0:外部中断0的中断请求标志。 当IT0=0时,系统采用中断电平触发方 式,一旦在INTO引脚上检测到低电平,则认 为有中断申请,随即使IE0置1,向CPU申请 例9-3】 根据图9-8所示ADC0809与MCS-51中断。当IT0=1时,系统采用边沿触发方式,的硬件连接,要求采用中断方法,编写进行8当检测到前一周期为高电平,后一周期为低电平时、使标志IE0置1,向CPU申请中断。 路A/D转换的程序 IE1:外部中断INT1的中断请求标志。功能与IE0类似。 TF0:片内定时/计数器0溢出中断请求标志。
定时/计数器的核心为加法计数器,当定时/计数器T0发生定时或计数溢出时,由硬件置位TF0或TF1,向CPU申请中断,CPU响应中断后,会自动清零TF0或TF1。 TF1:片内定时/计数器1溢出中断请求标志。 外部中断请求标志位IE0和IE1及其中断请求信号的撤销问题
无论是采用边沿触发方式(IT0=1)还;******主程序****** 是电平触发方式(IT0=0),在CPU响应中断请
0000H 求后,中断请求标志位IE0即由硬件自动清零。
由于CPU对引脚没有控制作用,在采 ;转主程序 用电平触发方式时中断请求信号的低电平可能
继续存在,在以后的机器周期采样时又会把已 ;中断服务程序入口地址 清零的IE0标志位重新置1,这有可能再次引
起中断而造成出错。所以,在中断响应后必须 ;中断服务程序 采用其他方法撤销该引脚上的低电平,以撤除
0100H 外部中断请求信号。中断请求标志位IE1的清MAIN:MOV R0, #30H
零及中断请求信号的撤销问题与IE0类似。 ;内部数据指针指向30H单元 2)SCON中的中断标志位
DPTR, #7FF8H
SCON为串行口控制寄存器,其字节地址为;指向P2.7口,且选通IN0 98H,可以进行位寻址。串行口的接收和发送
数据中断请求标志位(RI、TI)被锁存在串 ;(低3位地址为000)
IT0设置外部中断0为下降沿触发
行口控制寄存器SCON中允许中断
TI:串行口发送中断请求标志位开总中断允许
RI:串行口接收中断请求标志位 2.中断允许控制 ;启动A/D转换 MCS-51对中断源的开放或屏蔽是由中断允
许寄存器IE控制的,IE的字节地址为0A8H,等待转换结束中断 可以按位寻址,当单片机复位时,IE被清为;******中断服务程序****** 0。 INT0F:MOVX
;取A/D转换结果 EA:总中断允许控制位。当EA=0时,屏蔽
所有的中断;当EA=1时,开放所有的中断。存结果 ES:串行口中断允许控制位。当ES=0时,
屏蔽串行口中断;当ES=1且EA=1时,开放;内部指针下移 串行口中断。
ET1:定时/计数器T1的中断允许控制位。当 ;外部指针下移,指向下一路
R0, #38H, NEXT
ET1=0时,屏蔽T1的溢出中断;当ET1=1且EA=1时,开放T1的溢出中断。 ;未转换完8路,继续转换
EX1:外部中断1的中断允许控制位。
当EX1=0时,屏蔽外部;关中断允许
中断1的中断;
当EX1=1且EA=1时,;中断返回 开放外部中断1的中断。 NEXT:MOVX
ET0:定时/计数器T0的中断允许控制位。 ;启动下一路A/D转换
功能与ET1相同。 EX0:外部中断0的中断允许控制位。功能;中断返回 与EX1相同
END MCS-51复位以后,IE被清0,所有的中断请
求被禁止。 3.中断优先级控 8051有2个中断优先级,每一个中断请求源均可编程为高优先级中断或低优先级中断,从而实现2级中断嵌套。
定时/计数器 MCS-51单片机内有2个16位可编程的定时/计数器,即定时器0(T0)和定时器1(T1)。
TF0、TF1:计数溢出标志位。 TF0=1或TF1=1是计数溢出; TF0=0或TF1=0是计数未满。 TR0、TR1:启/停控制位。 TR0=1或TR1=1,使T0或T1启动计数; TR0=0或TR1=0,使T0或T1停止计数
GATE:门控信号。当GATE=0时,TRx=1即可启动定时器工作; 当GATE=1时,要求同时有TRx=1和INTx=1才可启动定时器工作(x是1、2)。 C/T:定时/计数器选择位。
C/T =1,为计数器工作方式; C/T =0,为定时器工作方式。 定时/计数器T0、T1可以有四种不同的工作方LOOP:
MOVX @DPTR, A数据送到DAC0832
NOP延时,调整该时间可改变输出波形斜率
MCS-51串行通信接口 MCS-51单片机串行口是由以下部分构成:
发送缓冲寄存器(SBUF),发送控制器,发送控制门,接收缓冲寄存器(SBUF),接收控制寄存器,移位寄存器,中断等部分组成。 与 串行通信有关的控制寄存器共有4个:SBUF、SCON、PCON和IE。 MCS-51串行通信工作方式
利用74LS377扩展并行输出口的电路 74LS245扩展并行输入口的电路
MCS-51单片机的中断系统提供了5个中断源。
根据图9-2所示DAC0832与单片机的接口电路,编写程序,实现在VOUT端输出锯齿波形。
程序如下。 P0832:MOV DPTR, #7FFFHDPTR指向DAC0832
A, #0 第1章
概述 一,微型计算计,包括运算器,存储器,输入/输出接口四各基本组成部分。如果把运算器与控制器封装在一小块芯片上,则该芯片称为微处理器。如果将他与大规模集成电路制成的存储器和输入/输出接口电路在印制电路板上用总线连接起来,那么就构成了微型计算机。如果在一块芯片上,集成了一台微型计算机的四各基本组成部分,则这种芯片就称为单片微型计算机,简称单片机。以单片机为核心的硬件电路称为单片机系统。 二,微型计算机的基本组成: 它由控制器,运算器,存储器,输入/输出接口电路,,输入设备,输出设备。 三,单片机的基本结构 包括中央处理器,程序存储器,数据存储器,并行输入/输出端口、串行输入/输出端口、定时/计数器、系统时钟。 四、单片机的重要指标: 1、位数:单片机能够一次处理的数据的宽度,有一位机、四位机、吧位机。十六位机、三十二位机。 2、存储器:包括程序存储器和数据存储器。 3.I/O端口 4、速度:指CPU的处理速度,以每秒执行多少条指令衡量,常用单位是MIPS。 5、工作电压,通常是5V, 6、功耗。 7、温度(分为:民用级、工业级、军用级)
五,单片机嵌入式系统的概念: 嵌入到对象体系中的专用计算机系统。 单片机嵌入式系统的核心是系统软件和应用软件。 六:单片机的特点:体积小,价格底,性能强大,速度快,用途广,灵活性强,可靠性高,其在硬件结构和指令功能还具有1,存储器ROM 和RAM严格分工,2,采用面向控制的指令系统。3,I/O端口引脚具有复用功能,4,品种规格的系列化,5,硬件功能具有广泛的通用性。 第二章 硬件结构和原理 一、单片机的内部结构: 1、一个8位CPU; 2、4KB程序存储器,采用ROM或EPROM 3、128B通用数据存储器(SFR) 4、4个8位并行口,其中P0/P2/P3是复用口 5、一个可编程全双工串行口 6、具有5个中断源,两个优先级嵌套结构 7两个16位定时/计数器 8、一个片内振荡器与时钟电路 二、CPU由运算器、控制器、布尔处理器组成,运算器包括算术运算和逻辑操作的执行部件,包括算数/逻辑单元(ALU),累加器(ACC),程序状态字寄存器(PSW),暂存器,B寄存器等部件。控制器是CPU的大脑中枢,它包括定时控制逻辑,指令寄存器,数据指针(DPTR),及程序计数器(PC),堆栈指针(SP),地址寄存器和地址缓冲器等,其功能是逐条对指令进行译码并通过定时和控制电路在规定的时刻发出各种操作所需的内部和外部控制信号协调各部分的工作完成指令的规定的操作。(堆栈是按先进后出的原则存取数据的,开机复位后,默认为07H) 三、程序状态字寄存器(PSW)的各位定义: CAFRRO P Y C 0 SSV 1 0 D7
D0 AC:半进位标志位。 RS0/RS1:工作寄存器组选择位。 OV:溢出标志位。 P:奇偶校验标志位。 四、控制器的组成:程序计数器、堆栈指针、指令寄存器和指令译码器、数据指针。 堆栈指针:指在片内RAM的128B空间中开辟的堆栈区的栈顶地址,并随时跟踪栈顶地址变化。 五、布尔处理器:其与字节处理器相对应,给面向控制的实际应用带来了极大的方便。在其系统中除了程序状态字寄存器和ALU字节处理器合用外还可以有如下设置: 1累加器CY 2位寻址的RAM 3位寻址的寄存器 4位寻址的并行I/O口 5位操作指令系统 六、程序存储器中特殊地址的功能
特殊地址 功能说明 H 000BH BH BH 单片机复位后,PC=0000H 外中断0入口地址 定/计器0终端入口地址 外部中断1入口地址 定/计器1中断入口地址 串行口中断入口地址 定时/计数器2中断入口地址 七、数据存储器用于存放中间运算结果、数据暂存和缓冲、标志位等。程序存储器用于存放编好的程序、常数和数据表格。 七:存储器的区分:MCS-51在物理结构上,有4个存储空间:片内程序存储器,片外程序存储器,片内数据存储器,片外数据存储器。逻辑上,即从用户使用的角度上,其有3个存储空间:片内外统一编址的64KB程序存储器地址空间(用16位地址),256B片内数据存储器的地址空间(8位地址)和64KB片外数据存储器地址空间。 八、工作寄存器和RAM地址对照表 RS1 RS0 R0~R7 寄存器组 0 0 1 1 0 1 0 1 0组 1组 2组 3组 00H~07H 08H~0EH 10H~16H 18H~1EH 九特殊功能寄存器(见表1) 十、并行输入/输出端口各端口功能: P0~P3口基本上由数据锁存器、输入缓冲期和输出驱动电路、输出控制电路等组成。MCS-51单片机内部有P0P1P2P3四个八位双向并行I/O端口。 P0口:地址/数据分时复用总线和通用I/O口,其内无上拉电阻,故作为I/O口使用时,必须外接上拉电阻。 P1口:功能:通用输入输出端口。再输入时,即使有集电极开路电路或漏极开路电路驱动也无需上拉电阻。 P2:通用I/O口和高八位地址总线。当片外RAM容量较大需要由P2口和P0口送出16位地址时,P2口不再用作通用I/O口。 P3:是双功能口,除了作为准双向通用I/O口使用时,每一根口线还具有第二种功能,但不额外设定则为第一功能 十一、时钟及状态周期关系: 按指令的执行过程分:时钟周期、状态周期、机器周期、指令周期。 时钟周期:也称振荡周期,为时钟脉冲频率的倒数。 状态周期为两个时钟周期,机器周期为12个时钟周期。ALE是由时钟频率6分频得到的。 十一:复位: 复位状态:复位时ALE和PSEN(逆)成输入状态既ALE等于PSEN(逆)=1,片内RAM不受复位影响,复位后,P0----P3口输出高电平且使这些双向口皆处于输入状态,并将07H写入堆栈指针SP,同时将PC和其余特殊功能寄存器清零。此时单片机从起始地址0000H开始重新执行程序。此时,当单片机运行出错或死循环时,可使其复位后重新进行。 单片机的外部复位电路上有上电自动复位和按键手动复位。其电路见表2 十二:MCS-51系列性能一览表3 第3章 指令系统 1.指令的第一种格式就是机器码指令格式,即数字格式,另一种指令格式,即汇编格式。 2.MCS―51单片机能够识别并执行的指令共有111条。 3.指令系统的分类:(1)按指令所占字节数分类:单字节指令(49条),双字节指令(46条),三字节指令(16条);(2)按指令执行时间分类:单周期指令(65条),双周期指令(44条),四周期指令(2条);(3)按指令功能分类:数据传送指令(29条),算术运算指令(24条),控制转移指令(17条),位操作指令(17条)。 4.寻址方式的概念:在指令系统中,操作数是一个重要的组成部分,它指定了参与操作的数据或数据所在的地址单元。寻址方式就是指在地址范围内如何灵活方便的找到所需要的数据或数据所在的地址。 5.立即寻址是将操作数据直接写在指令中,它作为指令的一部分存放在代码段里,位置在程序存储器中。立即寻址中的操作数,称为立即数。如:MOV A,#30H;30H―A 即将30H传送到累加器A中。 6.直接寻址是将操作数据的地址直接存放在指令中。这种寻址方式的操作数指的是内部数据存储器中存放数据的地址或存放数据的一个特殊功能寄存器地址。如:MOV A,30H;(30H)―A 即将(30H)作为内部RAM的地址,将30H单元中的内容送到累加器A中。 7.寄存器寻址是指操作数据存放在寄存器中,寻址的寄存器已隐含在指令的操作码中。如:MOV A,R5;(R5)―A 即把R5的内容送到累加器A中。 8.寄存器间接寻址是指操作数据存放在以寄存器内容为地址的单元中。如:MOV A,@R0;((R0))―A 即将R0所指出的内部RAM单元送入累加器A中。 9.基址加变址寻址是指操作数据存放在以变址寄存器和基址寄存器的内容相加形成的数为地址的单元。其中,累加器A做变址寄存器,程序计数器PC或寄存器DPTR做基址寄存器,此寻址方式常用于查表操作。如:MOVC A,@A+PC;(PC)+1―PC,((A)+(PC))―A
MOVC A,@A+DPTR;((A)+(DPTR))―A 10.相对寻址是将程序计数器PC的当前值与指令第2字节给出的偏移量相加,从而形成转移的目标地址。如:JC 80H;c=1则跳转。 11.位寻址是指对片内RAM中20H~2FH中的128个位地址,以及SFR中的11个可进行位寻址的寄存器中的位地址寻址。如:MOV C,20H 即将RAM中位寻址区20H位地址中的内容,送给累加器cy。 第四章
1 伪指令功能和作用
(1)汇编起始伪指令ORG:功能:规定程序块或数据块存放的起止地址。【标号:】 ORG
16位地址(2)汇编结束伪指令END:功能:结束汇编。【标号:】 END
【表达式】(3)等值伪指令EQU:功能:将操作数赋予规定的字符名称。字符名称 EQU
操作数(4)字义字节伪指令DB:功能:在程序存储器中,从指定的地址单元开始,定义8位内存单元的内容。用来在程序存储器的某一部分存入一组8位二进制数,或者是将一个数据表格存入程序存储器。【标号:】 DB
8位二进制数表(5)定义字伪指令DW:功能:在程序存储器中,从指定的地址单元开始,定义若干个16位数据其中高8位存入低地址单元,低8位存入高地址单元。【标号:】 DW
16位二进制数表(6)存区伪指令DS:功能:从指定地址开始,保留指定数目的字节单元作为备用存储区,供程序运行使用。这些单元的初值均为0。【标号:】 DS
表达式。(7)位定义伪指令BIT:功能:将位地址赋给字符名称。字符名称
位地址 2:结构化程序设计的基本程序设计方法:有顺序机构程序,分支结构程序,循环结构程序 查表程序,子程序。任何复杂的程序都可由他们构成。每种结构只有一个入口和一个出口,整个程序也只有一个入口和一个出口。有顺序机构程序:最简单的一种,在执行程序时从第一条指令开始,顺序执行直到最后一条指令为止。分支结构程序:可根据要求无条件或有条件的改编成须执行流向,分支程序有单分支结构,双分支结构,多分枝结构(散转) 循环结构程序:使某些程序段可多次重复执行,是程序简练且大大简省存储单元,典型的循环结构包括初始化部分,循环处理部分,循环控制部分和循环修改部分。循环结构程序有先执行后判断,先判断后执行两种基本结构。
ACC 78H 2EH 78H 2EH 56H 2DH 56H 2DH 34H 2CH 34H 2CH 12H 2BH 12H 2BH 00H 2AH 00H 2AH 00H
方法一:MOV A,2EH
MOV 2EH,2DH
MOV 2DH,2CH
MOV 2CH,2BH
MOV 2BH,#00H 方法二:CLR A
XCH A,2EH C51编程特点: 1,可管理内部寄存器和存储寄存器的分配,编辑时,无需考虑不同存储器的寻址和数据类型等细节问题;2,程序由若干程序组成,具有良好的模块化结构;可移植性好,便于项目维护管理;3,有丰富的子程序库可直接引用,从而大大减少用户编辑工作量,提高编程效率。4,与汇编语言交叉编程,用汇编语言编写与硬件有关的程序,用C51编写与硬件无关的运算程序充分发挥两种语言的程序,提高开发效率。 第六章 中断系统 1中断源:其包括中断请求信号的产生及该信号怎样被CPU有效地识别。要求中断请求信号产生一样,只能被CPU接收处理一次,即不能一次中断申请被CPU多次响应。这就涉及中断请求信号的及时撤除问题。 2中断响应的过程:a检测中断b保护现场c中断服务d清除中断标志位。CPU响应中断后,要清除响应的中断请求标志位,以免CPU再次响应该中断。e恢复现场f中断返回 3MCS-51单片机有5个中断源(8025有6个) 4MCS-51单片机的中断具有俩个中断优先级,可实现两级中断服务程序嵌套,每一个中断源的中断级别均可用软件设置。 5MCS-51单片机中断系统的5个中断源:INT0:外部中断0请求,由INT0(P3.2)引脚输入,低电平/负跳变有效,在每个机器周期的S5P2采样,中断请求标志为IE0。INT1:外部中断1请求,由INT1(P3.3)引脚输入,低电平/负跳变有效,在每个机器周期的S5P2采样,中断请求标志为IE1。T0:定时/计数器0溢出中断请求,中断请求标志为TF0。T1:定时/计数器1溢出中断请求,中断请求标志为TF1。单行口:单行口中断请求,当串行口完成一帧数据的发送和接收时,便请求中断,中断请求标志为TI或RI。 6中断允许控制位。ET0:定时/计数器0的中断允许控制位。EX0:外部中断0的中断允许控制 7中断系统在4个特殊功能寄存器控制下工作:定时t计数器控制寄存器TCON(作用:控制定时/计数器T0,T1的溢出中断,控制外部中断的触发方式和锁存外部中断请求标志位),串行口控制寄存器SCON(作用:进行位寻址,串行口的接收和发送数据中断请求标志位R1和T1被锁存在串行口控制寄存器SCON中),中断允许控制寄存器IE(控制中断源的开放和屏蔽)和中断优先级控制寄存器IP(实现对中断优先权的管理) 8中断请求控制:TCON各位的含义:IT 0:选择外部中断0的中断触发方式。IT1:选择外部中断1的中断触发方式。IE0:外部中断0的中断请求标志位。IE1:外部中断1的中断请求标志位。TF0:内部定时/计数器0溢出中断请求标志位。TF1:内部定时/计数器1溢出中断请求标志位。 9中断允许控制:IE的有关位的含义:EA:总中断允许控制位。ES:串行口中断允许控制位。ET1:定时/计数器1的中断允许控制位。EX1:外部中断位。 10中断方式:外部中断和内部中断 第7章 定时/计数器和串行接口 1MCS-51单片机内有两个16位可编程的定时/计数器,既定时/计数器0(T0)和定时/计数器1(T1)。 2定时/计数器的结构和原理 ①定时计数器T0由两个8位特殊功能寄存器TH0和TL0构成16位定时计数器,T1由两个8位特殊功能寄存器TH1和TL1构成16位定时\\计数器,T1由两个8位特殊功能寄存器TH1和TL1构成16位定时/计数器。②定时/计数器T0和T1的核心都是16位的加1计数器,TH0和TLO构成定时/计数器T0加1计数器的高8位和低8位,TH1和TL1构成定时/计数器T1加1计数器的高8位和低8位。③定时/计数器控制寄存器(TCON)十是1个8位寄存器,它不仅参与定时/计数器控制 还参与中断请求控制。既可以对其整个字节寻址,又可以对其位寻址,字节地址为88H,位地址范围为88H~8FH。工作方式寄存器(TMOD)用来设定定时/计数器T0和T1的工作方式。TMOD只能进行字节寻址,地址为89H,不能尽心位寻址,即TMOD的内容,只能通过字节传送指令进赋值。 3 TMOD地址及其各位定义见表4 M1和M0:定时计数器工作方式选择位M1M0=00
工作方式0(13位方式) M1M0=01
工作方式1(16位方式) M1M0=10
工作方式2(8位自动再装入方式) M1M0=11
工作方式3(T0为两个8位方式) 4定时/计数器的工作方式:1方式1时:开关S2的控制信号为:
I?(GATE?INT0)?TR0长和总线特点及外设数据的宽度可分为不同位数的并行通信,其特点是数据的每位被同时传输出去或接收进来。串行通信其传输是逐位传输的,因而在相同条件下,串行比并行传输速度慢。串行通信不管发送或接收的数据是多少,最多只需两根导线,一根用于接收,一根用于发送,也可合并成为发送/接收复用线 C波特率(BR)是串行通信中的一个重要概念,它是指单位时间内传输的数据位数。发送/接收数据的时钟频率与波特率有关即fT/R?n?BRT/R 6.MCS―51单片机内部有一个全双工的串行通信接口,包含串行口接受和发送缓冲寄存器(SUBF)这两个在物理上独立的接收发送器,既可以接收数据,也可以发送数据。 4.串行口控制寄存器
SCON是MCS―51的一个可位寻址的特殊功能寄存器,用于穿行数据通信的控制。其字节地址为98H,位地址寻址范围为98H~9FH。 5MCS-51串行口的4种工作方式见表5 7.串行工作方式1是10位为一帧的异步串行通信方式;其帧格式包括1个起始位,8个数据位和1个停止位 异步通信起始位“0”表示字符开始,然后从低位到高位逐步位传送数据,最后用停止位“1”表示字符结束。一个字符又称一帧信息。 9.串行工作方式2和方式3是11位一帧的串行通信方式其帧格式包括1个起始位,9个数据位和1个停止位。在方式2和方式3下,字符还是有8个数据位。低9个数据位D8即可作为奇偶校验位使用,也可作为控制位使用,其功能由用户确定 10.MCS-51方式2的波特率公式
SMODBR?2?fOSC/6411.方式1和方式3的波特率是可变的,公式为 SOMDBR?2?fd/32第八章 基本扩展技术 1单片机三种扩展原理:外部总线扩展,外部存储器扩展,并行接口扩展,显示器与键盘扩展。
2单片机系统总线扩展方法:(1)外部总线扩展(原理:单片机操作外部设备或外部数据存储器所使用的指令相同,其助记符均为MOVX。在该指令执行过程中,P0口先选出低8位地址,后送出数据。而外部存储器设备本身不具备地址保存功能,无法保持有效地址。这就要求单片机P0口存储器的低8位地址之间加锁存器对低8位地址进行锁存。P2口高8位地址会一直持续到指令周期结束,不需要进行锁存。ALE信号可用来控制锁存器对地址信号进行锁存)(2)外部存储器扩展 (3)EPROM程序存储器扩展{它的优点是数据存储可靠性高,一般不会发生数据丢失。它的缺点是数据写入速度慢,擦除麻烦。}(4)EEPROM程序存储器扩展 (5)外部数据存储器扩展 (6)8255A可编程并行I/O接口扩展
3并行接口芯片具有的功能 :(1)两个或者两个以上具有锁存器或缓冲器的数据端口。(2)具有与外设交换信息所必须的状态与控制信息。(3)具有与CUP交换所必须有的电路。(4)片选和控制电路。(5)可以编程规定芯片工作方式。 4并行接口芯片8255A的功能:a数据端口A,B,C. 端口A:一个8位数据输出锁存/缓冲器,一个8位数据输入锁存器。端口B:一个8位数据输出锁存/缓冲器,一个8位数据输入缓冲器。端口C: 一个8位数据输出锁存/缓冲器,一个8位数据输入缓冲器。b
A组和B组控制电路。控制电路决定了8255A的工作方式,也就决定了8255A在电路中功能。c 数据总线缓冲器:数据总线缓冲器提供了8255A与系统总线的接口。d 读/写和控制逻辑,读/写和控制逻辑直接与单片机的控制总线即地址总线相连接,通常8255A的A0,A1 地址总线连接,而及CS与RD和WR与单片机读/写信号连接。8255A有如下相关的信号,(1)CS片选信号,低电平时,8255A被选中。(2)RD读信号,低电平有效,该信号有效时可以读取8255A的端口数据或状态信号。(3)WR写信号,低电平有效,该信号有效时可以向8255A写入控制字或向端口写数据。(4)RESET复位信号,高电平有效,只有复位后,8255A才能接收单片机对其进行的初始化。e 端口地址的确定:8255A的地址由其引脚CS,A1,A0决定。 5.8255A有两种控字:(1)方式控制字,方式控制字有8位组成(D7:D7=1是方式控制字标志。D6和D5:确定A口工作方式,D6D5=00,A口工作方式0,D6D5=01,A口工作方式1,D6D5=10,A口工作方式2。D4:确定A口的传输方向。D3:确定C口的PC7~PC4的数据传输方向。D2:B口工作方式选择,D1:确定B口的数据传输方向。D0:确定C口的PC3~PC0的数据传输方向)。(2)按位复位/字位控制字由8位组成(D7:D7=0,是按位复位/置位控制字标志。D6,D5,D4:没有定义。D3,D2,D1:选择C口中的某一位,3位组成8个状态,000~111分别代表选择PC0~PC7.D0:置1,清零标志,D0=1,将D3D2D1选择位置1;D0=0将D3D2D1选择位清零。 6.8255A工作方式:由8255A的方式控制字可知,8255A有3种工作方式,并且不同的端口有不同的工作方式。端口A可以工作在方式0,方式1和方式2,端口B可以工作在方式0和方式1,端口C只能工作在方式0(。1)方式0,方式0为基本输入/输出工作方式,3个端口互不影响,可以分别设置为输入和输出,由于各端口独立工作,不能提供联络信号和选通脉冲。(2)方式1,带联络信号的输入/输出方式。(3)方式2,方式2为带联络信号的双向I/O端口工作方式,只有A口可以工作在方式2. 7根据控制原理不同,LED显示方式可以分为静态显示方式,和动态显示方式。 第九章 应用扩展技术 1D/A转换器是一种将数字信号转换成模拟信号的器件。 2.8位D/A转换器芯片DAC0832. DAC0832是带内部数据锁存器的单片式8位高速电流型输出的DAC。 3.DAC0832的主要技术特性如下:A转换时间为1us.
B数据输入可以使用单缓冲,双缓冲或直通方式。C分辨率为8位。D逻辑电平输入与ILE电平兼容。E采用当GATE=0时,(GATE+INT0)=1.INT0(逆)信号不起作用,开关S2的状态由TR0决定,既TR0=1的时候,启动定时计数器,当TR0=0时,关闭定时计数器。 当GATE=1时,上式变为I=INTO(逆)*TR0,开关S2的状态有INTO(逆)*TR0决定,所以,仅当TR0=1且INT0(逆)位于高电平时,开关S2闭合才能启动定时/计数器工作,如果INT0(逆)上出现低电平则停止工作。GATE为门控信号。 5串行通信接口 A常用于通信的传输方式有单工、半双工和全双工方式 B并行通信和串行通信区别:并行较简单,根据CPU字单一正电源供电。 何时实行、综合学科、专用开发工具。 4DAC0832的主要引脚功能:a,: 片选信号,低表1 特殊功能寄存器 电平有效,与TLE电平兼容。b ILE:允许输入锁存信号, 高电平有效。c WR1:写信号1,低电平有效。 d XFEP:
寄存器符号 地址 寄存器符号 地址 数据传输信号低电平有效。e V数据传送信号,低REF*B F0H TH1 8DH B寄存器 定/计器1(高) 电平有效。 f
D10~~D17:8位数字量的输入端,D17*ACC E0H TH0 8CH 累加器 定/计器0(高) 为最高位,D10为最低位。 gI)DAC的电流输出*PSW D0H TL1 8BH 程序状态字 定/计器1(低) OUT1*IP B8H TL0 8AH 中断优先级 定/计器0(低) 端,I和I是互补的。 hR反馈电阻控制寄存器 fbOUT2OUT1*P3 B0H TMOD 89H P3口 定/计器工作方式寄存器 0832内部有反馈电阻,该端连接外部运算放大器的输出
*TCON 88H 定/计器控 端即可。 制寄存器 5.8位A/D转换器芯片ADC0809:ADC0809是8输入*IE A8H PCON 87H 中断允许控 电源控制寄存器 通道逐次逼近比较型A/D转换器,由于输出级有一个8制寄存器 位三态输出锁存器,因而0809的数据输出端可以直接*P2 A0H DPH 83H P2口 数据地址(高) 单片机的数据总线相连。 SBUF 99H DPL 82H 串数据缓冲寄存器 数据地址(低) 6ADC0809各引脚功能:a IN7~IN0:8路模拟量输入端,*SCON 98H SP 81H 串行口控 堆栈指针 即内部8选1多路开关的输入端。b D7~D0:A/D转换输制寄存器 出端,输出电平与TTL电平兼容,可直接接至微型计*P1 90H *P0 80H P1口 P0口 算机总线。 c ADDA.ADDB.ADDC为多路地址选择,用于切换A/D通道。 d
ALE:地址锁存信号输入线。 e
START:启动转换信号输入引脚,其上升沿清除上一次
A/D转换结果,其下降沿用以启动内部控制逻辑,使表2
A/D转换器开始工作。 f EOC:转换结束信号输出引脚,
其上升沿表示A/D转换已结束,可以读取结果。 g OE:
输出允许控制端,高电平有效。h CLOCK:转换器时钟
信号输入端,它的频率决定了A/D转换器转换的速度。
i V和V:ADC0809内部A/D转换时参REF(?)REF(?)
考电压输入引脚。 jV和GND:ADC0809的电源
引脚,它采用+5V的电压供电。
7 12位A/D转换器芯片AD574:引脚功能a
CE.CS(???),R/C(???):用于启动转换和读出A/D转换结
果。 b 12/8(??):数据格式选择端。 c A0:字节选择端,
+5V:逻辑正电压。 +15V和―15V:器件工作电源,
AD574向外提供+10V基准电压。 d AGND和DGND:
模拟信号地和数字信号地. f REF OUT:参考电压输
出,AD574向外提供+10V基准点压输出. REF IN:参考电
压输入。 BIP OFF:双极性偏差调整,用于调零。 10Vin
和20Vin:模拟信号输入引脚。 STS:转换状态输出引 表3
MCS-51系列性能一览表: 脚,装换过程中,该引脚输出高电平,转换结束时候该 引脚输出低电平。 系列 片内存储器 定时/并行 串中制造工艺 串型EEPROM引脚功能:SDA:串行数据线。
SCL:I/O 计数行 断串行时钟线。
WP:写保护输入,当WP接地时,允片内ROM 片内片内 I/器 源 许EEPROM完成正常的读写操作;而当WP接电源电O EPRORAM 压Vcc时候,EEPROM写保护状态。
A2A1A0:器件M 可编程地址输入,用于确定EEPROM在(I平方C)串MCS8B 2*161 5 HMOS 8031无 4*8位 行总线上的地址。
Vcc和GUN:EEPROM器件正电- 4KB 4KB 位 51子源与地。 80C31 80C51 87C51 128B 2*164*8 1 5 CHMOS 系列 8串行EEPROM寻址:由于24CXX器件是功能单一的4KB 4KB 无 位 位 存储器件,因而在(I平方C)总线中属于被控器件,MCS52 256B 3*16 4*8 1 6 HMOS 若在I*2C总线上连接EEPROM器件,则传输信息的目- 8KB 8KB 无 位 位 标地址部分的高4位地址用于识别存储器器件,低3位52子80C32 80C52 87C52 256B 3*16 4*8 1 7 CHMOS 用于选择挂接在I*2C总线上的目标存储器。 系列 8KB 8KB 无 位 位 9串行EEPROM字节写操作:(1)单片机发送起始标
志位START。(2)单片机发送器件地址及读写控制位
(R/W=0).(3)EEPROM回送应答信号位ACK. (4)单片机表4
TMOD地址及其各位定义
发送寻址存储单元地址。(5)EEPROM回送应答信号TMOD
T1定时\\计数器
T0定时计数器 位ACK (6)单片机发送待写数据字节。(7))EEPROM(89)H D7
D4 D3 D2 D1
D0 回送应答信号位ACK.(8)单片机发送终止标志位STOP。
M0 GATE C\\T M1
M0 位定义 10串行EEPROM读操作:(1)单片机发送起始标志位START。(2)单片机发送读/写控制位
R/W=1(3) )EEPROM回送应答信号位ACK(4)EEPROM
输出当前地址的字节数据。(5))EEPROM回送应答信
号位ACK(6)单片机发送终止标志位STOP,信息传
表5 MCS-51串行口的4种工作方式 第10章 抗干扰技术 SSM工作功
能 波特率 1:干扰定义:叠加在有用信号上,是原来有用信号发M1 方式 生畸变的变化电量成为噪声。具有危害性的噪声成为干0 扰。 0 0 方式0 移位寄存器方式,用于并行I\\O口扩展 fosc\\12 2干扰的种类:A按干扰信号与有用输入信号的传输关0 1 方式1 8位通用异步接收器\\发送器 可变 系分类:串模干扰,共模干扰:B按传播方式:静电干扰,1 0 方式2 9位通用异步接收器\\发送器 fosc\\64或fosc\\32 磁场耦合干扰,电磁副射干扰,共阻抗~,漏电耦合等1 1 方式3 9位通用异步接收器\\发送器 可变 C按干扰来源分类:内部干扰:过度干扰,线间干扰,电源~,电弧和反电势,接地系统,漏磁,传输线反射,
漏电;外部:辐射,电网,周围用电,接地,传输线反
射,外部线间串扰D按干扰形式分类:交流,直流,不
规则噪声,机内调制E按干扰出现规律分类:固定,随表六、I2C的传输过程:
3干扰对单片机应用系统的影响:1,数据采集误差增大,
2控制状态失灵3数据受干扰发生变化4程序运行失常
4硬件抗干扰技术:无源滤波,有源滤波,去耦电路, 屏蔽技术,隔离技术,接地技术
5隔离技术:从电路上把干扰源和易干扰的部分隔离开, 是单片机应用系统与现场仅保持信号联系,不直接发生
电的联系。常用的隔离方式有光电隔离,变压器隔离, 继电器隔离。
6软件抗干扰技术:包括数字滤波技术,输入口信号重 复检测,输出端口数据刷新,软件拦截技术(指令冗余, 软件陷阱和“看门狗”技术)
第12章 嵌入式单片机系统
1嵌入式系统的定义:嵌入式系统是以应用为中心以计 算机技术为基础软硬件可裁剪,适用系统对功能可靠
新、成本、体积、功耗严格要求的计算机系统。广而言 之,可以认为凡是对待有微处理器的软硬件系统都可以
称为嵌入式系统。
2、嵌入式系统的组成:一个嵌入式系统一般都是由嵌
入式计算机系统和执行装置组成。其中,嵌入式计算机
系统是整个嵌入式系统的核心,它由硬件层,中间层,
软件层和功能层组成。
3嵌入式系统的设计特点:(1)嵌入式系统通常是面向
特定应用的系统;(2)嵌入式系统的硬件和软件都必须 高效地设计;(3)嵌入式系统的设计需要交叉开发环境; (4)嵌入式系统的程序需要固化;(5)嵌入式系统的
软件开发难度较大。 4嵌入式系统的特点:功能简单、严格的约束、反应性 cs

我要回帖

更多关于 ao模拟信号输出 的文章

 

随机推荐