微机综合实验指导232_第1页
微机综合实验指导232_第2页
微机综合实验指导232_第3页
微机综合实验指导232_第4页
微机综合实验指导232_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机实验与开发应用指导目录第一章:实验系统概述2第二章:实验6实验一 。上机操作实验二 。综合实验一:【模拟交通灯控制】实验三 。综合实验二:【液晶显示多路数据采集系统】实验四 。综合实验三:【模拟双容水箱液位控制】实验五 。综合实验四:【步进或直流电机PWM驱动】第四章:附录30常用的参考子程序集特殊功能寄存器地址表MCS51系列指令系统摘要 双H桥直流电机驱动模块LM298实验系统概述单片机实验系统主要由计算机、单片机仿真器、实验系统板及仿真软件几部分组成。其中计算机主要承担源程序的编辑、编译以及将编译通过后所生成的后缀名为HEX的机器码文件,通过RS232串行口下载给仿真器,同时也可在

2、计算机上直接模拟运行源程序来进行调试,包括单步执行、设置断点、跟踪显示、连续运行及查看各种寄存器内容等等。在联机调试软件的支持下还可对单片机及仿真器内部的各种寄存器,存储器,PC指针和特殊功能寄存器直接进行修改或赋值。仿真器采用M ICETEK公司的EasyProbe8052F仿真器,该仿真器是目前较为常用且功能较强的一种开发装置 。实验系统板由外部中断信号、计数脉冲输出、串行显示、A/D转换器、并行输入/输出电路所组成。主要用于完成中断及并行输出、定时/计数器中断及外部信号计数、串行通讯及串行显示实验、A/D转换等多项基本的单片机的接口实验。仿真软件由WAVE的编辑软件及MICETEK公司的

3、EasyProbe8052F仿真软件组成。上述软件均在WINDOWS环境下运行。上述设备及应用软件的具体功能在下列论述中再详细说明软件说明:WAVE开发环境 参见附件1:WAVE6000.FPT文件下载地址:EeasyProbeSLD仿真软件的简要说明。启动:双击EasyProbe/SLD图标进入软件。启动后,EasyProbe/SLD弹出Select Emulation CPU对话框供选取CPU。选取CPU后,EasyProbe/SLD继续检查通讯设定是否正确。如果通讯设定错误,在运性EasyProbe/SLD时弹出Setup Communication对话供选择。多次选择出错则需要检查仿真

4、器本身工作即连线是否正常。映射存储器:每次运行EasyProbe/SLD,程序都会寻找MAP.SVA文件,该文件记录了映射存储器设定的信息。如果没有找到,EasyProbe/SLD将自动弹出Set Map对话框,让你进行映射存储器初始设定,如果找到,Map对话框就不会出现。这时,如需改变当前映射,则可从Group菜单中选择Map命令来打开Set Map对话框修改设定。Overlay表示设定内部读写: Target表示设定外部读写使用源程序窗口调试程序:EasyProbe/SLD支持源程序调试。在源程序窗口中,您可查看源代码,设定断点,开始或终止仿真以及源程序进行单步操作即检查变量。从EasyP

5、robe/SLD主窗口的Windows或快捷键菜单中选择Source Windows命令开启源程序窗口。快捷键工具栏如下:快捷键命令从左到右依次分别为:l Brows Module命令键(查看模块)l Load命令键 (载入代码)EasyProbe/SLD将您最近使用的4个文件列在File菜单的底部,直接从菜单中选择调试程序文件名。或单击该快捷键根据弹出的对话框进行选择。l Map命令设定映射存储器参数l Reset(仿真复位)l Restartl Break point(断点设定)将鼠标指向程序航左边(或地址上)须设定断点处,鼠标形状从箭头状变成瞄准器形状。按下鼠标左键。这时,程序行左边会出

6、现断点标志。重复上述步骤可设定多处断点。如果您试图对以非执行语句设置断点时,EasyProbe/SLD不会作出任何响应。l Go (仿真至断点)l Go Run (全速运行)l Halt (停止仿真)使用下列任何一种方法便可以停止仿真。按F2快捷键单节工具条上的Halt命令钮l Step Into(步入)如果单步仿真从包含有函数调用命令的源程序语句开始,而且所调用的函数中也包含源代码,(步入)该函数且停止在该函数第一行可执行语句。l Step Over(步越)如果单步仿真从包含有函数调用命令的源程序语句开始,而且所调用的函数中也包含源代码,(步越)时,该函数看作一行语句执行。在函数中不会停留。

