版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验一 Keil2的使用实验目的:1、 学会使用Keil2的基本操作。2、 学会编写80C51的顺序程序。3、 学会用Keil2如何调试观察数据在程序执行时的变化。实验仪器:P4计算机,Keil2软件实验原理:1、Keil 工程文件的建立、设置与目标文件的获得单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU 可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工 汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于 MCS-51 单片机的汇编 软件有早期的 A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级 语
2、言开发,单片机的开发软件也在不断发展,Keil 软件是目前最流行开发 MCS-51 系列单片 机的软件,这从近年来各仿真机厂商纷纷宣布全面支持 Keil 即可看出。Keil 提供了包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行 Keil 软件需要 Pentium 或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP 等操作系统。掌握这一软件的使用对于使用 51 系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎
3、就是你的不二之选(目前在国内你只能买到该软件、 而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便 易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。我们将通过一些实例来学习 Keil 软件的使用,在这一部份我们将学习如何输入源程序,建立工程、对工程进行详细的设置,以及如何将源程序变为目标代码。图1所示电路图使用89C51 单片机作为主芯片,这种单片机性属于MCS-51系列,其内部有4K的FLASH ROM,可以反复擦写,非常适于做实验。89C51的P1引脚上接8个发光二极管,P3.2P3.4引脚上接4个按钮开关,我们的第一个任务是让接在 P1 引脚上的发光
4、二极管依次循环点亮。图 1 简单的键盘、显示板一、Keil 工程的建立首先启动 Keil 软件的集成开发环境,这里假设读者已正确安装了该软件,可以从桌面 上直接双击 uVision 的图标以启动该软件。uVison 启动后,程序窗口的左边有一个工程管理窗口,该窗口有3个标签,分别是Files、Regs、和 Books,这三个标签页分别显示当前项目的文件结构、CPU 的寄存器及部份特殊功能寄存器的值(调试时才出现)和所选 CPU 的附加说明文件,如果是第一次启动 Keil, 那么这三个标签页全是空的。1、源文件的建立使用菜单“File-New ”或者点击工具栏的新建文件按 钮,即可在项目窗口的右
5、侧打开一个新的文本编缉窗口, 在该窗口中输入以下汇编语言源程序,例 1: ORG 0000HMOV A,#0FEHMAIN:MOV P1,ARLALCALLDELAY AJMP MAINDELAY: MOV R7,#255D1: MOV R6,#255DJNZ R6,$DJNZR7,D1RETEND保存该文件,注意必须加上扩展名(汇编语言源程序一般用 asm 或 a51 为扩展名),这里假定将文件保存为 exam1.asm。需要说明的是,源文件就是一般的文本文件,不一定使用 Keil 软件编写,可以使用任意 文本编缉器编写,而且,Keil 的编缉器对汉字的支持不好,建议使用 UltraEdit
6、 之类的编缉 软件进行源程序的输入。2、建立工程文件在项目开发中,并不是仅有一个源程序就行了,还要为这个项目选择 CPU(Keil 支持数 百种 CPU,而这些 CPU 的特性并不完全相同),确定编译、汇编、连接的参数,指定调试 的方式,有一些项目还会有多个文件组成等,为管理和使用方便,Keil 使用工程(Project) 这一概念,将这些参数设置和所需的所有文件都加在一个工程中,只能对工程而不能对单一 的源程序进行编译(汇编)和连接等操作,下面我们就一步一步地来建立工程。2、Keil 的调试命令、在线汇编与断点设置前面我们学习了如何建立工程、汇编、连接工程,并获得目标代码,但是做到这一步仅仅
7、代表你的源程序没有语法错误,至于源程序中存在着的其它错误,必须通过调试才能发现并解决,事实上,除了极简单的程序以外,绝大部份的程序都要通过反复调试才能得到正确的结果,因此,调试是软件开发中重要的一个环节,这一讲将介绍常用的调试命令、利用在线汇编、各种设置断点进行程序调试的方法,并通过实例介绍这些方法的使用。一、常用调试命令在对工程成功地进行汇编、连接以后,按 Ctrl+F5 或者使用菜单 Debug-Start/Stop Debug Session 即可进入调试状态,Keil 内建了一个仿真 CPU 用来模拟执行程序,该仿真CPU功能强大,可以在没有硬件和仿真机的情况下进行程序的调试,下面将要
8、学的就是该模拟调试功能。不过在学习之前必须明确,模拟毕竟只是模拟,与真实的硬件执行程序肯定还是有区别的,其中最明显的就是时序,软件模拟是不可能和真实的硬件具有相同的时序的,具体的表现就是程序执行的速度和各人使用的计算机有关,计算机性能越好,运行速度越快。进入调试状态后,界面与编缉状态相比有明显的变化,Debug 菜单项中原来不能用的命令现在已可以使用了,工具栏会多出一个用于运行和调试的工具条,如图1所示,Debug 菜 单上的大部份命令可以在此找到对应的快捷按钮,从左到右依次是复位、运行、暂停、单步、 过程单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗 口、观察窗
9、口、代码作用范围分析、1串行窗口、内存窗口、性能分析、工具按钮等命令。下面我们通过一个简单例子看一看并行端口的外围设备对话框的使用。例 4:MOVA,#0FEHLOOP:MOVP1,ARLACALLDELAY ;延时 100 毫秒JMPLOOP其中延时100毫秒的子程序请自行编写。编译、连接进入调试后,点击Peripherals-I/O-Ports-Port 1 打开,如图1所示,全速运行,可以看到代表各位的勾在不断变化(如果看不到变化, 请点击 View-Periodic Window Updata),这样可以形象地 看出程序执行的结果。注:如果你看到的变化极快,甚至看不太清楚,那么说明你的
10、计算机性能好,模拟执行的速度快,你可以试着将加长延时程序的时间以放慢速度。模拟运行速度与实际 运行的速度无法相同是软件模拟的一个固有弱点。实验内容:1将实验原理中给出的例1按实验原理所述进行调试。2观察例1运行时P1口的变化。3编写程序完成第5章第6题,并调试察看结果是否对。实验报告要求:1 写出观察P1口变化情况。2 画出第5章第6题的程序框图。3 写出第5章第6题的程序清单。实验二 程序设计1实验目的:4、 熟悉Keil2的基本操作。5、 学会编写80C51的分支结构程序。6、 熟悉用Keil2如何调试观察数据在程序执行时的变化。实验仪器:P4计算机,Keil2软件实验内容及要求: 1 X
11、01、 用多分支结构设计程序1实现函数Y = 0 X=0 -1 X02、编写程序2,把累加器A中的数看作是十进制数,并将百、十、个位数分别存放在内部RAM的50H、51H、52H单元中,并判断它是几位十进制数把位数存放入53H单元中。实验报告:1、 画出两程序框图。2、 附两程序清单。实验2.1org 0000hmov 30h,#-2mov a,30hjnz next1mov 40h,#0sjmp endpnext1: jnb acc.7,next2mov 40h,#-1sjmp endpnext2: mov 40h,#1endp:sjmp $end实验2.2org 0000hmov a,#-
12、123jnb acc.7,nextmov r0,amov a,#0clr csubb a,r0 sjmp nextnext:mov b,#10div abmov 52h,bmov b,#10div abmov 51h,bmov 50h,a jz next1mov 53h,#3 sjmp endpnext1:mov a,51hjz next2 mov 53h,#2sjmp endpnext2: mov 53h,#1endp:sjmp $End实验三 程序设计2实验目的:7、 熟悉Keil2的基本操作。8、 学会编写80C51的循环结构程序。9、 学会编写80C51的子程序。实验仪器:P4计算机,
13、Keil2软件实验内容及要求: 1、设有10个无符号数,连续存放在以200H为首地址的存储区中,试编程统计奇数和偶数的个数。 2、在以200H为首地址的ROM存储区中,存放着10个用ASCII码表示的十六进制数,试编程将它们转换成BCD码,并以压缩BCD码(即一个单元存放二位BCD码)的形式存放在片外RAM 3000H开始的单元中。(用子程序做ASCII到BCD的转化)实验报告:3、 画出两程序框图。4、 附两程序清单。org 0000h mov 30h,#30hmov 31h,#00hmov r4,#00hmov r5,#10loop:mov dptr,#tabmov a,r4movc a,
14、a+dptracall ASCTOBCDmov dph,30hmov dpl,31hmovx dptr,ainc r4inc 31hdjnz r5,loopsjmp $ASCTOBCD:clr cmov b,amov a,#39hsubb a,bjc atofmov a,bsubb a,#30hsjmp funretatof:mov a,bclr csubb a,#37hmov b,#10div abmov r2,#10hmov a,badd a,r2funret:ret org 200htab:db 31h,32h,33h,34h,35h,36h,37h,38h,39h,41h end 实验
15、四 P1口实验一、实验目的:1.学习P1口的使用方法。2.学习延时子程序的编写和使用。3.学习P1口既做输入又作为输出的使用方法。二、实验设备:微机、Keil2、Proteus7.5三、实验内容:1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。2. P1口既做输入又作为输出,编写程序,使发光二极管以不同方式点亮。四、实验原理:P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。80C51中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它成为一个I/O输入
16、。可以用第二个实验做一下实验。先按要求编好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1做输入口,会有什么结果。在第二个实验中应利用JMP A+DPTR,实现转移。该方法的优点是设计简单,转移表短,但转移表大小长度必须小于256字节。再来看一下延时程序的实现。现常用的有两种方法,一是用定时器中断来实现,二是用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。本实验系统晶振要求为6.144MHZ,则一个机器周期为126.144us即10.512us。现要写一个延时0.1s的程序,可大致写出如下: MOV R7,#X (1) DEL1:MOV R6,#200 (2) DEL2:D
17、JNZ R6,DEL2 (3) DJNZ R7,DEL1 (4)请自行求出X值。五、实验步骤:1设计电路在P1.0P1.7接发光二极管L1L8,编写程序使L1到L8依次点亮。每个灯点亮延时0.3秒。2、设计电路开关K1接P1.0;K2接P1.1;4个发光二极管(L1L4)接P1.2P1.5。编写程序,实现如下功能。汽车转向灯功能: (1)K1接高电平K2接低电平时,(L3、L4)灭,(L1、L2)以一定频率闪烁,即左转向; (2)K2接高电平K1接低电平时,(L1、L2)灭,(L3、L4)以一定频率闪烁;即右转向; (3)K1、K2同时接低电平时,发光二极管全灭; (4)K1、K2同时接高电平
18、时,发光二极管全亮。 六、实验报告要求:1在实验报告中请将实验中所设计的实验电路图附上。2在实验报告中请将实验中所编写的实验程序的程序框图及源代码附上。实验五 有急救车的交通灯控制实验一、实验目的:1、学习外部中断技术的基本使用方法。2、学习中断处理程序的编程方法。3、学习模拟交通灯控制的实现方法。二、实验设备: 微机、KEIL2、Proteus 7.5三、实验内容:在完成交通灯亮灭规律的基础上增加允许急救车优先通过的要求。当有急救车到达时,两个方向上的红灯亮,以便让急救车通过,假定急救车通过路口的时间为5秒,急救车通过后,交通灯恢复中断前的状态。本实验以单脉冲(下降延有效)为中断申请,表示有
19、急救车通过。四、实验原理:1交通灯的燃灭规律:要完成本实验,首先必须了解交通路灯的亮灭规律。本实验需要用到12个发光二极管,即红、黄、绿各4个。不妨将L1、L2(红)、L3、L4(黄)、L5、L6(绿)做为东西方向的指示灯,将L7、L8(红)、L9、L10(黄)、L11、L12(绿)做为南北方向的指示灯。而交通灯的亮灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后(约10秒),东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后(约3秒),东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。
20、闪烁若干次后,再切换到东西路口方向,重复上述过程。2中断处理 本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到交通灯中断前的状态。要保护的地方,除了累加器ACC、标志寄存器PSW外,还要注意:一是主程序中的延时程序和中断处理程序中的延时程序最好不要混用,最好主程序延时用R5、R6、R7,中断延时用R2、R3 、R4。第二,主程序中每执行一步经P1的端口输出数据的操作时,应先将所输出的数据保存到一个单元中。因为进入中断程序后也要执行往P1端口输出数据的操作,中断返回时如果没有恢复中断前P1端口锁存器的数据,则显示往往出错,回不到中断前的状态。五、实验
21、步骤:1设计电路:P1接发光二极管L1L12,单脉冲输出端接INT0。2编写程序实现有急救车的交通灯控制。七、实验报告要求:org 0000hljmp mainorg 0003hljmp zdfwmain: setb ex0 setb it0 setb et0 setb ea mov p1,#0f6hstart:mov a,#0f3h mov p1,a lcall lp1 mov r3,#5lp3: mov a,#0f5h mov r4,#2lp2: mov p1,a lcall lp inc a inc a djnz r4,lp2 djnz r3,lp3 mov p1,#0deh lcall
22、 lp1 mov r3,#5lp5: mov a,#0eeh mov r4,#2lp4: mov p1,a lcall lp add a,#10h djnz r4,lp4 djnz r3,lp5sjmp startlp: mov r0,#204loop5:mov r1,#250loop4:nop djnz r1,loop4 djnz r0,loop5retlp1: mov r0,#50loop3:mov r1,#100loop2:mov r2,#200loop1:nop nop djnz r2,loop1 djnz r1,loop2 djnz r0,loop3retzdfw:mov 40h,p
23、1push accmov p1,#0f6h mov r7,#100loop8:mov r6,#250loop7:mov r5,#25loop6:nop nop djnz r5,loop6 djnz r6,loop7 djnz r7,loop8pop accmov p1,40hretiEnd1实验六 定时/计数器循环彩灯一、实验目的: 1学习80C51内部计数器的使用和编程方法。 2进一步掌握中断处理程序的编写方法。二、实验设备: 微机、KEIL2、Proteus 7.5三、实验原理: 1定时常数的确定 定时器/计数器的输入脉冲周期与机器周期一样, 为振荡频率的1/12。本实验中时钟频率为6.0
24、 MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.1秒产生一次中断,CPU响应中断后将R0中计数值减一,令R0=05H,即可实现0.5秒延时。 时间常数可按下述方法确定: 机器周期=12晶振频率=12/(6106)=2us 设计数初值为X,则(216-X)210-6=0.1,可求得X=15535 化为十六进制则X=3CAFH,故初始值为TH1=3CH,TL1=AFH 2初始化程序 包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送入定时器中。由于只有定时器中断,IP便不必设置。 3设计中断服务程
25、序和主程序 中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。主程序则用来控制发光二极管按要求顺序燃灭。四、实验内容 由80C51内部定时器1按方式1工作,即作为16位定时器使用,每0.1秒钟T1溢出中断一次。P1口的P1.0P1.7分别接发光二极管的L1L8。要求编写程序模拟一循环彩灯。彩灯变化花样可自行设计。要求给出的变化花样为:L1、L2、L8依依点亮;L1、L2、L8依依熄灭;L1、L2、L8交差亮8次。L1、L2、L8全亮、全灭8次。各时间间隔为0.3秒。让发光二极管按以上规律循环显示下去。五、实验步骤:1电路设计: P1.0P1.7分别接发光
26、二极管L1L8即可。2编写程序实现所要求的功能。六、实验报告1在实验报告中请将实验中所设计电路图、编写的实验程序及程序框图附上。在实验报告中请将实验中所设计电路图、编写的实验程序及程序框图附上。org 0000hOrg 0000hmov p1,#0f6hstart:mov a,#0f3h mov p1,a lcall lp1 mov r3,#5lp3: mov a,#0f5h mov r4,#1lp2: mov p1,a lcall lp inc a inc a djnz r4,lp2 djnz r3,lp3 mov p1,#0deh lcall lp1 mov r3,#5lp5: mov a
27、,#0eeh mov r4,#1lp4: mov p1,a lcall lp add a,#10h djnz r4,lp4 djnz r3,lp5lp: mov r0,#204loop5:mov r1,#250loop4:nop djnz r1,loop4 djnz r0,loop5retlp1: mov r0,#250loop3:mov r1,#250loop2:mov r2,#250loop1:nop nop djnz r2,loop1 djnz r1,loop2 djnz r0,loop3retsjmp startorg 0003hpush p1push amov p1,0f6h mov
28、 r7,#100loop8:mov r6,#250loop7:mov r5,#250loop6:nop nop djnz r5,loop6 djnz r6,loop7 djnz r7,loop8pop apop p1retiend不确定org 0000hljmp mainorg 0003hljmp zdfwmain: setb ex0 setb it0 setb et0 setb ea mov p1,#0f6hstart:mov a,#0f3h mov p1,a lcall lp1 mov r3,#5lp3: mov a,#0f5h mov r4,#2lp2: mov p1,a lcall l
29、p inc a inc a djnz r4,lp2 djnz r3,lp3 mov p1,#0deh lcall lp1 mov r3,#5lp5: mov a,#0eeh mov r4,#2lp4: mov p1,a lcall lp add a,#10h djnz r4,lp4 djnz r3,lp5sjmp startlp: mov r0,#204loop5:mov r1,#250loop4:nop djnz r1,loop4 djnz r0,loop5retlp1: mov r0,#50loop3:mov r1,#100loop2:mov r2,#200loop1:nop nop dj
30、nz r2,loop1 djnz r1,loop2 djnz r0,loop3retzdfw:mov 40h,p1push accmov p1,#0f6h mov r7,#100loop8:mov r6,#250loop7:mov r5,#25loop6:nop nop djnz r5,loop6 djnz r6,loop7 djnz r7,loop8pop accmov p1,40hretiendorg 0000hmov p1,#0f6hstart:mov a,#0f3h mov p1,a lcall lp1 mov r3,#5lp3: mov a,#0f5h mov r4,#2lp2: mov p1,a lcall lp inc a inc a djnz r4,lp2 djnz r3,lp3 mov p1,#0deh lcall lp1 mov r3,#5lp5: mov a,#0eeh mov r4,#2lp4: mov p1,a lcall lp add a,#10h djnz r4,lp4 djnz r3,lp5sjmp startlp: mov r0,#204loop5:mov r1,#250loop4:nop djnz r1,loop4 djnz r0,loop5retlp1: mov r0,#50loop3:mov
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年物业与业主社区养老服务体系合同3篇
- 二零二五版高速公路监控系统集成采购与安装合同2篇
- 2025版定制化铁艺工程劳务分包服务合同3篇
- 安徽省高三上学期校联考化学试卷及答案(含答案解析)
- 二零二五年度木地板产品回收与再利用合同3篇
- 动漫产业法律法规与版权保护考核试卷
- 城市规划与城市能源结构调整考核试卷
- 塑料加工过程中的物料管理与优化考核试卷
- 二零二五版养老设施建设项目合伙承包合同样本3篇
- 2025年度某某酒店电梯设施维护保养合同2篇
- 劳务协议范本模板
- 2025大巴车租车合同范文
- 老年上消化道出血急诊诊疗专家共识2024
- 人教版(2024)数学七年级上册期末测试卷(含答案)
- 2024年国家保密培训
- 砖厂承包合同签订转让合同
- 思政课国内外研究现状分析
- 皮肤感染的护理诊断与护理措施
- 2023年公务员多省联考《申论》题(广西B卷)
- EPC总承包项目中的质量管理体系
- 高中物理考试成绩分析报告
评论
0/150
提交评论