第三章指令系统(二)_第1页
第三章指令系统(二)_第2页
第三章指令系统(二)_第3页
第三章指令系统(二)_第4页
第三章指令系统(二)_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

单片机接口技术及应用2/6/2023单片机接口技术及应用第三章单片机指令系统(二)万旭M.T.660109)QQ:85431017419:55应用电子系3第三章单片机指令系统课程目录一、指令系统概述二、51单片机指令分类介绍三、使用I/O访问指令应注意的问题四、指令上机练习方法P0.0

P0.1

P0.2P0.3P0.4P0.5P0.6P0.7P1.0

P1.1

P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P3.0

P3.1

P3.2P3.3P3.4P3.5P3.6P3.74个8位并行I/O口:P0,P1,P2,P3;均可作为双向I/O端口使用。(1)特点:P0:访问片外扩展存储器时,

复用为低8位地址线和数据线

P2:高8位地址线。P1:双向I/O端口

P3:第二功能1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

313029282726252424222180318051875189C51三、使用I/O访问指令应注意的问题指令系统并行输入/输出电路结构19:55应用电子系4111111110000000011111111010101011ALEWR

RDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7指令1:MOVP1,#00H指令2:MOVP1,#0FFH指令3:MOVP1,#0AAH输出举例指令4:CLRP1.0指令5:SETBP1.0+5V?三、使用I/O访问指令应注意的问题指令系统19:55应用电子系5+5V1111111111111111输入举例S0+5V4.7kWALEWR

RDP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7读端口:MOVP3,#11111111BMOVA,P389C51××××××××寄存器A注:当I/O端口作为输入使用时,需先向端口写入“1”,使内部的FET截止,再读入引脚的状态。你知道P3.4对应寄存器A哪一位吗?P3.4你知道这是为什么吗?111111110119:55应用电子系6三、使用I/O访问指令应注意的问题指令系统四个端口、双向、每个口包含一个锁存器、一个输出驱动器和二个输入缓冲器。一、P0口1、结构

19:55应用电子系7三、使用I/O访问指令应注意的问题指令系统并行I/O端口P0口:地址/数据复用口19:55应用电子系8三、使用I/O访问指令应注意的问题指令系统外接上拉电阻三、使用I/O访问指令应注意的问题指令系统19:55应用电子系9MOVP0,#0FHMOVP0,AMOVP0,#0FFHMOVA,P019:55应用电子系10三、使用I/O访问指令应注意的问题指令系统“在读入数据时应先把口置1,使两个FET都截止,引脚处于悬浮状态”19:55应用电子系11三、使用I/O访问指令应注意的问题指令系统读-修改-写方式指令:

从锁存器读入信号读-修改-写指令特点:从端口输入(读)信号,在单片机内加以运算(修改)后,再输出(写)到该端口上。ANLP0,#data;立即数&P0→P0ORLP0,A;A+P0→P0INCP1;P1+1→P1DECP3;P3-1→P3CPLP2;/P2→P2指令举例:三、使用I/O访问指令应注意的问题指令系统19:55应用电子系12P0口:地址/数据复用口三、使用I/O访问指令应注意的问题指令系统19:55应用电子系13P0口:地址/数据复用口三、使用I/O访问指令应注意的问题指令系统19:55应用电子系14P0口:地址/数据复用口三、使用I/O访问指令应注意的问题指令系统19:55应用电子系15三、使用I/O访问指令应注意的问题指令系统19:55应用电子系16P0口作为数据总线使用:访问外部程序存储器P0口输出低8位地址信息→数据总线,读指令码(输入)在取指令期间,“控制”信号为“0”,V1管截止,多路开关也跟着转向锁存器反相输出端Q非;CPU自动将0FFH写入P0口锁存器,使V2管截止,在读引脚信号控制下,通过读引脚三态门电路将指令码读到内部总线。

2、通用I/O口1)读(端口外数据→内部寄存器)方式1(读锁存器):Q→G2→D→内部总线适于“读—修改—写”方式2(读引脚):P0.x→G1→D→内部总线作为通用I/O使用,