7、l Over Returel Goto Shell Window进入Shell命令对话框快捷钮连续单步仿真打开Run菜单选择Step Into Continuously或Step Over continously命令以实现连续单步仿真。中途退出按ESC键查看存储器在仿真过程中需要查看和修改存储器值时,可以从Window菜单选择Memory命令打开存储器窗口。EasyProbe/SLD可同时打开3个窗口,使用户可以方便地查看存储器的不同区域。查看和修改寄存器需要查看和修改寄存器时,可以从Window菜单选择CPU命令或在主窗口点右键打开快捷菜单以打开CPU窗口。另外,EasyProbe/SLD的

8、周边寄存器窗口(Peripheral)允许您显示和设定未被列在CPU窗口中的处理器的其它特殊功能寄存器值。Shell窗口即其命令窗口命令可以代替调试窗口的菜单命令使用。较常用的有寄存器命令Register。用于查看内部寄存器数值。例:存储器查看命令。Memory p:400; Displa data from program memoryMemory r:10 r:1f; Displa on-chip data memory 10 1f注:各种Shell命令的详细说明可通过Help菜单来查看仿 真 器 使 用 部 骤 及 基 本 注 意 事 项 :l 将实验板的电源接 5 V电源输出端,注意红

9、线接正端,黑线接负端,切不可接反 。l 首次使用时请在D盘建立一个文件夹,以后使用时将您全部的实验程序存放在该文件夹内以便于管理,其次也便于实验室工作人员在实验结束后清理及维护计算机。l 双击计算机桌面上的WAVE图标,进入WAVE编辑器进行源文件(后缀为.asm)的编辑和编译,最后形成一个后缀为HEX的机器码文件。l 双击计算机桌面上的EasyProbeSLD图标,进入仿真器的仿真调试软件。载入编译后生成的HEX文件进行调试。详细说明请参考附件:Easy使用说明第二章:实验目录实验一:上机操作7实验二:综合实验一【模拟交通灯控制实验】实验三:综合实验二【液晶显示多路数据采集系统】实验四:综合

10、实验三【模拟双容水箱液位控制】实验五:综合实验四:【步进或直流电机PWM驱动】实验一:上机操作第一节:实验板一及实验线路示意图:第二节:实验内容:将例行程序输入、编译、下载、运行后观察运行结果。第三节:实验要求:l 了解Micetek仿真器的一般上机操作规程。l 掌握编辑软件(WAVE)及仿真软件EeasyProbeSLD的使用方法。l 结合线路图,掌握串行模式一下的八段LED显示器的显示方法。l 重点掌握源程序的基本调试方法如怎么样设置单步、设置断点运行程序及如何观察程序运行结果等。l 读懂例程中的LED显示子程序,重点是字形变换部分。例程:利用串行口的模式0进行6位八段显示程序。 ORG

11、0000H AJMP MAIN ORG 0003H AJMPEXP_0ORG 0080HMAIN: MOV SP, #60H MOV TMOD, #00H MOV TCON, #00H MOV TH0, #00H MOV TL0, #00H MOV SCON, #00H MOV IE, #00HMain_0:NOP MOV P0, #00H MOV R7, #10H; MOV A, #00H NOPMain_1:NOP MOV 47H, A ;将需显示的三位数据存入缓冲区 MOV 48H, A ; MOV 49H, A ; ACALL daim_1 ;调用显示代码转换子程序 NOP ADD A

12、, #11H NOP DJNZ R7,main_1 ;判断十六次循环是否结束 NOP SJMPmain_0; 代码转换及串行发送子程序Daim_1: PUSH ACC MOV DPTR, #TAB_1 MOV A, 47H ANL A, #0FH MOVC A, A+DPTR MOV 4AH, A ;转换后的低4位显示代码存入显示缓冲区 MOV A, 47H SWAP A ANL A, #0FH MOVC A, A+DPTR MOV 4BH, A ;转换后的高4位显示代码存入显示缓冲区 MOV A, 48H ANL A, #0FH MOVC A, A+DPTR MOV 4CH, A MOV A

