单片机实验参考资料 (2)
- 格式:doc
- 大小:228.00 KB
- 文档页数:16
实验一系统认识实验一、实验目的1.掌握SICElab-G2200实验/仿真系统的结构与使用方法;2.熟悉单片机系统开发软件keilC51。
二、实验设备1.G2200 实验平台 1 台 2.仿真器/ 仿真板 1 台3.连线若干根 4.计算机 1 台三、实验内容P1端口接发光二极管,加1点亮。
四、连线方案:实验箱内部已连好五、实验步骤1.仿真器与实验平台的连接将Lab51板的DC34芯插座与G6W仿真器上的DC34插座用扁平电缆连接起来。
2.仿真器与计算机的连接用随机配带的串口通讯电缆,将仿真器与计算机连接起来,串口1、串口2均可。
特别注意:在仿真器与计算机连接串口电缆时,两台机器必须都断电,否则易损坏计算机和仿真器。
3.实验连线按连线方案,用随机配带的实验连线插入孔后,轻轻转动一下锁紧插头,保证良好接触。
拆线时,应先回转一下,不要硬拨,以免损坏线路板。
不管是拆线还是插线,都应在断电的情况下进行。
实验中“连线方案”的粗线即为需用户动手接连的线。
4.检查接线是否有误,确信没有接错后,接上电源,打开电源开关。
5.在计算机上打开keil软件建立新程序ORG 0MOV P1,#0 ;熄灭发光二极管LOOP: INC P1CALL DelaySJMP LOOPDelay: MOV R2,#3 ;延时程序MOV R1,#0MOV R0,#0DLP: DJNZ R0,DLPDJNZ R1,DLPDJNZ R2,DLPRETEND6.建立新的项目7.设置项目8.编译程序选择菜单[项目 | 编译]功能或按编译快捷图标或按F9键,编译项目。
在编译过程中,如果有错可以在信息窗口中显示出来。
双击错误信息,可以在源程序中定位所在行。
纠正错误后,再次编译直到没有错误。
在编译之前,软件会自动将项目和程序存盘。
在编译没有错误后,就可以执行、调试程序了。
9.执行、调试程序六、实验结果七、实验总结实验二查表程序一、实验目的1.学习Keil uvision3单片机仿真软件的使用方法。
单片机参考资料单片机(Microcontroller,简称MCU)在现代电子技术领域中使用广泛,其作用是控制电子设备的运行。
由于单片机种类众多且功能各异,学习和使用单片机时,准备一些参考资料是非常重要的。
本文将介绍一些单片机参考资料,帮助您更好地学习和使用单片机。
一、数据手册数据手册是学习和使用单片机时最重要的参考资料之一。
数据手册详细介绍了单片机的内部架构、寄存器、引脚定义、指令集、时钟配置等重要信息。
学习者可以通过数据手册了解单片机的基本原理和工作方式,从而更好地理解和应用单片机。
对于常见的单片机型号,如PIC、STM32、Arduino等,官方都提供了相应的数据手册,学习者可以在官方网站上下载。
二、开发板资料开发板是学习和实践单片机的重要工具之一。
对于常见的单片机型号,市场上有许多开发板可供选择。
购买开发板时,通常会附带一份用户手册,其中包含了开发板的基本介绍、硬件连接方式、编程环境配置等内容。
此外,开发板的厂商还会提供一些示例代码和应用案例,帮助学习者快速上手并实践单片机的各种功能。
因此,学习者在选购开发板时可以参考开发板资料,并根据自己的需求选择适合的开发板。
三、编程手册学习单片机需要熟练掌握编程语言和相关开发工具。
单片机的编程语言有汇编语言和高级语言两种。
对于汇编语言,可以通过学习相应的汇编语言手册,了解其语法、指令集和程序设计方法。
对于高级语言,如C语言和Python等,学习者可以参考相应的编程手册,学习语法和相关函数的使用方法。
编程手册会详细介绍语言的基本概念和常用语句,帮助学习者快速上手并编写单片机程序。
四、网络资源互联网是获取单片机参考资料的重要途径。
学习者可以通过搜索引擎或者技术论坛等方式,获取大量的单片机相关资源。
例如,GitHub是一个开源代码托管平台,其中有许多优秀的单片机项目和代码可以供学习者参考。
此外,还有一些针对单片机的在线学习课程和教程,可以帮助学习者系统学习单片机的基础知识和应用技巧。
《实验一 应用系统开发过程演示》实验报告参考一.实验目的1.了解单片机应用系统的开发过程,获得感性认识。
2.了解开发箱/开发板的使用方法3.了解仿真软件的基本功能和使用方法。
二.实验环境(一) EL 型微机教学实验系统:1. 设备::北京精议达盛科技有限公司EL-MUT3多CPU 单片机/微机实验实训系统2. 软件:北京精议达盛科技有限公司8051调试软件4.0版 二.实验电路(一) EL 型微机教学实验系统实验电路(二) 仿真软件开发调试环境: 1.英国 Labcenter electronics 公司的Proteus EDA 工具软件, 2. 美国Keil 公司的µVision 集成开发环境 (二) 仿真软件实验电路:三. 操作步骤:(一)EL 型微机教学实验系统操作步骤1. 连线:P1.0~P1.7接LED1~LED82. 新建汇编语言源文件3. 另存为D:\J08X\SY1.ASM4. F3编译生成目标文件,F5进入调试:工具栏上“R ”打开寄存器窗,“H ”打开反汇编窗口F8,单步执行,观察相关寄存器窗口中有关寄存器中数据的变化。
四. 源程序(括号中为EL 型微机教学实验系统中的程序)ORG 0000H (ORG 4000H ) SJMP MAIN (LJMP MAIN) ORG 0040 H (ORG 4100H) MAIN: MOV A,#0FEH LOOP: MOV P2,A (MOV P1,A ) LCALL D_1s RL A AJMP LOOP ;以下为延时子程序 D_Is: MOV R6,#100 ;1s D10ms: MOV R5,#40 :10ms DL: MOV R4,#123 N0P DJNZ R4,$ DJNZ R5,DL DJNZ R6,D10ms RET END(二) 仿真软件开发调试环境: ◆Proteus 工具软件下, 1.新建设计 ①选取元件 A T89C51,RES,LED-RED ②在工作区放置元件,地线,电源 电阻RES 阻值200Ω,模式DIGITAL ③连线 2. 源程序设计,生成目标文件代码 “Source →Add/RemoveFiles ”新建源程序文件D:\J08X\L Y1.ASM “Source → SY1.ASM ”在文本编辑器编写源程序 通过“Source →BuildAll ”编译源程序,生成目标程序。
单片机实验报告1. 实验背景单片机(Microcontroller Unit,简称MCU)是一种集成了微处理器核心、内存、计时器、I/O接口等功能的集成电路芯片。
它具有体积小巧、功耗低、性能高等优点,在嵌入式系统中应用广泛。
本实验旨在通过对单片机的实际操作,加深对单片机原理及应用的理解。
2. 实验目的本次实验的主要目的是:- 掌握单片机的基础知识,包括单片机的结构、工作原理等;- 学习单片机的编程方法,初步掌握单片机的编程技巧;- 进行简单的单片机应用实验,提高对实际应用的理解。
3. 实验设备与材料实验所需的设备和材料包括:- 单片机开发板;- 计算机;- 连接线等。
4. 实验过程与结果在本实验中,我们使用XXX型单片机开发板作为实验平台,通过连接计算机进行编程。
具体的实验过程如下:4.1 硬件连接将单片机开发板与计算机通过连接线连接,并确保连接正常。
接下来,将我们设计好的电路按照要求连接到开发板的相应引脚上。
4.2 编程使用XXX软件对单片机进行编程。
根据实验要求,编写相应的程序代码,并将代码下载到单片机开发板中。
验证代码是否编译通过,并将运行结果显示在数码管、液晶显示屏等外设上。
4.3 实验结果实验结果根据不同的实验要求而定,可以是对某个外设的控制、信号的采集、数据的处理等。
在实验过程中需记录实验结果,并进行分析。
5. 实验总结通过本次实验,我对单片机的基本原理及应用有了更深入的了解。
掌握了单片机的硬件连接方法和编程技巧,并成功完成了实验要求。
实验结果表明,单片机在各个领域都有广泛的应用前景,对于嵌入式系统的开发起着重要作用。
当然,本次实验只是单片机应用的初步探索,还有很多更深入的研究和应用值得去探索。
在今后的学习与实践中,我将进一步深化对单片机的理解,并将其灵活应用于各种项目中。
6. 参考文献[参考文献1][参考文献2][参考文献3](文章内容仅供参考,具体实验过程和结果以实际情况为准。
)。
一、实验名称单片机原理及应用实验二、实验目的1. 熟悉单片机的基本结构和原理,了解单片机在电子系统中的应用。
2. 掌握单片机编程语言C的基本语法和编程技巧。
3. 学会使用单片机进行简单控制,实现LED流水灯、数码管显示等基本功能。
4. 提高动手实践能力,培养团队合作精神。
三、实验仪器与设备1. 单片机实验箱:包括单片机、电源、按键、LED灯、数码管等。
2. 电脑:用于编程和仿真。
3. 编程软件:Keil uVision5或IAR EWARM等。
四、实验原理单片机是一种集成度高、功能强大的微控制器,具有运算速度快、功耗低、体积小等优点。
本实验以51单片机为例,介绍其基本原理和编程方法。
51单片机主要由以下几个部分组成:1. 中央处理器(CPU):负责执行指令,控制整个单片机系统。
2. 存储器:包括程序存储器(ROM)和数据存储器(RAM),用于存储程序和数据。
3. 输入/输出接口:用于与外部设备进行数据交换。
4. 定时器/计数器:用于实现定时和计数功能。
5. 中断系统:用于处理中断事件。
本实验主要涉及以下几个方面:1. 单片机基本结构和工作原理。
2. 单片机编程语言C的基本语法和编程技巧。
3. 单片机I/O口的使用和驱动能力。
4. 定时器/计数器的使用和编程。
5. 中断系统的使用和编程。
五、实验内容1. 实验一:LED流水灯(1)实验目的:掌握单片机I/O口的使用,实现LED流水灯效果。
(2)实验原理:通过单片机I/O口输出高低电平,控制LED灯的亮灭,实现流水灯效果。
(3)实验步骤:① 连接实验箱电路,将LED灯连接到单片机的P1口。
② 编写程序,设置P1口为输出模式,通过循环改变P1口输出电平,实现LED流水灯效果。
③在电脑上编译、下载程序,观察实验效果。
2. 实验二:数码管显示(1)实验目的:掌握单片机I/O口的使用,实现数码管显示功能。
(2)实验原理:通过单片机I/O口输出高低电平,控制数码管显示数字。
实验报告实验项目名称:P1口实验同组人:实验时间:实验室:K2-407单片机室指导教师:胡蔷一、实验目的:(l)学习P1口的使用方法; 熟悉Proteus软件电路设计和Keil软件程序调试方法。
(2)学习软件延时程序的编写。
重点:延时程序,P1口结构二、实验顶备知识:(l)Pl口为准双向口,每一位都可独立地定义为输入或输出,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入。
(2)Proteus软件应用,Keil软件程序调试应用。
三、实验内容:㈠模拟开关灯的Proteus仿真及C语言程序设计1、设计要求:监视开关K1(接在P3.0端口上),用发光二级管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。
2、仿真电路原理图(预习内容)元器件选取:①AT89C52:单片机;②RES:电阻;③CRYSTAL:晶振;④CAP、CAP-ELEC:电容、电解电容;⑤LED-GREEN:绿色发光二级管;⑥SWITCH:开关。
模拟开关灯的电路原理图3、程序设计内容①开关状态的检测过程单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号,而输入的信号只有高电平和低电平两种,当拨动开关K1拨上去,即输入高电平,相当开关断开,当拨动开关K1拨下去,即输入低电平,相当开关闭合。
单片机可以采用if(K1= =1)或者if(K1= =0)指令来完成对开关状态的检测。
②输出控制当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二级管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,发光二级管L1亮。
(预习内容)模拟开关灯的程序流程图4、程序清单(预习内容)㈡广告灯(利用查表方式)的Protues仿真及程序设计1、设计要求:利用查表的方法,使端口P1作单一灯的变化;左移2次,右移2次,闪烁2次(延时的时间0.2 s)。
2、仿真电路原理图(预习内容)元器件选取:①AT89C52:单片机;②RES:电阻;③CRYSTAL:晶振;④CAP、CAP-ELEC:电容、电解电容;⑤LED-GREEN:绿色发光二级管。
一、引言随着科技的发展,单片机技术已经成为电子技术领域的重要分支,广泛应用于工业控制、智能家居、通信等领域。
为了更好地学习和掌握单片机技术,本文整理了单片机实训报告的相关参考文献,以供读者参考。
二、单片机基础理论参考书籍1. 李广弟,单片机基础[M],北京航空航天出版社,2001年。
本书详细介绍了单片机的基本原理、硬件结构、指令系统、程序设计等基础知识,适合初学者学习。
2. 王东峰,单片机C语言应用100例[M],电子工业出版社,2009年。
本书通过100个实例,深入浅出地讲解了单片机C语言编程技巧,适合有一定基础的读者学习。
3. 陈海宴,51单片机原理及应用[M],北京航空航天大学出版社,2010年。
本书以51单片机为例,详细介绍了单片机的原理、应用及编程技巧,适合有一定基础的读者学习。
4. 刘守义,单片机技术基础[M],西安电子科技大学出版社,2007年。
本书全面介绍了单片机技术的基础知识,包括硬件结构、指令系统、程序设计等,适合初学者学习。
5. 钟富昭,8051单片机典型模块设计与应用[M],人民邮电出版社,2007年。
本书以8051单片机为例,介绍了单片机在实际应用中的典型模块设计及编程技巧,适合有一定基础的读者学习。
三、单片机开发环境参考书籍1. 郭天祥,51单片机C语言教程[M],清华大学出版社,2013年。
本书详细介绍了Keil uVision4集成开发环境的使用方法,以及51单片机C语言编程技巧,适合初学者学习。
2. 李朝青,单片机原理及接口技术[M],电子工业出版社,2012年。
本书以51单片机为例,介绍了单片机的原理、接口技术及开发方法,适合有一定基础的读者学习。
3. 马忠梅,单片机的C语言应用和设计[M],机械工业出版社,2015年。
本书以单片机的C语言编程为核心,介绍了单片机在实际应用中的设计方法,适合有一定基础的读者学习。
四、单片机应用案例参考书籍1. 王明,单片机应用系统设计[M],北京航空航天大学出版社,2010年。
单片机原理实验范文
单片机(Microcontroller)是一种集成了中央处理器(CPU)、内存
和输入输出设备的微型计算机系统。
它广泛应用于各种电子设备中,例如
家电、汽车及工业控制系统等。
单片机原理实验旨在通过实际操控单片机
芯片并编写程序,从而深入理解单片机的工作原理。
实验所需材料:
1.单片机开发板(如STC89C52)
B转串口模块
3.杜邦线
4.电源适配器
5.电阻
6.LED
7.杜邦线
实验步骤:
1.连接电路
将单片机开发板与USB转串口模块通过杜邦线连接,确保稳定的供电。
通过杜邦线将LED的阳极连接到单片机的I/O口(如P0口),将LED的
阴极通过一个适当的电阻连接到接地。
这样LED的正极就可以通过单片机
控制,从而实现灯亮/灭的控制。
2.编写程序
4.运行实验
启动开发板电源适配器,观察LED的亮灭情况。
通过修改程序中的端口状态,可以控制LED的亮灭时间和频率。
通过观察LED的变化,可以验证单片机程序的正确性和运行效果。
通过以上实验,我们可以深入了解单片机的工作原理及如何利用编程进行控制。
此外,还可以通过其他实验进一步学习包括串口通信、模拟信号输入输出、定时器控制等内容。
在实验中加入更多的传感器和设备,可以探索更多单片机应用领域。
单片机原理及应用实验指导书(第2版)闫晓东河北联合大学信息工程学院2014年4月目录实验一P1口实验 (1)实验二软件BCD ASCII码转换 (3)实验三定时/计数器实验 (4)实验四外部中断实验 (6)实验五串行口通讯实验 (7)实验六键盘显示器实验 (8)实验七外部存储器实验 (8)实验八A/D、D/A转换实验 (9)实验九蜂鸣器实验(选做) (9)实验十液晶显示器实验(选做) (9)实验十一时钟日历芯片实验(选做) (9)实验十二温度传感器实验(选做) (9)实验一 P1口实验(1)一、实验题目1. P1 口做输出口,接8只发光二极管,编写程序,使发光二极管循环点亮。
二、实验目的1. 学习P1口作为输出口的使用方法。
2. 学习延时子程序的编写和使用。
三、有关说明P1口为准双向口,P1口的每一位都能独立地定义为输出线或输入线。
作为输入的口线,必须向锁存器相位写入1,该位才能作为输入。
再看一下延时程序的实现,现常用的有两种方法:一是用定时器中断来实现,二是用指令循环来实现。
在系统时间允许的情况下,可以采用后一种方法。
以12M 晶振为例,一个机器周期为12/12=1uS ,现要写一个延时0.1S 的程序,可大致写出如下:MOV R7,#200DE1:MOV R6,#X DE2:DJNZ R6,DE2 DJNZ R7,DE1上面MOV ,DJNZ 指令均需要两个机器周期,所以每执行一条指令需2uS ,现求出X 值:(X*2+2+1)*200+1=100000,求出X=248。
四、实验电路L1VCC六、实验要求1.画出程序流程图。
2.编写程序实现实验要求,并观察实验结果。
实验一 P1口实验(2)一、实验题目P1口做输入口,接8位拨码开关,以P0口做输出口,编写程序读取开关状态,在发光二极管上显示出来。
二、实验目的学习P1口作为输入口的使用方法。
三、有关说明 P1口为准双向口,P1口的每一位都能独立地定义为输出线或输入线。
实验一系统认识实验一、实验目的1.掌握SICElab-G2200实验/仿真系统的结构与使用方法;2.熟悉单片机系统开发软件keilC51。
二、实验设备1.G2200 实验平台 1 台 2.仿真器/ 仿真板 1 台3.连线若干根 4.计算机 1 台三、实验内容P1端口接发光二极管,加1点亮。
四、连线方案:实验箱内部已连好五、实验步骤1.仿真器与实验平台的连接将Lab51板的DC34芯插座与G6W仿真器上的DC34插座用扁平电缆连接起来。
2.仿真器与计算机的连接用随机配带的串口通讯电缆,将仿真器与计算机连接起来,串口1、串口2均可。
特别注意:在仿真器与计算机连接串口电缆时,两台机器必须都断电,否则易损坏计算机和仿真器。
3.实验连线按连线方案,用随机配带的实验连线插入孔后,轻轻转动一下锁紧插头,保证良好接触。
拆线时,应先回转一下,不要硬拨,以免损坏线路板。
不管是拆线还是插线,都应在断电的情况下进行。
实验中“连线方案”的粗线即为需用户动手接连的线。
4.检查接线是否有误,确信没有接错后,接上电源,打开电源开关。
5.在计算机上打开keil软件建立新程序ORG 0MOV P1,#0 ;熄灭发光二极管LOOP: INC P1CALL DelaySJMP LOOPDelay: MOV R2,#3 ;延时程序MOV R1,#0MOV R0,#0DLP: DJNZ R0,DLPDJNZ R1,DLPDJNZ R2,DLPRETEND6.建立新的项目7.设置项目8.编译程序选择菜单[项目 | 编译]功能或按编译快捷图标或按F9键,编译项目。
在编译过程中,如果有错可以在信息窗口中显示出来。
双击错误信息,可以在源程序中定位所在行。
纠正错误后,再次编译直到没有错误。
在编译之前,软件会自动将项目和程序存盘。
在编译没有错误后,就可以执行、调试程序了。
9.执行、调试程序六、实验结果七、实验总结实验二查表程序一、实验目的1.学习Keil uvision3单片机仿真软件的使用方法。
2.熟悉单片机实验操作步骤。
3.熟练掌握MOVC A,@A+DPTR和MOVC A,@A+PC两条查表指令的功能及应用原理。
通过实验进一步加深理解两条查表指令的异同。
4.掌握采用两条查表指令编写的实验程序的调试方法,验证程序的正确性。
二、实验设备PC机一台,keil uvision3软件三、实验内容采用查表法求1~20的平方数。
入口:自变量在累加器A中。
出口:平方高位数在R7中,低位在R6中。
分别采用MOVC A,@A+DPTR和MOVC A,@A+PC查表指令编写实验程序,并进行调试和验证;四、实验原理本次实验采用查表指令MOVC A , @A+DPTR实现上述字数据查表。
因为最大的自变量20的平方数是400,为了查表后验证方便,自变量1~20对应的平方数用伪指令DW定义,并且定义为压缩BCD码。
查表指令MOVC A , @A+DPTR只能进行字节查表,要查找一个字数据,必须进行两次查表。
利用指令MOVC A , @A+DPTR查表,表可以存放在任何位置,查表前只需要将表的首地址用MOV指令送DPTR、累加器A中必须是要查找数据在表中的偏移地址即可,查找到的数据存放在累加器A中。
编程时,首先将表的首地址送DPTR,累加器A中的自变量减1形成要查找数据在表中的序号,序号乘2得到表内偏移地址,将该偏移地址暂存到寄存器R6中,用MOVC A , @A+DPTR指令进行第一次查表,得到该自变量的平方高8位在累加器A中,并与R6进行交换,这样查找的平方高位数存放在寄存器R6中,累加器A中是第一次查表时的表内偏移地址;累加器A再加1,得到要查找的平方低位数在表内的偏移地址,再用MOVC A , @A+DPTR指令进行第二次查表,累加器A得到该自变量的平方低8位,送寄存器R7。
据此实验原理编写的实验源程序清单见附页。
ORG 0000HMOV A,#5 ;把要计算的自变量送入AMOV DPTR,#TABDEC A ;减一对齐RL A ;A乘以2MOV B,A ;保护AMOVC A,@A+DPTR ;高位MOV R6,AMOV A,B ;恢复AINC AMOVC A,@A+DPTR ;低位MOV R7,ASJMP $ORG 1000HTAB: DW 1,4,9,16,25,36,49,64,81,100DW 121,144,169,196,225,256,289,324,400END五、实验步骤1.在盘下为工程建立文件夹ZL1;2.新建工程项目文件ZL1.uv2,保存在文件夹ZL1中,并为工程选择目标器件为AT89S523.编辑源程序,建立源文件ZL1.ASM,保存在文件夹ZL1中;4.将源文件ZL1.ASM添加到工程项目组中;5.设置调试环境,选择调试模式为软件模拟;6.加载运行程序,根据预习设计的数据记录表格记录实验数据;7.实验数据经过实验指导教师检查正确后,实验结束。
实验数据记录见附页。
六、实验结果分析记录的实验数据经过计数器验证,全部正确,说明源程序设计正确、实验步骤正确。
七、心得体会1.第一次使用Keil uvision3单片机仿真软件,学习了它的使用方法和操作技巧,掌握了它的常用功能;2.通过实验,进一步掌握了MOVC A,@A+DPTR和MOVC A,@A+PC两条查表指令的功能。
理解了两条查表指令的异同。
3.通过实验,学会了查表指令程序的调试方法;4.。
(自己的体会)5.。
(自己的体会)。
(自己的体会)。
实验二多分支转移实验一、实验目的1.学习Keil uvision3单片机仿真软件的使用方法。
熟悉单片机实验操作步骤。
2. 熟练掌握MOVC A,@A+DPTR和MOVC A,@A+PC两条查表指令的功能及应用原理。
通过实验进一步加深理解两条查表指令的异同。
3.掌握采用两条查表指令编写的实验程序的调试方法,验证程序的正确性。
二、实验设备PC机一台,keil uvision3软件三、实验内容根据R2的值(1-4)实现四分支,分别实现对R7内容乘2,乘10,加10,除2操作,结果存于R6,R7中。
四、实验原理据此实验原理编写的实验源程序清单见附页。
源程序:ORG 0000HLJMP MAIN1ORG 1000HMAIN1: MOV DPTR,#TAB1MOV A,R2DEC ARL AJMP @A+DPTRTAB1: AJMP PROG1AJMP PROG2AJMP PROG3AJMP PROG4PROG1: MOV A,R7CLR CRLC AMOV R7,ACLR AADDC A,#0MOV R6,ASJMP DONEPROG2: MOV A,R7MOV B,#10MUL ABMOV R7,AMOV R6,BSJMP DONEPROG3: MOV A,R7ADD A,#10MOV R7,ACLR AADDC A,#0MOV R6,ASJMP DONEPROG4: MOV A,R7MOV B,#2DIV ABMOV R7,AMOV R6,BDONE: SJMP $END实验三数据排序实验一、实验目的1.掌握冒泡法排序的原理及编程技巧;2.熟练掌握双重循环程序的设计原理及方法;3.进一步掌握无符号数排序的编程及调试方法。
一、实验设备PC机一台,keil uvision3软件三、实验内容在起始地址为60H的数据存储区中,连续存放有10个无符号数,编程将其由大到小排序。
四、实验原理冒泡法是一种相邻数互换的排序方法,其过程类似于水中气泡上浮,故称冒泡法。
执行时从前向后进行相邻数比较,如果数据的大小次序与要求顺序不符时将相邻两个数互换,否则为正序不互换。
降序排序时通过这种方法,使较大的数向前移动,较小的数向后移动。
如此从前向后进行一次冒泡就会把最小数置于最后,再进行一次冒泡,就会把次小数排在倒数第二的位置,以此类推进行排序。
判断排序是否完成的方法是看冒泡中是否有互换发生,如果有数据互换,说明排序还没有完成,否则就表示已完成排序。
一般使用设置互换标志的方法,以其状态表示在一次冒泡中是否有数据互换来控制排序的结束。
据此实验原理编写的实验源程序清单见附页。
(注意程序中变动的内容)ORG 0000HLJMP PAIXU2ORG 1000HPAIXU2: MOV R7,#10 ;长度送R7LOOP1: DEC R7MOV A,R7MOV R6,ACLR F0 ;标志位为0MOV R0,#60H;从60H的地址开始存放数据LOOP2: MOV A,@R0 ;要确保A中数据是小数INC R0MOV R2,A;保护CLR CSUBB A,@R0 两数进行比较MOV A,R2;恢复JNC NEXT 第一个数大于第二个数跳转XCH A,@R0;交换DEC R0 ;A中原来存放是小数,经过交换后变为大数,必须把它放在该放的位置上,因为指针此时指的是后面一个单元的数据,所以必须减一。
MOV @R0,A INC R0SETB F0 ;标志位为1 NEXT: DJNZ R7,LOOP2 MOV A,R6 MOV R7,AJB F0,LOOP1 ;一次循环中有交换继续 DONE: SJMP $ ;无交换退出 END 五、实验步骤实验数据记录见附页 六、实验结果分析 七、心得体会实验四、外部中断控制实验一、实验目的5. 熟悉SICELab-G2200单片机实验系统的结构和实验方法。
6. 熟练掌握Keil uvision3单片机仿真软件的硬件仿真操作方法和步骤。
7. 学习和掌握外部中断源控制程序的编程和调试方法。
8. 学习和掌握验证中断优先级的实验设计步骤和技巧。
9. 通过实验验证外部中断源之间的中断优先级关系及其正确性。
二、实验设备PC 机一台,SICELab-G2200单片机实验系统一套 三、实验内容51单片机的外部中断0与脉冲单元的PUSH1连接,外部中断1与脉冲单元的PUSH2连接。
当响应外部中断0时,LED 指示灯D7D6点亮并顺次向右移动7次;当响应外部中断1时,LED 指示灯D0点亮并顺次向左移动8次。
编程设计外部中断的混合控制,并验证其中断优先级关系。
四、实验原理51单片机有5个中断源,这5个中断源之间的硬件优先权是固定的。
每个中断源可以设置高、低两个中断优先级。
通过改变中断源的优先级可以设置中断源之间的响应顺序。
其中的两个外部中断源,分别是外部中断0 0INT 和外部中断1 1INT ,通过单片机的P3.2引脚和P3.3引脚输入中断请求信号。
0INT 的硬件优先权比1INT 的高,当0INT 和1INT 同时发出中断请求时,先响应0INT 的中断请求,后响应1INT 的中断请求;为了使1INT 的中断请求先得到响应或能够打断0INT 的中断处理,实验中又重新设置1INT 的中断优先级为高,即PX1=1,0INT 的中断优先级为低,即PX0=0。