是一个准双向口:“在输入数据时应先把口置1,使两个FET都截止,引脚处于悬浮状态”2)写(片内数据→端口)

数据→

锁存→MUX→P0.x

三、使用I/O访问指令应注意的问题指令系统19:55应用电子系173)地址/数据总线口控制MUX写:地址/数据为1,P0·x——高

地址/数据为0,P0·x——低读:经缓冲器G1读入

4)负载能力可带8个TTL输入,驱动MOS时,接上拉电阻三、使用I/O访问指令应注意的问题指令系统19:55应用电子系18总结特点:(1)P0口作用:可作通用I/O口,又可作地址/数据总线口;(2)P0寻址:可按字节寻址,又可按位寻址;(3)P0作为输入口使用时:是准双向口;(4)作通用I/O口输出时:是开漏输出;(5)作地址/数据总线口时,P0是一真正双向口,而作通用I/O口时,只是一个准双向口。

三、使用I/O访问指令应注意的问题指令系统19:55应用电子系19二、P1口1、结构:三、使用I/O访问指令应注意的问题指令系统19:55应用电子系20只能作I/O口用,且是一个准双向口。内部已有上拉电阻,不是开漏输出口。2、特点:(1)无地址/数据口功能(2)从P1口输入数据时,先向锁存器写“1”(3)可按字节寻址,也可按位寻址(4)作I/O输入口时:是一准双向口,不是开漏输出三、使用I/O访问指令应注意的问题指令系统19:55应用电子系21三、P2口1、结构

三、使用I/O访问指令应注意的问题指令系统19:55应用电子系222、特点:(1)当P2口作为通用I/O时,是一准双向口(2)从P2口输入数据时,先向锁存器写“1”(3)可位寻址,也可按字节寻址(4)可输出地址高8位三、使用I/O访问指令应注意的问题指令系统19:55应用电子系23四、P3口1、结构三、使用I/O访问指令应注意的问题指令系统19:55应用电子系242、特点:(1)作通用I/O时,“选择输出功能”应保持高电平(2)工作于第二功能时,该位锁存器应置1(3)作输入口时,输出锁存器和选择输出功能端都应置1(4)第二功能专用输入,取自输入通道第一缓冲器(G1)输出端,通用输入信号取自“读引脚”三、使用I/O访问指令应注意的问题指令系统19:55应用电子系25小结:1、P0口:地址低8位与数据线分时使用端口,2、P1口:按位可编址的输入输出端口,3、P2口:地址高8位输出口4、P3口:双功能口。若不用第二功能,也可作通用I/O口。5、按三总线划分:

地址线:P0低八位地址,P2高八位地址;数据线:P0输入输出8位数据;控制线:P3口的8位加上/PSEN、ALE共同完成控制总线。

P0端口能驱动8个LSTTL负载。P1,P2,P3端口各能驱动4个LSTTL负载。