13、, 48H SWAP A ANL A , #0FH MOVC A, A+DPTR MOV 4DH, A MOV A, 49H ANL A, #0FH MOVC A, A+DPTR MOV 4EH, A MOV A, 49H SWAP A ANL A, #0FH MOVC A, A+DPTR MOV 4FH, A MOV R1, #4AH MOV R0, #06H;显示循环次数6次 MOV A, R1 CLR TI MOV SBUF, A NOP JNB TI, 00EAH ;检测串行数据是否发送结束 INC R1 DJNZ R0, 00E5H NOP ACALLyans_1 ;调用延时子程序

14、MOV P0, #00H SETB P0.0 ;亮红灯 ACALLyans_1 ; CLR P0.0 ;灭红灯 SETB P0.1 ;亮黄灯 ACALL yans_1 ;调用延时子程序 CLR P0.1 SETB P0.2 ACALL yans_1 ;调用延时子程序 CLR P0.2 SETB P0.3 ACALL yans_1 CLR P0.3 SETB P0.4 ACALL yans_1 CLR P0.4 SETB P0.5 ACALLyans_1 CLR P0.5 NOP NOP POP ACC RET;延时子程序Yans_1: PUSH ACC MOV R1, #00H MOV R0,

15、 #00H NOP NOP DJNZ R0, 0126H DJNZ R1, 0126H NOP POP ACC RET;字符显示代码表TAB_1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EHORG0300HEXP_0:RETI综合实验一:模拟交通灯控制实验第一节:实验线路图:【图一】【图二】插入实际的照片第二节:实验内容:编写模拟交通灯运行控制程序。要求红绿灯亮灯延时时间为30秒,黄灯亮灯延时时间为10秒。利用二位八段LED显示器进行时间显示。时间显示采用倒计时的方式。时间归零时信号进行切换。

16、第三节:实验要求:掌握单片机内部通用资源如中断、定时计数器、串行口及并行端口的应用。l 时间的延时必须采用定时器定时中断方式进行,定时器0或定时器1可任选一个(默认为0)。编程时请充分考虑定期器的时间扩展问题。l 利用二位八段LED显示器进行时间显示,显示码采用串行口模式0进行输出.显示方式及相应的程序编写请参考实验一。显示部分的详细接线原理及对应的显示码参考图二。l 掌握中断系统的基本概念及使用方法。如:中断被响应所需的必要条件;一个完整的中断响应过程;中断优先级的概念l 信号灯的控制由并行口P0口输出进行快关控制。第四节:相关知识的回顾及编程注意事项存储单元:充分理解程序存储器、内部及外部

17、数据存储器、寄存器、特殊功能寄存器等存储单元的相对物理位置及访问这些存储单元相应指令结构。中断1:中断的响应条件;2:中断标志位的含义。3:中断向量地址的概念。4:中断子程序的执行过程。5:中断嵌套【中断优先级的概念】。定时器定时/计数器的本质是一个减一(或加一)计数器,当计数器归零时使得内部特殊功能寄存器中相应的为发生置位。产生中断请求。当对定时/计数器对系统内部晶振信号进行计数时我们称之为定时器,对系统外部脉冲信号进行计数时我们称之为计数器。串行通信LED八段显示码及数据转换的概念TTL74Ls164的功能及数据、时钟信号的时序配合图,结合串行口输出的时序综合考虑。第五节:参考资料综合实验

18、二液晶显示模拟多通道数据采集系统第一节:实验接线示意图:ADC0809接线图【图一】DAC0832接线图液晶显示器接线图【图二】第二节:实验内容:采用总线方式构架一个多路数据采集系统。并将采样数据分二行在液晶显示模块上进行实时显示。随着被采样电压值的变化液晶显示器显示的值跟随变化(即连续采样)。显示数值为实际的电压值。C H 4: xx H CH5:xx HC H 6: xx H CH0:xx H第三节:实验要求:l ADC0809 对三路数据【通道4、通道5、通道6】进行采样,同时将通道4的采样结果送人DAC0832进行DA转换,再将DA输出电压接到AD的通道0进行转换并将4个通道的实际值分

