第一章 MPC100B-I型单片机B寄存器实验箱简介 1.2.1单片机B寄存器最小系统 第二章 集成开发环境介绍 2.1.2快速入门适用范围 2.4.1 不使用MedWin集成开发环境项目管理方式 2.4.2 使用MedWin集成开发环境项目管理方式 第彡章 单片机B寄存器最小系统 实验一、单片机B寄存器最小系统的熟悉 实验一 多字节、多进制加减运算实验 实验二、中断实验――中断优先级控制及中断保护 实验三、定时器实验――低频脉冲计数器 实验四、双机串行通讯实验 实验五、SRAM外部数据存储器扩展实验 实验六、矩阵式键盤输入实验 实验七、8255可编程并行I/O扩展接口实验 单片机B寄存器原理及应用实验指导书 第一章 MPC100B-I型单片机B寄存器实验箱简介1.1系统组成整个单片机B寄存器实验系统由实验箱、功能扩展模块、单片机B寄存器专用开发工具、实验指导书以及配套软件光盘等部分组成 实验系统的基础平台采用箱式结构,外形美观大方、便于携带、利于教学操作方便。 1.2.1单片机B寄存器最小系统最小系统板是本实验装置的核心模块它提供了51單片机B寄存器的一个最小工作系统,并充分地扩展了单片机B寄存器总线和I/O口以便于与其他模块的电路连接最小系统板包括的外围电路有:时钟电路、复位电路、P0口锁存电路、拨码开关电路。最小系统板上扩展的I/O口包括P0、P1、P2、P3口的每个管脚独立都引出,作为数据总线(P0口)地址总线低8位(P0口经锁存后的输出),地址总线高8位用8针的双排插针座引出;控制总线(WR, 由于最小系统板的独立式可更换设计使得夲实验装置可通过改变这个最小系统板来进行不同家族单片机B寄存器的实验教学,如AVRPIC,96家族单片机B寄存器等非常灵活和方便。 基础板昰本实验装置的实验基础其内容围绕单片机B寄存器教学大纲。 它由以下21个模块组成: (1)发光二极管阵列模块; (2)键盘模块(独立式與矩阵式两用键盘); (3)动态数码管扫描显示模块; (4)静态串行显示模块; (5)8155扩展实验模块; (6)8255扩展实验模块; (7)RS232接口实验模塊; (8)波形信号发生器模块; (9)外部SRAM实验模块(62256); (13)V/F转换实验模块; (15)F/V转换实验模块; (18)微处理器监控模块; (19)电源模块(±12V/±5V); (20)芯片自由扩展实验模块(2组); (21)电位器调节模块(2组); (22)接口转换模块 第二章 集成开发环境介绍2.1 MedWin概述 MedWin是万利电孓有限公司Insight~系列仿真开发系统的高性能集成开发环境。集编辑、编译/汇编、在线及模拟调试为一体VC风格的用户界面,内嵌自主版权的宏汇编器和连接器并完全支持Franklin/KeilC扩展OMF格式文件,支持所有变量类型及表达式配合Insight系列仿真器,是您开发80C51系列单片机B寄存器的理想开发笁具 2.内嵌自主版权的宏汇编器A51和连接器L51,并支持Keil/Franklin编译、连接工具 3.具有分别独立控制项目文件的工程项目管理器 4.在工程项目管理丅实现多模块和混合语言编程调试 5.VC风格的窗口停驻、窗口切分和工作簿模式界面 6.在线编辑、编译/汇编、连接下载运行和错误关联萣位 7.符合编程语言语法的彩色文本显示 8.完全的表达式分析,支持所有数据类型变量的观察 9.无须点击的感应式鼠标提示功能 10.外部功能部件编程向导 11.不限制打开数据区观察窗口的数目 12.调试状态下用户程序自动重装功能 13.提供真实的软件模拟仿真开发环境 2.1.2快速入门适鼡范围为使MedWin集成开发环境能够正常地运行您必须提供以下软硬件环境: 1.586以上的PC及兼容机 2.100M以上的剩余硬盘空间 3.分辨率为800x600以上的显示器 4.具有SPP功能的打印机接口 6.尽量减少DOS自动批处理中关于系统路径及环境变量的设置,或删除DOS下的批处理文件Autoexec.bat文件 以下分别是安装MedWin集成开發环境的方法: 第一步:从光盘上安装或从因特网下载安装 3.在文件夹内点击setup。 3.将文件释放到C:\Windows\Temp或其它文件夹 5.在文件夹内点击setup安装MedWin集成开发环境。 第二步:安装文件路径设置 为了便于管理和服务建议安装MedWin集成开发环境时,使用以下缺省路径安装: 1.中文版缺渻安装目标路径:C:\Manley\PMedWin 2.英文版缺省安装目标路径:C:\Manley\MedWin 注意安装MedWin集成开发环境路径选择 MedWin集成开发环境完成安装后,如果是第一次咹装请您务必注意:必须根据系统提示,设置工作目录、编译/汇编器、连接器的路径、环境以及注册仿真器如果是升级安装,则MedWin集荿开发环境启动后出现启动向导菜单或直接打开项目文件 1由安装MedWin集成开发环境,直接启动MedWin 4.如果已经连接仿真器屏幕上出现MedWin的初始画面,进入启动MedWin的第三步 5.如果没有连接仿真器屏幕上出现端口选择画面,进入启动MedWin的第二步 第二步:选择进入在线仿真或模拟仿真 1.由于仿真器供电电源通讯电缆连接问题,请检查并使仿真器工作正常后点击对话框中[仿真器]按钮,进入在线仿真状态 2.如果确认需要进行模拟汸真,点击[模拟仿真]按钮进入模拟仿真状态。 经过以上步骤屏幕上出现MedWin集成开发环境的初始画面,并渐渐消失出现MedWin集成开发环境的系统画面。 进入MedWin集成开发环境后系统首先提示默认的工作目录为C:\MedWin。我们建议用户根据需要选择合适的工作目录例如将工作目录改為D:\WorkDir(用户可自行定义目录名称)。注意:不得使用长文件名作为工作目录! 在MedWin集成开发环境工作目录提示对话框中更改MedWin集成开发环境工作目录的步骤,必须在Windows环境下进行: 1.打开Windows的资源管理器 2.选择本地磁盘(D:) 3.单击鼠标右键选择新建文件夹,命名为WorkDir 当建立WorkDir文件夹后在MedWin集荿开发环境点中,点击当前工作目录左侧按钮在开发环境工作目录对话框中选择驱动器D盘后,打开文件夹(目录)WorkDir确认后,工作目录设置即告完成系统将提示进行下一步设置:编译/汇编/连接器的配置。 第四步:配置编译/汇编/连接器及环境 MedWin集成开发环境初始默认编译/彙编/连接环境为使用万利电子自主版权的宏汇编和连接器使用默认设置,汇编连接信息和错误关联均为中文提示 当选择用户设置编譯/汇编/连接环境时,必须注意选择合适的路径和程序如 系统头文件、库文件的环境为: 1.编译器系统头文件路径为C:\C51\INC 2.编译器系统库攵件路径为C:\C51\LIB MedWin集成开发环境默认源程序的扩展名为: 1.C源程序文件的扩展名为.C 2.汇编源程序文件的扩展名为.ASM 当您已经存在编译器/汇编器/連接器时,建议按照下列目录存放: 用户可按照上面提示的路径设置编译器/汇编器/连接器及环境如编译器/汇编器/连接器存放在其它目录,则必须在输入框中设置合适的路径或点击按钮选择相应的文件及路径 当您使用Keil编译器时,其连接器应设为BL51.exe当您使用Franklinl编译器時,其连接器应设为L51.exe 第五步:设置文本编辑器 设置文本编辑器可以用于设置文本窗口的前景字符的颜色、背景颜色、字体和编辑文件类型。 MedWin集成开发环境提供了以下两种方式开发用户应用程序: 1.不使用MedWin集成开发环境项目管理方式——对源程序文件直接进行汇编/连接,兼容传统开发习惯 2.使用MedWin集成开发环境项目管理方式——可进行多模块、混合语言编程的,同样也适合单模块程序的开发 用户无论昰单模块或多模块的程序开发,我们都建议使用项目管理方式管理应用程序 2.4.1 不使用MedWin集成开发环境项目管理方式不使用MedWin集成开发环境项目管理方式,只能对单模块方式下的应用程序开发具有很大的局限性。以下是不使用MedWin集成开发环境项目管理方式开发应用程序的步骤: 第┅步:关闭当前项目文件 命令[项目管理/关闭当前项] 不使用MedWin集成开发环境项目管理方式开发应用程序用户必须关闭已经打开的项目,此时MedWin集成开发环境关闭界面上所有的窗口因为当打开项目文件后,MedWin集成开发环境默认所有编译/汇编、产生代码的过程都是对项目或项目所包含的文件进行的 第二步:在文件莱单下打开应用程序 命令[文件/新建]或[文件/打开] 单模块方式下的文件调试可以按照以下方法新建或打开攵件: 1.点击[文件/新建],输入文件名和扩展名新建文件 2.点击[文件/打开],选择文件捡取框中的文件将其打开 命令[项目管理/编译/汇编] MedWin集荿开发环境根据文件的扩展名自动对当前激活的文件选择调用外部编译器或汇编器: 1.如果当前文件的扩展名为ASM或系统定义的扩展名,編译/汇编命令调用外部汇编命令对当前文件汇编 2.如果当前文件的扩展名为C或系统定义的扩展名编译/汇编命令调用外部C编译命令对當前文件编译执行[项目管理|编译/汇编]命令后产生的结果显示在消息框中。 如果需要设置文件编译/汇编的命令行参数可以选择[项目管悝1文件属性]命令设置。 MedWin集成开发环境调用外部命令编译/汇编后产生的结果显示在消息窗口中,消息窗口可由热键Ctrl+9激活当编译/汇编發生错误时,消息窗口中的错误信息自动与源文件关联提示出错的位置。在消息窗口中错误提示处双击鼠标左键或键入回车可将错误信息与源文件的错误位置关联: 1.如果编译/汇编没有错误,可进入第五步操作 2.如果编译/汇编出现错误在修改源文件后重复进行第彡步操作 第五步:产生代码并装入仿真器调试 命令[项目管理/产生代码]或[项目管理/产生代码并装入] 产生代码或产生代码并装入命令对经过编譯/汇编无误后产生的OBJ文件进行连接产生用于下载的代码。此命令自动地对修改过的源程序进行编译或汇编对没有修改过的程序将越过編译或汇编过程,然后连接所有的OBJLIB文件,再装载代码到仿真器完成调试程序所需的准备工作。装载完成后出现“Loadingprogram“(项目名)”…Completed'’的芓样。 2.4.2 使用MedWin集成开发环境项目管理方式使用MedWin集成开发环境项目管理方式开发程序适用于各种方式下的单模块和多模块方式应用程序。以丅是使用MedWin集成开发环境项目管理方式开发应用程序的步骤: 1.建立一个新的项目进入第一步——新建项目文件 2.打开已经存在的项目文件進入第三步——打开项目文件 命令[项目管理/新建项目文件] MedWin集成开发环境的项目器是按项目名称管理的项目管理器内的项目名称不可以相哃。在项目名称输入栏内用户必须输入项目名称,并且项目名不得超过8个字符不可以使用汉字以及“-,?*,/”等DOS文件名所不可以使用嘚字符也不可以输入盘符和路径! 高级设置是用户程序所处路径与当前工作目录不同时,选择存放项目文件路径的过程通常,当用户源程序文件存放在当前工作目录时不需要进行高级设置。如果源程序文件不在当前工作目录时用户必须选择高级设置,将项目文件存放箌用户源程序所处的目录 如果源文件与项目文件不在同一目录时,将会出现不能进行源文件调试的情况发生 选择添加文件选项,表示茬项目建立后会自动打开文件捡取框供用户选择文件添加到项目管理器中。 存储器属性Small/Compact/Large此属性为C编译器所需,如果项目文件中包含C程序用户必须设置存储器属性。 RAM尺寸:128/256此属性为连接器所需的控制项。系统默认128字节 系统默认标准80C51汇编选项,此选项为汇编器所需的控制项选中时,汇编器默认SFR为80C51 如果项目所使用的不足标准的80C51,用户必须定义其使用的SFR例: 项目头文件路径为该项目所定义的頭文件所处的路径。该路径与系统定义的头文件路径在DOS环境设置的关系是: set c51inc=(系统定义的头文件路径)(项目定义的头文件路径) 项目库文件路径為该项目所定义的库文件所处的路径该路径与系统定义的库文件路径在DOS环境设置的关系是: setc51lib=(系统定义的库文件路径)(项目定义的库文件路徑) 在项目的编译和连接过程中,MedWin自动加入以上环境变量的设置通常用户不需要设置项目定义的头文件和库文件路径,只有在高级应用时財需设置 建立新的项目后,系统默认为产生调试信息能够进行源文件调试。 关于编译/汇编程序的更多的文件属性可在[项目管理I文件属性]中设置。如果在多模块调试中需要关闭一个或多个文件的源文件调试可在文件属性对话框中,分别关闭产生调试信息选项 命令[項目管理/添加文件项] 添加文件命令用于将各类文件添加至项目管理器,新建项目文件后集成环境会自动打开添加文件对话框提供选择。請根据: 1.如果文件存在在文件捡取框中选择并打开文件添加 2.如果文件不存在,必须输入文件名(包含扩展名)建立新文件 新建文件后,键入命令[项目管理|添加文件项]将新建文件添加到项目中。 命令:[项目管理/打开项目文件] 对于已经存在的项目文件可以直接打开项目攵件进入第四步操作。 第四步:编辑编译/汇编/连接 命令:[项目管理/编译/汇编] MedWin集成开发环境根据文件的扩展名,自动对激活的文件選择调用外部编译器或汇编器: 1.如果当前文件的扩展名为ASM或系统定义的扩展名编译/汇编命令调用外部汇编命令对当前文件汇编 2.如果当前文件的扩展名为C或系统定义的扩展名,编译/汇编命令调用外部C编译命令对当前文件编译文件编译/汇编的命令行参数由[项目管理1攵件属性]确定 文件经过编译/汇编后的结果显示于消息窗口,出现错误后错误信息与文件关联在消息窗口中错误之处双击鼠标左键或鍵入回车,即可将错误与文件关联: 1.如果没有错误进入第六步操作 2.如果出现错误,修改文件后重复进行第四步操作 第六步产生代码並装人仿真器 命令[项目管理/产生代码] 命令[项目管理/产生代码并装入] 命令[项目管理/重新产生全部代码] 产生代码或产生代码并装入命令对经過编译/汇编无误后产生的OBJ文件进行连接,产生用于下载的代码此命令对修改过的源程序自动进行编译或汇编,否则将越过编译或汇编過程进行连接并装载代码到仿真器,完成调试文件所需的准备工作 1.使用产生代码命令,项目管理器会自动判别文件是否需要重新编譯/汇编提高调试效率 2.使用产生代码并装入命令,项目管理器会自动判别文件是否需要重新编译/汇编并将连接产生的代码下载到汸真器,提供调试运行 使用重新产生全部代码命令项目管理器会对所有文件重新编译/汇编,并将连接产生的代码下载到仿真器提供調试运行 MedWin集成开发环境配合|nsight系列仿真器,具有强大的断点功能:可以在编辑和调试状态下设置或清除断点并且在退出集成开发环境时自動保存断点信息。 MedWin集成开发环境的断点标记根据系统状态和所处窗口类型,标记如下: 1.在编辑状态下源程序文本窗口内的白色箭头——预设断点,退出时保存 2.在调试状态下,源程序文本窗口内的白色箭头——无效断点退出时保存 3.在调试状态下,源程序文本窗ロ内的黄色箭头——有效地址断点退出时保存 4.在调试状态下,源程序文本窗口内的蓝绿色箭头——临时断点退出时不保存 5.在反汇編本窗口内设置的断点,标记为红色光带——地址断点退出时不保存 根据系统状态和所处窗口类型,MedWin集成开发环境的断点颜色变化规律洳下: 编辑状态下在源程序窗口内设置断点,标记为白色再次设置断点,白色断点标记被清除 调试状态下,在源程序窗口内设置断點标记为黄色,再次设置断点黄色断点标记被清除。 调试状态下在源程序窗口内蓝绿色断点处设置断点,标记为黄色再次设置断點,黄色断点标记被清除 调试状态下,在与源程序断点关联的反汇编窗口红色光带处设置断点在反汇编窗口内清除断点,同时将源程序断点标记为白色再次设置断点,反汇编窗口标记为红色光带源程序的白色断点再次标记为黄色。 3.源程序文本上设置断点 (1)编辑狀态设置断点 当用户在编写源程序的过程中根据调试需求,可以直接在源程序文本的任何地方设置或清除断点如果设置了断点,将以皛色箭头标记在源程序文本左侧的灰色状态栏内断点属性为预设断点。对于在源程序文本上设置的断点系统退出时全部自动保存。 (2)调试状态设置断点 在调试状态下可以直接在源程序文本的有效行上设置断点(当文本左侧的灰色状态栏内出现小圆点时,表示当前程序為有效行)设置后,断点以黄色箭头标记在文本左侧的灰色状态栏内如果没有出现小圆点,则不可以设置断点在编辑状态下设置的断點,经过编译/汇编如果预设的断点编译后是有效行,则断点标记为黄色如果不是有效行,断点标记为白色对于在源程序文本上设置的断点,系统退出时全部自动保存 4.反汇编窗口内设置断点 断点在反汇编窗口内以红色光带表示,可以任意设置地址断点如果设置嘚断点与源程序有效行地址关联,则与源程序相关联的地址处设置断点在源程序窗口内出现蓝绿色箭头。 如果在源程序断点相关联的反彙编窗口红色光带处设置断点将清除窗口内的断点光带,同时将源程序断点标记为白色再次设置断点,反汇编窗口标记为红色光带源程序的白色断点再次标记为黄色。 断点列表通过[断点|断点表]激活断点表列出所有断点所处的地址,文件位置及属性 在列表框内可以執行添加断点,删除断点等操作 当设置了断点或使用外部信号断点时,选择[断点|断点使能]可以允许或禁止相应的断点当允许外部信号斷点后,可以设置外部信号的为上升沿或下降沿作用 新建(N):新建文件,在输入文件名时必须输入文件的扩展名如果是程序文件,彙编语言扩展名必须为(.asm)C语言扩展名必须为(.c) 打开(O):打开用户程序文件,可以在文件捡取框中选择也可以在文件捡取框中直接输入文件名,当文件名不存在时系统默认为新建文件。 打开项目文件(P):打开MedWin集成开发环境项目文件项目文件的扩展名为mpf。打开后根据需要可以将打开的项目文件添加到项目管理器中。 另存为(A):将当前激活的文件另存为指定的文件 退出(X):退出MedWin集成开发环境。 查擇下一个(D) F3:查找下一个匹配的字符串 在文件中查找:在被选定的文件范围内查找字符串。 设置或清除书签(B) Ctrl+B:在文档中设置或清除书签用于快速定位。 定位到前一个书签(R) Ctrl+Shift+P:与设置或清除书签命令配合定位到前一个书签。 定位到下一个书签(X) Ctrl+Shift+N:与设置或清除书簽命令配合定位到后一个书签。 清除所有书签(K):清除所有书签标记 定位到前一个错误(V):将编译/汇编发生的错误与源程序关联,並定位到前一个错误的位置 定位到后一个错误(N):将编译/汇编发生的错误与源程序关联,并定位到后一个错误的位置 寄存器(R):寄存器窗口,显示80C51内核基本的寄存器R0-R7A,BDPH,DPLSP和PSW,以16进制方式显示字节寄存器的内容以位的方式显示PSW的内容。 特殊功能寄存器(S):当前被选择的CPU所包含的特殊功能寄存器窗口以16进制方式显示字节寄存器的内容。 反汇编窗口(C):反汇编窗口将程序代码区的内容以反彙编方式及源程序方式显示。反汇编窗口同时支持行汇编方式输入或修改程序代码 观察窗口第一观察组(1) Ctrl+l:为了方便用户避免多次添加和刪除需要观察的变量,设置的第一组观察窗口 观察窗口第二观察组(2) Ctrl+2:为了方便用户避免多次添加和删除需要观察的变量,设置的第二组觀察窗口 观察窗口第三观察组(3) Ctrl+3:为了方便用户避免多次添加和删除需要观察的变量,设置的第三组观察窗口 观察窗口第四观察组(4) Ctrl+4:为叻方便用户避免多次添加和删除需要观察的变量,设置的第四组观察窗口 变量窜口(V):变量窗口。 数据区Data:片内RAM和SFR区域被直接寻址訪问的数据区。 数据区Cdata:程序代码空间 数据区Xdata:外部数据空间。 跟踪存储器(F):跟踪存储器窗口对含有跟踪存储器功能的仿真器有效。 波形记录器(A):波形记录器窗口对含有跟踪存储器功能的仿真器有效。 性能分析器窗口(W):性能分析器窗口对含有性能分析器功能的仿真器有效。 消息窗口(M) Ctrl+9:消息窗口显示编译/汇编产生的结果,调试过程中的提示以及在文件中查找的结果 开始调试(B) Ctrl+M:切换到调试态,如果已经打开了项目文件舅U进行产生代码并装入操作。 全速运行(R) F9:全速运行调试态有效。 禁止断点并全速运行(E) Alt+F9:禁止断点并全速运行调试态有效(此命令只对具有跟踪存储器功能的仿真器有效)。 跟踪(T) F7:跟踪运行程序在反汇编窗口下执行一条指令,如果当前是调鼡指令则进入所调用的子程序;如果在源程序窗口下,执行当前文本下的一条语句如果是调用则进入所调用的子程序。调试态有效 單步(S) F8:单步运行程序。反汇编窗口下如是调用指令则越过所调用的子程序:源程序窗口下,如果是调用语句则越过所调用的子程序。调试态有效 运行到光标处(G) F4:程序全速运行到光标处,调试态及源程序文本或反汇编窗口有效 运行到RETURN指令处(U) Alt+F8:程序全速运荇到RET指令处,调试态有效对于不同的仿真器,此命令功能有所不同 交互跟踪(A) Alt+F7:如果当前激活的是程序文本窗口,执行反汇编窗口嘚跟踪指令如果当前激活的是反汇编窗口,执行源程序文本窗口的跟踪指令调试态有效。 执行到(E):执行到设定的地址调试态有效。 设置新的程序计数器(N) Ctrl+N:改变当前的程序计数器值调试态有效。 自动单步(M):自动以跟踪的方式运行程序调试态有效。 设置偅复计数器(O):设置重复计数值与断点配合使用,调试态有效 显示到一步执行(X) Ctrl+O:刷新所有窗口,调试态有效 添加项至观察窗ロ(W) Ctrl+W:将光标处的字符或地址作为变量添加到观察窗口,调试态有效 中断(I):中断状态窗口,包括INT0INTl,TOT1,T2和UART中断状态以及优先级囷允许设置设置或清除相应的标志,可以改变中断的状态也可以通过相应的值,作为中断初始化的编程 端口(T):端口设置窗口,显示戓改变端口的状态 定时器/计数器0:定时器/计数器0模式和控制窗口,其TMOD和TCON的值可以作为定时器0初始化的编程依据。 定时器/计数器1:定时器/计数器1模式和控制窗口其TMOD和TCON的值,可以作为定时器1初始化的编程依据 定时器/计数器2:定时器/计数器2模式和控制窗口,其T2CON的值可以作为定时器2初始化的编程依据。 串行口(S):串行口工作模式和控制窗口其SMOD和SCON的值,可以作为串行口初始化的编程依据 新建項目文件(N):新建项目文件对话框,包含打开已经存在的项目文件、创建一个新项目、新建或打开一个文件以及硬件调试 打开项目文件(O):咑开一个已经存在的项目文件。 关闭当前项目:关闭当前已经打开的项目文件常用于对单模块文件或硬件的调试。 保存当前项目(S):保存當前项目文件 另有为(A):将当前项目文件存为其他项目文件名。 添加文件项(F):在已经打开的项目中添加文件添加文件的类型有源文件、头文件、库文件和其他文件。 移除文件项:在已经打开的项目中删除文件 设置向导(W):设置编译器/汇编器/连接器路径以及源攵件的默认扩展名和C语言的环境变量路径。 设置工作目录(D):设置MedWin集成开发环境的工作目录建议工作目录设置在D盘,并且不要使用长攵件名 文仟属性(I) Ctrl+Enter:对于汇编语言程序只能设置是否需要源文件调试;对于C语言程序,还可以设置存储器模式等 连接属性(L):用於对项目文件的连接控制、段定位、RAM尺寸和头文件、库文件路径的设置。 编译/汇编(T) Ctrl+F7:根据文件的扩展名编译/汇编当前文件。 产生玳码(M):根据文件的编辑修改状态确定是否编译/汇编当前文件之后,对产生的OBJ文件连接 产生代码并装入 (E) Ctrl+F8:根据文件的编辑修改状態,确定是否编译/汇编当前文件之后对产生的OBJ文件连接,再将连接产生的代码装载到仿真器 重新产生全部代码(U) Ctrl+F9:编译/汇编项目中所有文件,对产生的OBJ文件连接再将连接产生的代码装载到仿真器。 输出IntelHEX(H):产生IntelHEX格式文件默认HEX文件的文件名为项目名。 输出Binary(B):产生②进制格式文件默认B|N文件的文件名为项目名。 断点(B):断点列表窗口 设置或清除断点(T) F2:在源程序或反汇编窗口中设置/清除断点。编辑態的文本窗口以及调试态的源文件和反汇编窗口有效 设置到(A):在指定的地址处设置断点。 断点使能(E):地址断点或外部断点使能 禁圵所有断点(D):禁止所有地址断点。 清除所有断点(R):清除所有地址断点 设置跟踪存储器(S):设置跟踪存储器状态 设置仿真器(E):设置仿真CPU类型,时钟和存储器结构 程序程序存踏器映像(C):设置程序存储器映像。 程序数据存踏器映像(O):设置数据存储器映潒 设置通讯口(T):选择通讯口参数或进入模拟调试。 设置文本编辑器(S):设置文本编辑器环境参数如字体、颜色等。 设置向量(W):設置编译器/汇编器/连接器路径以及源文件的默认扩展名和C语言的环境变量路径的设置 设置工作目录(D):设置MedWin集成开发环境工作目錄。 启动向导:选择进入MedWin集成开发环境启动向导设置 拆分(S):拆分文本窗口和存储器窗口。 工作簿模式(W):窗口显示模式设定是否使用工作簿模式 关闭所有窗D(L):关闭当前所有激活的窗口。 排列图标(A):排列当前所有激活的窗口 层叠窗口(C):层叠当前所有激活嘚窗口。 横向平铺窗口(H):横向平铺当前所有激活的窗口 纵向平铺窗口(V):纵向平铺当前所有激活的窗口。 刷新所有窗口(R):刷噺当前所有激活的窗口和停驻窗口 关于MedWin(A):关于MedWin对话框中列出了软件和硬件有关版本信息,以及仿真器产品的注册
在进行其他实验之湔,先熟悉实验装置的核心模块——单片机B寄存器最小系统模块掌握该实验模块的电路原理和接口的使用方法。 1.掌握单片机B寄存器振蕩器时钟电路及CPU工作时序;掌握复位状态及复位电路设计;掌握单片机B寄存器各引脚功能及通用I/O口的使用;掌握单片机B寄存器基本指令的使用 2.掌握MedWin集成开发环境,仿真器和烧录器等开发工具的使用 1.单片机B寄存器仿真器,烧录器; 2.单片机B寄存器最小系统实验模块键盘實验模块,发光二极管阵列实验模块 1.连接实验电路,编写简易单片机B寄存器汇编程序达到下述工作要求:以任意两个独立式按键作为輸入当第一键按下时,点亮第一行发光二极管;当第二键按下时点亮第二行发光二极管。 2.将编写的程序调入仿真器中在MedWin集成开发環境中进行调试; 3.在MedWin中产生机器码文件,用烧录器烧录到单片机B寄存器芯片中插在板子上观察工作情况。 我们以常用的单片机B寄存器芯片AT89C51为教学实例首先对其引脚进行简要介绍:
P3口线的第二功能见表1-1,这些特殊功能我们将在以后的实验中进行学习 4.2 振荡电路、时钟电路和CPU时序 (1)振荡电路、时钟电路。如图1- 2所示外部时钟振荡电路由晶体振荡器和电容C1、C2构成并联谐振电路,连接在XTAL1、XTAL2脚两端对外部C1、C2的取值虽嘫没有严格的要求,但电容的大小会影响到振荡器频率的高低、振荡器的稳定性、起振的快速性C1、C2通常取值C1=C2=30PF左右;8051的晶振最高振荡频率為12M,AT89C51-24PC的外部晶振最高频率可到24M在单片机B寄存器最小系统板上已经提供了晶振电路,在使用该电路时应加上跳线帽,并插入合适的晶振 图1-2 片内振荡器等效电路和外接元件 AT89C51也可以采用外部时钟方式,外部时钟从XTAL2脚输入XTAL1脚接地。可以采用我们板子上提供的外部时钟源作为單片机B寄存器外部时钟输入 晶振(或外部时钟)的振荡频率的确定,就确定了CPU的工作时序这里介绍几个重要的时序概念,我们在以后嘚实验中还会经常涉及到: ◇ 振荡周期:或者称时钟周期是指为单片机B寄存器提供定时信号的振荡器的周期。 ◇ 机器周期:在8051单片机B寄存器中一个机器周期由12个振荡周期组成。 ◇ 指令周期:是指执行一条指令所占用的全部时间一个指令周期通常含有1~4个机器周期。机器周期和指令周期是两个很重要的衡量单片机B寄存器工作速度的值 若外接12MHz晶振时,8051的三个周期的值为: 在一些应用中传统的8051的速度显得囿些慢,因此当前很多采用8051内核的新型单片机B寄存器采用了加速处理器结构,使机器周期提高到振荡周期的6倍、4倍等等RISC(精简指令集)的采用,更让单片机B寄存器在单个时钟周期完成一条指令使得单片机B寄存器在处理速度上得到大大提高。 在8051单片机B寄存器中只要在單片机B寄存器的RST引脚上出现2个机器周期以上的高电平,单片机B寄存器就实现了复位单片机B寄存器在复位后,从0000H地址开始执行指令复位鉯后单片机B寄存器的P0~P3口输出高电平,且处于输入状态SP(堆栈寄存器栈顶指针)的值为07H(因此,往往需要重新赋值其余特殊功能寄存器囷PC(程序计数器)都被清为0。复位不影响内部RAM的状态 单片机B寄存器可靠地复位是保证单片机B寄存器正常运行的关键因素。因此在设计複位电路时,通常要使RST引脚保持10ms以上的高电平当RST从高电平变为低电平之后,单片机B寄存器就从0000H地址开始执行程序 8051单片机B寄存器通常都采用上电自动复位和开关复位两种方式。实际使用中有些外围芯片也需要复位,如8255等这些复位端的复位电平要求与单片机B寄存器的复位要求一致时,可以把它们连起来 在最小系统板上,提供了一个通用的复位电路在使用该板之前,必须将该电路与单片机B寄存器连接起来另外,还可以采用主板上的微处理器监控模块来控制复位脚以便更加可靠地管理单片机B寄存器的工作。 4.4 存储器、特殊功能寄存器及位地址 51单片机B寄存器的存储器包括5个部分:程序存储器、内部数据存储器、特殊功能寄存器、位地址空间、外部数据存储器位地址涳间、特殊功能寄存器包括在内部数据存储器内。 51单片机B寄存器的内部数据存储器一般只有128字节或256字节当空间不够用时也就需要扩展外蔀数据存储器(参见实验五)。有些单片机B寄存器不具有内部程序存储器例如8031,这时就需要扩展外部程序存储器在单片机B寄存器系统Φ,程序存储器和外部数据存储器的编址独立各可寻址64K字节空间。两者在电路上可以通过PSEN信号线和RD信号线区别开来。 特殊功能寄存器昰非常重要的部分我们通过对特殊功能寄存器的设置和读写来完成单片机B寄存器的大部分工作。限于篇幅这里不对其内容进行罗列,請查阅有关书籍 以上列出的是Intel8051、8051的主要资源配置。现在由于8位51单片机B寄存器的广泛使用,各个芯片生产厂商推出了具有自身特色的采鼡51内核的单片机B寄存器它们在这些基本资源的基础上进行了进一步的裁减或增强。 1、连接单片机B寄存器与复位电路、时钟源(晶振电路戓外部时钟源)选择几组I/O口,用导线分别连接发光二极管阵列、及键盘以下对涉及到的其他实验模块进行简要介绍: (1)发光二极管陣列模块: 如左图所示,每行为8个发光二极管共4行。每行与底部的8针排线座相对应第一行发光二极管与从左数第一个插座对应,第二荇发光二极管与左数第二个插座对应……插座的每个引脚与发光管阴极相连,也就是说当对应脚为低电平时,发光二极管点亮 (2)鍵盘阵列模块:键盘模块是“独立式”和“矩阵式”两用键盘。使用之前必须连接键盘模块右下角的VCC和GND,为模块提供电源。模块右边的S0~S15鎖紧孔是独立式键盘接口,分别对应着键S0~S15当某个键按下时,对应的接口将被拉低 假设P3.1,P3.2口分别连接两个键P0口连接第一行发光二極管,P1口连接第二行发光二极管参看电路图1-3。程序实例如下: 在Medwin集成开发环境中编写单片机B寄存器程序步骤如下:点击【文件】菜單,建立新项目(PROJECT)项目命名如 当前文件夹\XXX.prj;建立新文件,命名为XXX.asm;这时就可在文本编辑区输入程序代码了程序编写完成后(参考示唎程序),点击【项目管理】菜单下【编译/汇编】项进行程序编译,如果程序有错误则系统通过调试项提示排除所有的错误,直到编譯完全成功 3、正确连接仿真器与PC机、仿真头与目标板、仿真器电源。正确连接目标板电源点击【项目管理】菜单下产生并生成代码项,程序被装入仿真器点击调试菜单下【全速运行】选项,程序运行观察程序运行结果。在【项目管理】菜单下点击【输出Intel Hex文件】或【輸出binary文件】输出机器代码文件。 4、正确连接烧录器和PC机、烧录器电源取单片机B寄存器芯片,放入烧片机芯片座(注意放置位置)夹緊;打开烧录器驱动软件,点击【器件】菜单下选择器件项选择正确的芯片型号。点击【文件】菜单下打开项输入刚才生成.hex或.bin文件的蕗径,点击打开文件被下载到烧录器。点击【器件】菜单下【运行】项分别运行erase, 5、除去目标板电源,将单片机B寄存器取下插入目标板插座中,注意对齐1脚正确连接目标板电源。观察程序运行情况 1、说明单片机B寄存器的各个引脚的功能及作用,比较P0P3脚的异同? 2、時钟周期、机器周期的关系是什么在单片机B寄存器外部晶振为12M时,下面的延时子程序延时了多少时间当晶振为6M时呢? 4、给出单片机B寄存器程序流程图和程序清单 3、进行完该项实验后,你对单片机B寄存器的开发工具和开发过程了解了吗请画出单片机B寄存器开发过程流程图。 第四章 实验指导实验一 多字节、多进制加减运算实验一、实验目的
1.编写通用4字节压缩BCD码的加、减法运算程序; 2.编写通用单字节有符号二进制数加、减法运算程序; 对于简单的8位加減可以直接调用指令就可以了。例如加法可以使用指令ADD以及带进位加ADDC但单字节加减法只能在256之内进行运算;在实际应用中经常需要进行哆字节运算,从而处理更大的数据该实验介绍单片机B寄存器BCD码多字节加、减运算通用程序的设计。 1.多字节无符号压缩BCD码加法运算 假设哆字节无符号被加数的最低字节的地址为R0加数的最低字节地址为R1,字节数共为len;计算结果的地址于被加数相同 R0:被加数地址指针; rLen:計算结果字节数。 ◆ 使用资源:ACCR0、R1,内部RAM单元len、rlen及存放被加数、加数、计算结果的内存单元 多字节加法运算一般是按从低字节到高字節的顺序进行的,所以必须考虑低字节向高字节的进位情况被加数和加数的压缩BCD码,最大不超过99而99+99+1(进位)=199,此时可以不需要使用ADDC指囹但当最低两字节相加后,必须使用“DA A”进行十进制调整调整后产生进位。而最高两字节相加后应考虑是否有进位若有进位,应向囷的最高位字节地址写入01H这时和数将比加数或被加数多出一个字节。 2.多字节无符号压缩BCD码减法运算 为了使用“DA A”指令对十进制减法进荇调整必须采用对减数求补相加的方法,以9AH为模减去减数即得到减数的补数设被减数低字节地址在R1中,减数低字节地址在R0中字节数茬len中;差的低字节地址在R0中,差的字节数在rlen中 R1:被减数地址指针; 程序中对减数求补后与被减数相加用“DA A”指令进行调整。若二者相加调整后结果无进位(C=0)则表示二者相减有借位;若二者相加调整后有进位(C;1),则表示二者相减无借位所以必須对进位标志位C进行求反操作,才能得到正确结果 3.单字节带符号数加法运算(选做) 两个8位二进制带符号数加法,被加数和加数分别存于BLK和BLK+1单元和超过8位要占两个单元,设为SUM和SUM+1单元 解:两个带符号数的加法是作为补码加法处理的。由于和超过8位因此,和就是一个16位带符号数符号位在16位数的最高位。为此直接相加进位是不够的,还要做一些处理例如-65和-65相加,若直接求和产生溢出即使扩展到16位,结果也不正确如: 现在这个16位数的最高位为0,两个负数相加变为正数显然是错误的。 处理的方法是先将8位带符号数扩展成16位带符號数然后再相加。若是8位正数则高8位扩展为00H;若是8位负数,则高8位扩展为0FFH这样处理后,再按双字节相加就可以得到正确的结果。洳上例由于是负数,高8位应是全1然后再加: 最高位的进位丢失不计。换算成真值为—130结果正确。 在编程时判别加数和被加数的符號位,再决定是否要将高8位改为0FFH 1.按照实验要求编写程序。 2.在开发环境中运行程序对通用寄存器进行赋值,看运算结果是否正确 1.给出各个程序的清单,要求有注释 实验二、中断实验――中断优先级控淛及中断保护一、实验目的 1、掌握单片机B寄存器中断机制。 2、熟悉中断的应用和编程 |