如需增加负载能力,可在P0总线上增加总线驱动器。三、使用I/O访问指令应注意的问题指令系统19:55应用电子系2619:55应用电子系27四、指令上机练习方法指令系统KeiluVision在调试程序,软件仿真方面也有很强大的功能,既可以调试C语言程序,也可以调试汇编语言程序。KeilC51V9.00即09年发布的最新版本uVision4,比以前版本外观改变较大,界面感觉舒服一些。安装的方法和普通软件差不多。启动µVision_4点击桌面上的KeiluVision4图标,出现启动画面,进入uVision4。19:55应用电子系28四、指令上机练习方法指令系统19:55应用电子系29四、指令上机练习方法指令系统工程创建与设置1.建立一个新的工程执行软件菜单“project|NewuVisionProject”,弹出一个名为“CreateNewProject”的对话框,先选择一个合适的文件夹“Mytest”,再取文件名“test”。要养成习惯:每建一个工程,先建文件夹,将工程文件放到里面。19:55应用电子系30四、指令上机练习方法指令系统工程创建与设置1.建立一个新的工程19:55应用电子系31四、指令上机练习方法指令系统工程创建与设置1.建立一个新的工程执行“保存”后,会弹出一个对话框,选择CPU类型,找到并选中“Atmel”下的AT89C51。19:55应用电子系32四、指令上机练习方法指令系统工程创建与设置1.建立一个新的工程选择CPU确定后,会弹出一个对话框,“是否要把标准8051的启动代码添加到工程文件?”对于汇编语言,选“否”;对于C语言,一般选“否”;如果用某些增强功能需要初始化配置时,选“是”。至此,一个名为“test”的空白KeilC51工程建立。19:55应用电子系33四、指令上机练习方法指令系统工程创建与设置2.建立一个新源程序文件,并加入到工程中(1)建立一个新源程序文件执行软件菜单“File|New…”,进入编辑窗口。19:55应用电子系34四、指令上机练习方法指令系统工程创建与设置(1)建立新源程序文件——执行软件菜单“File|New…”,进入编辑窗口19:55应用电子系35四、指令上机练习方法指令系统工程创建与设置在编辑窗口键入程序,或复制一个完整的C程序。并取名“test.C”存盘,则以文本文件形式存入“Mytest”文件夹。19:55应用电子系36四、指令上机练习方法指令系统工程创建与设置(2)添加源程序到工程中源程序文件“test.C”已经建立,但此文件与刚建立的工程并没有内在联系,需要把它添加到工程中去。单击KeilC51软件左边的项目工作窗口“Target1”上的“+”,将其展开;然后右击“SourceGroup1”文件夹,产生如图下拉菜单。单击“AddFilestoGroup’Source…”,将会弹出选择文件对话框。19:55应用电子系37四、指令上机练习方法指令系统工程创建与设置(2)添加源程序到工程中在选择文件对话框中先选择文件类型为“CSourcefile(*.c)”,对话框将出现刚保存的文件“test.C”,选择“test.C”,再按一下“Add”按钮,最后按一下“Close”按钮退出添加。源文件“test.C”已经出现在项目窗口“SourceGroup1”文件夹内,单击左边的“+”展开后查看。19:55应用电子系38四、指令上机练习方法指令系统工程创建与设置3.相关设置(1)设置晶振频率单击KeilC51工具栏的图标,弹出为“OptionsforTargetTarget1”的对话框,单击“Target”标签页,选择晶振频率。19:55应用电子系39四、指令上机练习方法指令系统工程创建与设置(1)设置晶振频率单击“Output”标签页,选中CreateHEXFile,使编译器输出单片机需要的HEX文件。19:55应用电子系40四、指令上机练习方法指令系统工程创建与设置4.编译与汇编单击KeilC51工具栏的图标,编译或汇编当前源程序。其结果会显示在输出窗口内。如果是“0Error(s),0Warning(s).”,就表示程序语法上没有问题;如果存在错误或警告,会指出出错在第几行,双击指出错误,则有指向错误行。编译或汇编会生成HEX格式的程序文件“test.hex”,该文件可以被专门的芯片烧写工具载入并最终烧录到具体芯片中。烧录了程序的芯片安装在自己的电路板上,通电,就可以运行里面的程序。19:55应用电子系41四、指令上机练习方法指令系统工程创建与设置19:55应用电子系42四、指令上机练习方法指令系统工程创建与设置12行有语法错误19:55应用电子系43指令系统四、指令上机练习方法1.进入仿真状态单击工具栏的图标,进入仿真状态。仿真是为了检测程序运行是否符合预想的结果。进入仿真状态后,界面划分为多个窗口。除源程序窗口固定位置外,其它窗口可以任意放在不同位置。认识各仿真窗口(1).源程序窗口,显示源程序,指向当前即将执行的程序语句;(2).汇编窗口,显示汇编指令与机器代码,指向当前即将执行代码;(3).寄存器窗口,显示各寄存器的值;(4).其它窗口,窗口间可以进行切换,显示程序执行后的结果,例:各变量的值,存储单元的值等,是否符合预想的结果。在µVision_4下调试程序19:55应用电子系44指令系统四、指令上机练习方法在µVision_4下调试程序源程序窗口汇编窗口寄存器窗口命令窗口其它窗口19:55应用电子系45指令系统四、指令上机练习方法在µVision_4下调试程序(2).存储器观察窗口单击工具栏图标右边,可开启4个存储器观察窗口。分别观察不同存储器空间或不同的地址单元,片内RAM(d),片外RAM(x),程序存储器(c)。在Memory标签页地址栏“Address”内输入存储器类型和起始地址,则作相应显示。例如:d:0x20,显示内部RAM20H后的各单元数据。双击存储单元的数据,使之变成蓝色后,可以随意修改。19:55应用电子系46指令系统四、指令上机练习方法在µVision_4下调试程序2.程序运行控制程序可以单步或全速运行,具体由工具栏上的按钮实现。复位按钮,单击,单片机复位;全速运行,单击,程序全速运行;F5停止运行,进入全速运行时变红,单击,停止程序运行;单步进入,单击,程序单步执行,遇函数调用进入函数;F11单步跳过,单击,程序单步执行,遇函数调用视作1条指令;F10单步跳出,已进入函数,单击,从函数中跳出;Ctrl+F11执行到光标,单击,程序由现行位置执行到光标处。Ctrl+F1019:55应用电子系47指令系统四、指令上机练习方法在µVision_4下调试程序断点设置功能设置断点可以方便调试,当程序全速运行时遇断点自动停下,以便检查结果是否正确。允许设置多个断点。设置/清除断点,光标放在需要设置断点的行,单击图标,该行首出现一个红色方块,表示该行设置了断点;光标放在已设置断点的行,再单击图标清除该断点。双击红色方块,也清除该断点。断点标志19:55应用电子系48指令系统四、指令上机练习方法在µVision_4下调试程序断点不使能/使能,光标放在已设置断点的行,单击图标,行首红色方块变白,表示此断点不使能;再单击图标,方块又变回红色,表示此断点使能。不使能断点标志所有断点不使能,单击,所有断点不使能;清除所有断点,单击,清除所有断点。19:55应用电子系49指令系统四、指令上机练习方法在µVision_4下调试程序3.外围设备访问单击菜单“Peripherals”,会弹出外围设备菜单,其中列出了标准8051的外围设备(相对CPU而言):中断、I/O端口、串行口和定时器等。外围设备菜单中是可以进行操作的。(1).中断执行“Peripherals|Interrupt”,会弹出中断界面。19:55应用电子系50指令系统四、指令上机练习方法(2).I/O端口执行“Peripherals|I/O-Ports|Port0”,会弹出P0端口界面。P0引脚P0锁存器为1,单击可改变。值19:55应用电子系51指令系统四、指令上机练习方法(3).串行口执行“Peripherals|Seriar”,会弹出串行口界面。(4).定时器执行“Peripherals|Timer|Timer0”,会弹出定时器0界面。19:55应用电子系52思考与实践完成流水灯控制程序的编辑、编译、仿真等过程。(程序见后面的PPT)谢谢大家!