19、分二行发送到液晶显示器上进行显示。显示效果如上图所示。l 通过实验建立微处理器总线构架及系统内地址选择的等基本概念l 掌握A/D转换器ADC0809、DAC0832及液晶显示模块的工作原理。l 编写A/D、D/A转换及液晶显示模块的实验程序。第四节:相关知识的回顾及编程注意事项重点提示: 1):掌握和理解单片机总线工作模式下各信号线的跳变及相应的时序。特别要了解ALE及RD、WR信号线在总线方式下的时序。2):在总线方式下各相应指令的结构。3):外围接口芯片的地址选择方式。 4):了解LCD模块的使用说明及特别是指令说明。参考例程:说明:1:由于CPU的运行速度大大高于液晶显示器的工作频率,因

20、此每次向液晶显示器传输数据或命令时必须检测显示器的工作状态。2:dptr为显示器的地址。3:参考例程是将起始地址为30H的16个片内RAM中的数据进行显示例程:main:nopnopmain_1:nopacalljiancnopacalllcdnopmovdptr,#2300H;液晶显示模块命令缓冲区地址mova,#80h;置第一行显示位置movxdptr,anopacall jiancnopmovdptr,#2302h;液晶显示模块数据缓冲区地址movr3,#10h;显示的个数mov r0 ,#30h;显示吗(ASCII)的起始地址main_2:nopnopmova,r0movxdptr,a

21、nopacall jiancnopincr0djnzr3,main_2nopnopmov dptr ,#2300hmova,#0c0h;置第二行显示位置movxdptr,anopnopacall jiancmovdptr,#2302hmovr3,#10hmov r0 ,#30hmain_3:nopnopmova,r0movxdptr,anopnopacall jiancnopnopincr0djnzr3,main_3nopend;* 液晶初始化子程序 *Lcd:movdptr,#2300h;写命令mova,#3fh;功能设置:总线宽度为8、两行显示、八位点阵显示movxdptr,aacallj

22、iancmova,#01h;清除屏幕movxdptr,aacall jiancmova,#0fh;开显示movxdptr,aacall jiancmova,#06h;移动光标movxdptr,aacall jiancret;* 检测液晶显示器工作状态子程序 *jianc: nop push dpljia_1:nopmovdptr,#2301H;读命令、检测忙标志movxa,dptrnopjbacc.7,jian_1;检测忙位是否有效。 pop dpl nop ret第五节:参考资料【一】:ADC0809中文资料 1.主要特性 1)8路8位A/D转换器,即分辨率8位. 2)具有转换起停控制端.

23、3)转换时间为100s (时钟640k) 4)单个+5V电源供电 5)模拟输入电压范围0+5V,不需零点和满刻度校准. 6)工作温度范围为-40+85摄氏度 7)低功耗,约15mW. 2.内部结构 ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图13.22所示,它由8路模拟开关,地址锁存与译码器,比较器,8位开关树型D/A转换器,逐次逼近 寄存器,三态输出锁存器等其它一些电路组成.因此,ADC0809可处理8路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作.输入输出与TTL兼容. 3.外部特性(引脚功能) ADC0809芯片有28条引脚,采用双列直插式封装

24、,如图13.23所示.下面说明各引脚功能. IN0IN7:8路模拟量输入端. 2-12-8:8位数字量输出端. ADDA,ADDB,ADDC:3位地址输入线,用于选通8路模拟输入中的一路. ALE:地址锁存允许信号,输入,高电平有效. START: A/D转换启动信号,输入,高电平有效. EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平). OE:数据输出允许信号,输入,高电平有效.当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量. CLK:时钟脉冲输入端.要求时钟频率不高于640KHZ. REF(+),REF(-):基准电

25、压. Vcc:电源,单一+5V. GND:地. ADC0809的工作过程是:首先输入3(0-7)位地址,并使ALE=1,将地址存入地址锁存器中.此地址经译码选通8路模拟输入之一到比较器.START上升沿将逐次逼近寄存器复位.下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行.直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请.当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上.详细说明及管脚排列等数据参考同一文件夹内【ADC0809】 pdf文件【二】:DAC0832中文资料详细说明及管脚排列等数据参考同一文

