1、ORG 0000H SJMP START ORG 0030H START:MOV 70H,#00H MOV 71H,#01H MOV 72H,#02H MOV 73H,#03H MOV 74H,#04H MOV 75H,#05H MOV 76H,#06H MOV 77H,#07H MOV 78H,#08H MOV 79H,#09HMOV 7AH,#0AH MOV 7BH,#0BH MOV 7CH,#0CH MOV 7DH,#0DH MOV 7EH,#0EH MOV 7FH,#0FH MOV R1,#10H MOV R0,#70H MOV DPTR,#2000H LOOP:MOV A,R0 MO
2、VX DPTR,A INC R0 INC DPTR DJNZ R1,LOOP END三、上机操作及调试步骤1、启动PC机,打开KEIL软件,软件设置为模拟调试状态。在所建的Project文件中添加Tran.ASM文件,打开Tran.ASM文件,阅读、分析、理解程序,编译程序进行调试。2、打开VIEW菜单中打开MEMORY WINDOW数据窗口,分别观察70H(在MEMORY#1中输入D:70H并在其中输入任意的值)、2000H(MEMORY#2窗口输入X:2000H)。运行程序,观察内外70H和2000H的相对应的数据区的数据是否一致。3、可单步执行程序,观察数据传送过程。四、实验报告1、说明
3、实验操作的基本步骤;2、为每一条汇编指令写出中文注释;3、记录下程序单步运行时,寄存器(R0、R1)、累加器(A)、程序状态字(PSW)、内部存储器(70H7FH单元)、外部存储器(2000H200FH单元)的数据变化。实验二 数据排序实验一、实验目的掌握排序程序的设计方法。二、实验内容本例程采用交换排序法将内部RAM 中的5059H 单元中的10个单字节无符号二进制数按从小到大的次序排列,并将这一列排序后的数据从小到大依次存贮到外部RAM 1000H开始处。三、实验步骤1)启动PC机,打开KEIL软件,软件设置为模拟调试状态。在所建的Project文件中添加Order.ASM文件,打开Ord
4、er.ASM文件,阅读、分析、理解程序,编译程序进行调试。2)在VIEW菜单中打开MEMORY WINDOW数据窗口,分别观察50H(在MEMORY#1中输入D:50H)、1000H(MEMORY#2窗口输入X:1000H)3)可在程序指令NOP 处设置断点,在第一个断点处可观察5059H 单元内容是否为10 个任意排列原始数据。4)在第二个断点处可观察每次排序的结果。5)可单步执行程序观察排序过程。四、实验参考程序JMP MAIN ORG 0100HMAIN: MOV R0,#50H MOV R0,#5FH MOV R0,#56H INC R0 MOV R0,#5AH MOV R0,#5EH
5、 MOV R0,#51H INC R0 MOV R0,#5BH MOV R0,#53H MOV R0,#58H MOV R0,#57H MOV R0,#55H ;将10 个随机数送入内部RAM 的5059H 单元 NOP ;可在此处设置断点 ACALL QUE ;调用排序子程序OUT: MOV R0,#50HMOV DPTR,#1000HMOV R7,#10 OUT1: MOV A,R0MOVX DPTR,AINC R0INC DPTRDJNZ R7,OUT1 HERE: AJMP HERE 可在此处设置断点,观察每次排序结果 QUE: CLR 00H ;清交换标志MOV R1,#50HMOV
6、 R6,#09HI3: MOV A,R6MOV R7,AMOV A,R1MOV R0,A MOV A,R0I2: INC R0 MOV R2,A SUBB A,R0 MOV A,R2 JC I1 SETB 00H XCH A,R0 I1: DJNZ R7,I2 JNB 00H,STOP MOV R1,A INC R1 DJNZ R6,I3 RET END 第2章 硬件实验项目实验一 I/O端口操作1、掌握I/O端口读写等基本汇编指令;2、掌握单片机最小系统硬件电路设计及仿真软件PROTEUS仿真、调试等基本操作方法。编写一段汇编程序,使与单片机IO口(具体IO口由自己的硬件电路决定)相连的发光
7、二极管D2-D9循环点亮,亮灭时间必须大于0.5秒。能做出花样的加分。三、实验步骤:1、参考下图,用PROTEUS完成单片机硬件电路设计图2.1 单片机硬件电路设计2、用keil软件完成发光二级管亮灭程序,用延时子程序设计一段时间延时,编译通过后生成16进制文件(.HEX),加载到PROTEUS中仿真验证。四、延时参考程序 :DE02S: MOV R5,#02 ;延时0.2秒DE1: MOV R6,#200DE2: MOV R7,#126DE3: DJNZ R7,DE3 DJNZ R6,DE2 DJNZ R5,DE1 RET实验二 外部中断实验1. 掌握外部中断技术的基本使用方法2掌握中断处理
8、程序的编写方法每按一次中断按钮(6/INT0)产生依次中断,并将中断累加次数用LED灯(D2-D9)予以显示。三、实验说明1)外部中断的初始化设置共有三项内容:中断总允许即EA=1,外部中断允许即EXi=1(i=0或1),中断方式设置。中断方式设置一般有两种方式:电平方式和脉冲方式,本实验选用后者,其前一次为高电平后一次为低电平时为有效中断请求。因此高电平状态和低电平状态至少维持一个周期,中断请求信号由引脚INT0(P3.2)和INT1(P3.3)引入,本实验由INT0(P3.2)引入。2)中断服务的关键:a、保护进入中断时的状态。堆栈有保护断点和保护现场的功能使用PUSH指令,在转中断服务程
9、序之前把单片机中有关寄存单元的内容保护起来。b、必须在中断服务程序中设定是否允许中断重入,即设置EX0位。c、用POP指令恢复中断时的现场。3)中断控制原理:中断控制是提供给用户使用的中断控制手段。实际上就是控制一些寄存器,51系列用于此目的的控制寄存器有四个:TCON 、IE 、SCON 及IP。4)中断响应的过程:首先中断采样然后中断查询最后中断响应。采样是中断处理的第一步,对于本实验的脉冲方式的中断请求,若在两个相邻周期采样先高电平后低电平则中断请求有效,IE0或IE1置“1”;否则继续为“0”。所谓查询就是由CPU测试TCON和SCON中各标志位的状态以确定有没有中断请求发生以及是那一
10、个中断请求。中断响应就是对中断请求的接受,是在中断查询之后进行的,当查询到有效的中断请求后就响应一次中断。实验三 定时中断1、熟悉单片机定时器工作原理;2、掌握定时器定时控制的编程方法。二、实验基本原理1、定时/计数器工作原理图2.2 定时/计数器原理图(1)定时时间的求取。例:设单片机晶振频率为12MHZ,定时时间为1s,求时间常数?定时器计数周期=12/fosc=1us,1s/1us=1000000,显然已经超出16位计数器的范围,只能采用软件定时和硬件定时相结合的办法。每次定时50ms,经过20次中断取反P2.3因此,计数初值=65536-50000=15536=3CB0H(2)定时/计
11、数器初始化三、实验内容:编写一段汇编程序,使单片机P2.3口输出一段时钟周期为2s的方波。要求采用T1中断方式,工作方式1。用PROTEUS软件完成仿真电路设计,并进行硬件下载验证。实验四 数码管显示实验学会数码管动态扫描显示方法二、实验要求设计一个0255计数器,计满后自动清0并重新计数;将计数结果用三个数码管显示三、设计思路1.255可用8位二进制数表示,故本设计可直接采用可以重装载的计数器T1模式二进行计数。然后对TL1的内容进行相应的二进制-十进制转换;2. 二进制-十进制转换:首先TL1的内容除以64H,所的商就是十进制的百位,然后用余数除以0AH,所得的商就是十进制数的十位,余数即
12、相应的十进制的个位。3.将相应的十进制数进行七段查表译码,并在数码管上进行动态扫描显示出来。 实验五RS232通信实验1.了解8051串行口的工作原理以及发送的方式。2.了解PC机通讯的基本要求。二、实验说明8051串行口经RS232电平转换后,与PC机串行口相连。PC机使用串口调试应用程序V2.2.exe,实现上位机与下位机的通讯。本实验使用查询法接收和发送资料。上位机发出指定字符,下位机收到后返回原字符。波特率设为4800。三、实验内容及步骤1.用串口连接线将PC机与单片机开发板连接好(市面上连接线有平行线和交叉线两种,选择时要依据单片机硬件电路进行选择)。2.在所建的Project文件中
13、添加“8051通信.ASM”,编译无误后,全速运行程序。2.打开串口调试V2.2.exe 应用程序,选择下列属性:(注意选择通信串口) 波特率4800 数据位8 奇偶校验无 停止位1 在V2.2.exe发送的字符/数据区输入一个字符/数据,点击手动发送或自动发送,接收区收到相同的字符/数据。四、实验参考程序: 汇编程序: ORG 0000H JMP START ORG 30HSTART: MOV SP,#60H MOV SCON,#01010000B ;串行方式1,8位异步,允许接收 MOV TMOD,#20H ;设定计数器1为模式2 ORL PCON,#10000000B ;波特率加倍 MO
14、V TH1,#0F4H ;设定波特率为4800 MOV TL1,#0F4H ;如晶振为11.0592MHz,则初值为#0F4H SETB TR1 ;计数器1开始计时AGAIN: JNB RI,$ ;等待接收 CLR RI ;清接收标志 MOV A,SBUF ;接收数据缓冲 NOP MOV SBUF,A ;送发送数据 JNB TI,$ ;等待发送完成 CLR TI ;清发送标志 SJMP AGAINC51程序:#Include Char sw;VOID UARTINIT(VOID) TMOD=0X20; TL1=0XF4; TH1=0XF4; SCON=0X50; PCON=0X80;Main(
15、) UARTINIT(); TR1=1; while(1) while(RI=0); RI=0; sw=SBUF; SBUF =sw; while(TI=0); TI=0; 第3章 课程设计设计任务:编写十字路口交通灯控制程序,模拟十字路口交通灯的工作流程。功能要求:1 东西南北方向都有红绿黄灯交替显示,交替顺序为绿黄红,黄灯时间固定3秒2 红绿黄灯的建议分配方案 D2 :东西红灯 D3 :东西黄灯 D4 :东西绿灯 D7 :南北红灯 D8 :南北黄灯 D9 :南北绿灯3时间分配方案:东西方向绿灯时间40秒;南北方向绿灯时间20秒4 数码管显示分配方案 左边两个数码管:显示南北方向剩余时间 右
16、边两个数码管:显示东西方向剩余时间延时参考程序:DE10S: MOV R5,#100 ;延时10秒 JMP DE1DE3S: MOV R5,#30 ;延时3秒第4章Vision开发环境简介Vision4 IDE是德国Keil公司开发的基于Windows平台的单片机集成开发环境,它包含一个高效的编译器、项目管理器和一个MAKE工具。其中Keil C51是一种专门为单片机设计的高效率C语言编译器,符合ANSI标准,生成的程序代码运行速度极高,所需要的存储器空间极小,完全可以与汇编语言媲美。Vision4的界面如图4.1所示,它有一般软件的典型风格,如菜单栏和快捷工具栏,另外还可以打开工程窗口和对应
17、的文件编辑窗口、运行信息显示窗口、存储器信息显示窗口及调试信息显示窗口等。图4.1 Vision4界面1建立项目工程 Vision4包括一个项目管理器,它可以使80X51应用系统的设计变得简单。要创建一个应用,需要按下列步骤进行操作:(1)启动Vision4,新建一个项目文件并从器件库中选择一个器件。单击ProjectNew Project选项,在弹出的窗口中输入准备建立的工程文件名,其后缀名系统会自动添加为*.uvproj。同时系统会要求选择单片机芯片型号。Keil C51几乎支持所有的51核的单片机,设计者可以根据使用的单片机型号来选择。(2)用文本编辑器编写源文件。源文件可以包括汇编语言
18、源文件、C语言源文件、库文件等。不过不同类型的源文件的扩展名不同,C语言程序文件扩展名为*.c,汇编文件扩展名为*.asm。(3)添加源文件。右击Source Group1,在弹出的快捷菜单中选择Add File to Group Source Group1选项,就可将多个源文件添加到项目工程中。2配置项目工程 工程的配置是编译成目标程序的关键,所以在编译前一定要对工程进行正确的配置。右击Target1,在弹出的菜单中选择Options for TargetTarget 1选项,弹出Options for TargetTarget 1对话框,如图4.2所示。该对话框有8个选项卡,为了让读者能尽
19、快使用软件,下面就3个主要选项进行介绍。(1)Target选项:外围硬件设置Xtal(MHz):设置单片机工作的频率,默认是24.0MHz。图4.2 编译设置界面Use On-chip ROM(0x0-0xFFF):表示使用片上的Flash ROM,如果单片机的引脚接高电平,则选中这个选项,表示使用内部ROM;如果引脚接低电平,则不选中该项。Off-chip Code memory:表示片外ROM的开始地址和大小,最多可以外接3块ROM。如果没有外接程序存储器,那么不需要输入任何数据。Off-chip Xdata memory:外接Xdata数据存储器的起始地址和大小。Code Banking
20、:如果代码超过64KB,那么就要使用Code Banking技术,以支持更多的程序空间,最大可以有2MB的程序代码。Memory Model:有Small、Compact和Large三种存储类型。一般使用Small来存储变量,此时单片机优先将变量存储在内部RAM里,如果内部RAM空间不够,才会存在外部RAM中。(2)Output选项:输出文件格式设置Select Folder for Objects:单击该按钮可以选择编译后目标文件的存储目录,如果不设置,就存储在项目文件的目录里。Name of Executable:设置生成的目标文件的名字,默认情况下和项目的名字一样。Create Exec
21、utable:如果要生成OMF及HEX文件,一般选中Debug Information和Browse Information。选中这两项,才有调试所需的详细信息,比如要调试C语言程序,如果不选中,调试时将无法看到高级语言写的程序。Create HEX File:编译后要生成HEX执行代码文件,一定要选中该选项。Create Library:选中该项时将生成lib库文件。一般应用是不需要的。(3)Debug选项:调试方式设置这里有两类仿真形式可选:Use Simulator和Use Keil Monitor-51 Driver,前一种是纯软件仿真,后一种是带有Monitor-51目标仿真器的仿真
22、。Load Application at Start:选择该项Keil会自动装载程序代码。Go till main:调试C语言程序时可以选择该项,PC会自动运行到main程序处。(1)建立文件夹:LED。(2)启动Vision4,选择ProjectNew Project选项,新建一个项目文件,并从器件库中选择一个单片机芯片,如Atmel公司的AT89C51。(3)选择FileNew选项建立一个汇编或C文件,如果已经有源程序文件,可以忽略这一步。(4)右击Source Group1,在弹出的快捷菜单中选择Add File to GroupSource Group1选项,将源文件添加到项目中。(5
23、)在Project菜单的下拉选项中,单击Options for TargetTarget 1选项,完成以下设置: 单片机工作频率设置为11.0592MHz; Output标签下的Create HEX File前小框中要打钩; 在Debug标签下选择Use Simulator(软件模拟)。(7)选择ProjectRebuild all Target file选项完成汇编。(8)在Debug菜单选项中单击Start/Stop Debug Session进入调试状态。(9)在Debug菜单下选择Step(单步)运行方式,可以实时观察程序运行状态;如果选择Run,则程序进入到连续运行方式。第5章 Pr
24、oteus7仿真软件介绍安装完Proteus后,运行ISIS7 Professional,进入仿真软件的主界面,如图5.1所示。主界面分为菜单栏,工具栏,模型选择元器件栏,原理图编辑窗口,预览窗口,元器件列表区,方向工具栏,仿真工具条栏。下面简单介绍其各部分的功能。图3.1 Proteus的用户界面1原理图编辑窗口原理图编辑窗口用来绘制电路原理图,与其他WINDOWS应用软件不同,这个窗口是没有滚动条的,可以在左上角的预览窗口来改变原理图的可视范围。2预览窗口预览窗口可以显示两个内容:在元器件列表中选择一个元器件时,它会显示该元器件的预览图;当鼠标焦点落在原理图编辑窗口时,会显示整张原理图的缩
25、略图,并会显示一个绿色的方框,绿色方框里面的内容就是当前原理图窗口中显示的内容,因此可以用鼠标单击来改变绿色方框的位置,从而改变原理图的可视范围。3模型选择元器件栏模型选择元器件栏分为主要模型、配件、2D图形3个部分,各部分的功能如下:(1)主要模型部分由上向下功能如下。:用于即时编辑元器件参数(先单击该图标再单击要修改的元件)。选择元器件。放置连接点。放置标签(相当于网络标号)。放置文本。用于绘制总线。用于放置子电路。(2)配件部分由上向下功能如下。终端接口,有Vcc、地、输出、输入等接口。器件引脚,用于绘制各种引脚。仿真图表,用于各种分析,如Noise Analysis。录音机。信号发生器。电压探针,使用仿真图表时用到。电流探针,使用仿真图表时用到。虚拟仪表:示波器等。(3)2D图形部分由上向下功能如下。画各种直线。画各种方框。.画各种圆。画各种圆弧。画各种多边形。画各种文本。画符号。画原点等。4元器件列表区元器件列表区用于选择元器件、终端接口、信号发生器等。例如,单击元器件选择按钮P会打开挑选元器件对话框,选择了一个元器件后(单击了OK按钮后),该元器件会在元器件列表中显示,以后要用到该元器件时,只需要在元器件列表区中选择即可。5方向工具栏方向工具栏有旋
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1