注意:有KeilC51集成环境的使用实例的课件在后面KeilC51集成环境的使用实例

一、KeilµVision界面窗口标题栏菜单栏工具栏项目管理器窗口编辑窗口命令窗口和输出信息窗口菜单条提供各种操作菜单。1.文件菜单的命令(File)2.编辑菜单的命令(Edit)3.视图菜单命令(View)4.项目菜单的命令(Project)6.调试菜单的命令(Debug)7.外围设备菜单命令(Peripherals)8.工具菜单命令(Tool)9.软件版本控制系统菜单(SVCS)10.视窗菜单(Window)11.帮助菜单(Help)5.Flash菜单(Flash)12.选择文本命令二、KeilµVision的使用方法以项目方式管理,各种C51源程序、汇编源程序、头文件等都放在项目文件里统一管理。使用时过程一般如下:建立项目文件给项目添加程序文件编译、连接项目,形成目标文件运行调试观察结果571建立项目文件uVision4采用项目方式管理,一个项目用一个文件夹存放,建项目时要先建一文件夹,文件夹建好后,启动uVision4,通过用Project菜单下的NewuvisionProject命令建立项目文件,过程如下:(1)在编辑模式下,选择Project菜单下的NewuvisionProject命令,弹出如图所示的CreatenewProject对话框。58(2)在CreateNewProject对话框中选择新建项目文件的位置(为项目建立的文件夹),输入新建项目文件的名称,项目文件类型固定为uvproj,例如,项目文件名为example,单击【保存】按钮将弹出如所示的SelectDeviceforTarget'Target1'对话框,用户可以根据使用情况选择单片机型号,如选择AT89C51。59(3)选择好单片机芯片后,单击【确定】按钮,这时弹出如图5.4所示的CopyStandard8051StartupCodetoProjectFolderandAddFiletoProject确认框,问是否把启动代码文件拷贝到项目文件夹并添加到项目中。如果程序用C51语言编写要选择【是】,汇编语言编写选择【否】,单击后,项目文件就创建好了。602给项目添加程序文件