26、件夹中的【DAC0832】 PDF文件【三】:LCD模块资料:详细说明参考同一文件夹中的【液晶显示模块使用说明书】 PDF文件,重点是对命令格式及特征码的理解。运算放大器 LM358中文资料LM358内部包括有两个独立的、高增益、内部频率补偿的双运算放大器, 适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工 作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益 模组,音频放大器、工业控制、DC增益部件和其他所有可用单电源供电的使用运算放大器的场合。 LM358的封装形式有塑封8引线双列直插式和贴片式。 特性(Features): 内部频率补偿。 直流电压

27、增益高(约100dB) 。 单位增益频带宽(约1MHz) 。 电源电压范围宽:单电源(330V);双电源(±1.5一±15V) 。 低功耗电流,适合于电池供电。 低输入偏流。 低输入失调电压和失调电流。 共模输入电压范围宽,包括接地。 差模输入电压范围宽,等于电源电压范围。 输出电压摆幅大(0至Vcc-1.5V) 。 参数输入偏置电流45 nA输入失调电流50 nA输入失调电压2.9mV输入共模电压最大值VCC1.5 V共模抑制比80dB电源抑制比100dB 综合实验三模拟双容水箱液位控制(232串行通讯)实验第一节:实验接线示意图232双容水箱的二路压力传感器的输出采样以

28、及水泵流量的输出控制(DA输出)接线可参考综合实验二的接线第二节:实验内容:对二路的输入电压(模拟双容水箱的二路压力传感器输出)进行采样,并将采样值通过标准232串行接口发给上位PC机,上位PC机接受到二路数据后回馈一个模拟的阀门开启值(八位数据)给单片机。第三节:实验要求l 要求单片机串行口选择模式1,波特率选用2400HZ。l 选用定时器1为波特率发生器,晶振为6M。l 要求每隔500MS向上位机发生一次AD采样值,同时把上位机回馈的数值经DA转换后再接到AD的通道0,并把AD转换结果在液晶显示器上进行显示。最终显示结果如下图: C H 4: xx H CH5:xx HP C: xx H

29、CH0:xx HPC对应的为上位机回馈数据。第四节:相关知识的回顾及编程注意事项理解串行口四种通讯模式的区别、波特率发生器的作用及通讯过程中的时序关系。编程除通讯程序外大部分可参考综合实验二的实验程序。上位机的通讯程序可利用串行助手、STC系列的在线编程程序等作为外挂程序,此部分说明在实验过程中予以展开。编程建议第五节:参考资料综合实验四电机控制第一节:电机驱动模块原理与接线示意图L298及其他相关的双桥控制直流电机驱动芯片资料可上网搜索下载。第二节:步进电机控制四相八拍输出驱动波形第三节:直流电机的PWM控制参考子程序集及附录双字节二进制数到BCD码转换31多字节无符号数乘法子程序32双字节

30、无符号数除法子程序:33单字节有符号数除法子程序:35外部脉冲信号宽度测量36查表法求函数值:37排序38附录一:特殊功能寄存器中的专用位地址39附录二:专用寄存器(除PC外)40附录三:MCS51系列指令系统摘要41双字节二进制数到BCD码转换说明:因为(A15A14。A1A0)2=(。(0×2+A15)×2+ A14。)×2+ A0,所以,将二进制数的最高位逐次左移入BCD码寄存器的最低位,并且每次都实现(-)×2+ AI的运算,共循环16次,循环计数由R7控制。入口:R3、R2(16位无符号二进制数整数)。出口:R6(万位),R5(千、百),R4(

31、十、个)存放5位BCD码。程序清单:B16:CLRA;BCD码寄存器清零MOVR4,AMOVR5,AMOVR6,AMOVR7,#10H;设置循环次数LP0:CLRCMOVA,R2RLCAMOVR2,AMOVA,R3RLCAMOVR3,AMOVA,R4ADDCA,R4DAAMOVR4,AMOVA,R5ADDCA,R5DA AMOVR5,AMOVA,R6ADDCA,R6DA AMOVR6,ADJNZR7,LP0RET多字节无符号数乘法子程序说明:入口:R1(被乘数低位字节地址指针);R0(乘数低位字节地址指针);R2(被乘数字节数);R3(乘数字节数)。出口:R4(积的低位字节地址指针);R5(积

32、的字节数)。程序清单:DOMUL:MOVR6,01H;保存地址指针MOVR5,00H MOVA,R2ADDA,R3;求积的最大字长数MOV26H,AMOVR7,AMOVA,R4MOVR0,A;CLEAR:MOVR0,#00H;积单元清零INCR0DJNZR7,CLEAR;MOVR7,R4;求积MOV27H,R4MOV20H,R2LP0:MOVR0,R5MOVA,R0MOVB,R1MULABACALLADDMINCR1DJNZR2,LP0MOVR2,20HMOVA,R6MOVR1,AMOVA,R7INCAMOVR7,AMOVR4,AINCR5DJNZR3,LP0MOVR4,27HMOVR5,26

33、HRET;ADDMMOVR0,04H;加部分积MOVA,21HADDA,R0MOVR0,AMOVA,BINCR0ADDCA,R0MOVR0,AINCR0MOVA,·R0ADDCA,#00HMOVR0,ADECR0MOVA,R0MOVR4,ARET双字节无符号数除法子程序:说明:MCS51的除法指令只实现两个8位无符号数直接相除,因此,本子程序采用移位除法方法,如不考虑四舍五入,余数在R7(高),R6(低)中,程序到SMALL为止。入口;被除数R5(高)、R4(低);除数R3(高)、R2(低)。出口:商R5(高)、R4(低);余数R7(高)、R6(低)。程序清单:DIV:MOVR7,#

34、00H;部分余数单元清零MOVR6,#00HMOVR0,#10H;除法移位次数LP:CLRCMOVA,R4RLCA;移位MOVR4,AMOVA,R5RLCAMOVR5,AMOVA,R6RLCAMOVR6,AMOVA,R7RLCAMOVR7,ALP1:MOVA,R6 ;部分余减除数SUBBA,R2MOVR1,AMOVA,R7SUBBA,R3JCSMALLMOVR7,AMOVR6,01HINCR4;商加1SJMPLP1;SMALL:DJNZR0,LPMOV20H,R7;四舍五入JB07H,ADD1CLRCMOVA,R6RLCAMOVR6,AMOVA,R7RLCASUBBA,R3JCRETURNJN

35、ZADD1MOVA,R6SUBBA,R2JCRETURNADD1:MOVA,R4ADDA,#01H;商加1MOVR4,AMOVA,R5ADDCA,#00HMOVR5,ARETURN:RET单字节有符号数除法子程序:说明:先把补码形式的除数与被除数转变为原码,作无符号数除法,然后再把商转换成补码。入口:R2(被除数),R3(除数)出口:R2(商),R3(余)程序清单:SDIV:MOVA,R4ANLA,#80HMOVR4,AJZNEG3NEG2:MOVA,R2;被除数求补CPLAINCAMOVR2,ANEG3:MOVA,R3;求除数符号ANLA,#80HMOVR5,AJZSDVMOVA,R3;除数

36、求补CPLAINCAMOVR3,ASDV:MOVA,R4XRLA,R5MOVR5,AMOVA,R2;求商的绝对值MOVB,R3DIVABMOVR2,AMOVR3,BMOVA,R5JZNEG5NEG4:MOVA,R2;商求补CPLAINCAMOVR2,ANEG5:MOVA,R4JZRETURNMOVA,R3;余求补CPLAINCAMOVR3,ARETURN:RET外部脉冲信号宽度测量说明:当TMOD中的门控制位GATE置位时,定时器的启动受INT引脚上的电平控制,只有当INT和TR同时为1时,定时器才启动,利用这一功能,可测量INT上的正脉冲宽度(机器周期)。程序清单:PM:MOVTOMD,#9

37、9HMOVTL1,#00HMOVTH1,#00HCLRAFH ;关闭中断HERE1:JBINT1,HERE1SETBTR1HERE2:JNBINT1,HERE2HERE3:JBINT1,HERE3CLRTR1LCALLDIR;调用显示程序,显示-;TH1,TL1中的机器期-;数查表法求函数值:说明:设自变量X的值存放与60H中,表首地址为#TABLE,#TABLE单元中为Y0相应的自变量X0,-本程序采取数据搜索的方法,找到X i X lX i+1,则相应的Y为Y0+(i+1)D,若精度不够,可考虑提高表格密度,既缩小D值,也可再采取线性插值的方法求得较为精确的Y值。本程序的Y0存放于R2中,