程序文件已经建立好了可直接添加,程序文件如果没有,须先建立的程序文件再添加,过程如下。(1)如果没有程序文件,则应先用File菜单下的New命令建立程序文件,输入文件内容,存盘(注意汇编程序扩展名为.ASM,C语言程序扩展名为.C)。

这里新建一个控制并行口P2滚动输出高电平的汇编语言程序,存盘为IO.ASM文件,文件内容如下:61ORG0000HLJMPMAINORG0100HMAIN:MOVA,#01HLOOP:MOVP2,A LCALLDELAY RLA SJMPLOOP SJMP$DELAY:MOVR2,#10HDELAY1:MOVR3,#0FFH DJNZR3,$ DJNZR2,DELAY1 RET END62(2) 程序文件已经建立好后,在项目管理器窗口中,展开Target1项,可以看到SourceGroup1子项。(3) 右击SourceGroup1,在出现如图所示的菜单中选择AddFilestoGroup'SourceGroup1'命令。63(4) 弹出如图所示的AddFilestoGroup'SourceGroup1'对话框。在对话框中选择需要添加的程序文件,单击Add按钮,把所选文件添加到项目文件中。注意:在该对话框中文件类型默认为*.C,如果是汇编程序,需在文件类型选择框选择*.a*才看得到,如果文件添加得不对,可在项目管理器的SourceGroup1下面选中对应的文件,用右键菜单中的RemoveFile命令把它移出去。643编译、连接项目,形成目标文件

编译、连接用Project菜单下的BuiltTarget命令(或快捷键F7),如图所示。编译、连接时,如果程序有错,则编译不成功,并在下面的信息窗口给出相应的出错提示信息,以便用户进行修改,修改后再编译、连接,这个过程可能会重复多次。如果没有错误,则编译、连接成功,并且在信息窗口给出提示信息。提示信息654运行调试观察结果当项目编译、连接成功后,就可以进入调试模式,仿真运行来观察结果,运行调试过程如下。(1)先用Debug菜单下的Start/StopDebugSession命令(快捷键Ctrl+F5)进入调试模式,结果如图所示。66(2)用Debug菜单下的Go连续运行。(3)用Debug菜单下的Step单步运行。子函数中也要一步一步地运行。(4)用Debug菜单下的StepOver单步运行。子函数体一步直接完成。(5)用Debug菜单下的Stoprunning命令停止运行。(6)用View菜单调出各种输出窗口观察结果,用Peripherals菜单观察51单片机内部资源。图5.10为调出Peripherals菜单下的P2口观察的结果。(7)运行调试完毕,先用Stoprunning命令停止运行,再用Debug菜单下的Start/StopDebugSession命令退出调试模式,结束仿真运行过程,回到编辑模式。67685仿真环境的设置

当KeiluVision4用于软件仿真和硬件仿真时,如果不是工作在默认情况下,就需要在编译、连接之前对它进行设置。在编辑模式下,用鼠标右键单击项目窗口中当前项目的Target1,在右键菜单中选择Opti

温馨提示

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

评论

0/150

提交评论