38、D值存于R4中,查表结果Y值放于62H,表格构造如下: 地址#TABLE#TABLE+1#TABLE+2 内容 X0 X 1 X 2 相应的Y Y0 Y0+D Y0+2D程序清单:TS11:MOVR7,#00HMOVDPTR,#TABLELP0:CLRAMOVCA,A+DPTRCJNEA,60H,NOTEQLP1:INCDPTRINCR7SJMPLP0NOTEQ:JCLP1MOVA,R7MOVB,R4MULABADDA,R2MOV62H,ARET排序说明:R0:存放数据的首地址指针;R2:字节数。将一批数据按从小到大的次序排列。00H位为发生交换的标志位,只有当没有发生交换时,才算排序结束。程

39、序清单:ROLE1:MOVA,R0MOVR1,AMOVA,R2MOVR5,ACLR00HMOVA,·R1LP0:MOVR3,AINCR1CLRCMOVA,·R1SUBBA,R3MOVA,R3JNCLP1SETB00HMOVA,R3XCHA,·R1DECR1XCHA,·R1INCR1LP1:MOVA,·R1DJNZR5,LP0JB00H,ROLE1RET附录一:特殊功能寄存器中的专用位地址附录二:专用寄存器(除PC外)标识符名称地址* ACC累加器0E0H* BB寄存器0F0H* PSW程序状态字0D0H SP堆栈指针81H DPTR数据指针83

40、H和82H* P0P0口80H* P1P1口90H* P2P2口0A0H* P3P3口0B0H* IP中断优先级控制0B8H* IE允许中断控制0A8H TMOD定时器/计数器方式控制89H* TCON定时器/计数器控制88H*+ T2CON定时器/计数器2控制0C8H TH0定时器/计数器0高位字节8CH TL0定时器/计数器0地位字节8AH TH1定时器/计数器1高位字节8DH TL1定时器/计数器1低位字节8BH+ TH2定时器/计数器2高位字节0CDH+ TL2定时器/计数器2低位字节0CCH+ RLDH定时器/计数器2高位自动再装载0CBH+ RLDL定时器/计数器2低位自动再装载0

41、CAH* SCON串行控制98H SBUF串行数据缓冲器99H PCON电源控制97H 注:带(*)的寄存器可按字节或按位寻址。带(+)号的寄存器是与定时器/计数器2有关的寄存器,仅在8032/8052芯片中存在。附录三:MCS51系列指令系统摘要助记符 说 明字节时钟节拍MOVA, Rn寄存器送A累加器 1 12MOVA, direct直接寻址字节送A累加器 2 12MOVA, Ri间接寻址内部RAM送A累加器 1 12MOVA, #data立即数送A累加器 2 12数MOVRn, AA累加器送寄存器 1 12MOVRn, direct直接寻址字节送寄存器 2 24MOVRn, #data立

42、即数送寄存器 2 12MOVdirect, AA累加器送 2 12MOVdirect, Rn寄存器送直接寻址内部RAM 2 24MOVdirect, direct直址寻址RAM送直址寻址RAM 3 24据MOVdirect, Ri间接RAM送直址寻址RAM 2 24MOVdirect, #data立即数送直址寻址内部RAM 3 24MOVRi, AA累加器送间接寻址RAM 1 12MOVRi, direct直址寻址RAM送间接RAM 2 24MOVRi, #data立即数送间接寻址RAM 2 12传MOVDPTR, #data1616位数送数据指针 3 24MOVC, bit直接寻址位送进位位

43、 2 12MOVBit, C进位位送直接寻址位 2 24MOVCA, A+DPTRA+DPTR寻址的程序存储器内容送A 1 24MOVCA, A+PCA+PC寻址的程序存储器送A 1 24送MOVXA, Ri外部RAM数据(8位地址)送A 1 24MOVXA, DPTR外部RAM数据(16位地址)送A 1 24MOVXRi, AA送外部RAM(8位地址) 1 24MOVXDPTR, AA送外部RAM(16位地址) 1 24PUSHdirect直接寻址字节压栈 2 24类POPdirect出栈至直接寻址RAM 2 24XCHA, RnA与寄存器内容交换 1 12XCHA, directA与直接寻址地址内容交换 2 12XCHA, RiA与间接RAM内容交换 1 12XCHDA, RiA与间接RAM的低4位内容交换 1 12续表 助 记

温馨提示

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

评论

0/150

提交评论