单片机实验指导书

合集下载

单片机实验指导书

单片机实验指导书

目录实验一系统认识实验 (2)实验二端口I/O输入输出实验 (14)实验三外部中断实验 (17)实验四定时器实验 (21)实验五串行口通信实验 (25)实验六串行通信的调试实验 (29)实验七数码管静态显示实验 (34)实验八数码管动态显示实验 (39)实验一系统认识实验一、实验目的1.学习Keil C51编译环境的使用;2.学习STC单片机的下载软件STC-ISP的使用;3.掌握51单片机输出端口的使用方法。

二、实验内容任选单片机的一组I/O端口,连接LED发光二极管,编写程序实现8个LED按二进制加1点亮。

三、接线方案单片机P10~P17/C51单片机接L0~L7/LED显示,如下图:图1-1实验线路四、实验原理51单片机有4个8位的并行I/O端口:P0、P1、P2、P3,在不扩展存储器、I/O端口,在不使用定时器、中断、串行口时,4个并行端口,32根口线均可用作输入或输出。

作为输出时,除P0口要加上拉电阻外,其余端口与一般的并行输出接口用法相同,但作为输入端口时,必须先向该端口写“1”。

例如P0接有一个输入设备,从P0口输入数据至累加器A中,程序为:MOV P0, #0FFHMOV A, P0若将P0.0位的数据传送至C中,程序为:SETB P0.0MOV C, P0.0五、实验步骤1、连接串行通信电缆和电源线;2、根据图1-1实验线路进行电路连接;3、将C51单片机核心板上的三个开关分别拨到“独立”、“运行”“单片机”;4、打开实验箱上的电源开关。

5、利用Keil C51创建实验程序,并进行编译生成后缀为.HEX的文件;6、利用STC-ISP软件将后缀为.HEX的文件下载到单片机ROM中;7、观察实验现象,并记录。

若实验现象有误请重复第5、6步。

六、参考程序ORG 0000H ;程序的开始LJMP MAIN ;转入主程序ORG 0200H ;主程序的开始MAIN: MOV P1,#00H ;P1口做准备M1: INC P1 ;P1口连接输出计数,LCALL DELAY ;转入延时子程序LJMP M1 ;循环DELAY: MOV R5,#255 ;延时子程序D1: MOV R6,#255DJNZ R6,$DJNZ R5,D1RETEND ;程序体结束七、思考题1、利用其他I/O口实现LED加1点亮功能;2、利用P1端口实现流水灯(左移或右移)功能;3、实现LED其他点亮功能。

单片机试验指导书

单片机试验指导书

单片机试验指导书一Keil UV2集成开发环境的使用实验目的:(1)熟悉Keil集成开发环境(2)掌握Keil集成开发环境的使用方法(3)学会在Keil集成开发环境下对MCS-51单片机汇编语言程序进行编辑、编译、链接、仿真调试与运行的步骤与方法。

实验设备和器件:PC一台,操作系统为WINDOWS XP,内存256M以上,硬盘10G以上KeilUV2集成开发环境,并将该软件安装到PC上正常工作实验内容:调试求和运算程序单片机片内RAM的30H-31H地址单元重,分别存放2个数据11H和22H,请计算两数相加的和,并将运算结果存放在片内RAM的32H地址单元中。

具体要求如下:(1)在Keil集成开发环境下,查询累加器A、寄存器B、堆栈指针SP、数据地址指针寄存器DPTR、程序计数器PC、通用寄存器R0-R7以及程序状态字寄存器PSW的内容。

(2)在Keil集成开发环境中,通过在存储器的地址窗口中使用命令d:0x30,来查询单片机片内RAM中30H-31H地址单元的内容。

(3)使用单步调试的方法来执行程序。

在调试过程中,配合观察寄存器和存储器窗口,检验程序的运行结果是否正确。

检查发现正确。

(4)连续执行程序,配合观察寄存器和存储器窗口,检验运行结果是否正确。

二MCS-51单片机汇编语言编程练习[实验目的](1)熟悉单片机汇编语言指令(2)掌握单片机汇编语言顺序结构、分支结构程序的编程方法(3)进一步掌握使用Keil UV2集成开发环境的使用方法[实验设备和器件]PC一台,操作系统为WINDOWS XP,内存256M以上,硬盘10G以上KeilUV2集成开发环境,并将该软件安装到PC上正常工作[实验步骤与方法]顺序结构的汇编语言程序设计已知单片机片内RAM的50H单元中存储的数据是27H,请将此数据读入到单片机片内RAM的60H单元中,然后再从片内RAM的60H单元中,将这个数据写入到单片机片外RAM的70H单元中。

单片机实验指导书

单片机实验指导书

单片机实验指导书一、实验介绍单片机是一种集成电路,能够完成各种控制和计算任务。

本实验指导书将引导您进行单片机实验,以帮助您了解单片机的基本原理和应用。

在本实验中,您将学习如何搭建实验环境、编写程序以及进行各种实验操作。

二、实验准备1. 实验设备和材料:- 单片机开发板- USB数据线- 适配器- 数字电路元件(如LED、电位器等)2. 软件准备:- 单片机开发软件(如Keil、IAR EWARM等)- 编程软件(如C语言编辑器)- USB驱动程序三、实验步骤1. 搭建实验环境:- 将USB数据线连接单片机开发板和计算机。

- 通过适配器给单片机开发板供电。

- 检查驱动程序是否正确安装。

2. 编写程序:- 打开单片机开发软件,并创建一个新的工程。

- 选择适当的单片机型号和编程语言。

- 编写程序代码,实现所需功能。

- 编译程序并下载到单片机开发板。

3. 实验操作:- 根据实验要求连接相应的电路元件。

- 调试程序,确保程序能正确运行。

- 运行实验并观察结果。

四、实验注意事项1. 请确保您具备基本的电路和编程知识。

2. 在操作实验设备和元件时,请小心谨慎,避免发生触电等事故。

3. 如果遇到问题,请及时咨询实验指导人员或相关专家。

五、实验示例以下是一个简单的实验示例,用于演示如何控制LED灯的亮度:实验电路连接:将一个LED灯连接至单片机开发板的一个GPIO口。

程序代码:#include <reg51.h>sbit LED = P1^0;void delay(unsigned int time){unsigned int i,j;for(i=0;i<time;i++)for(j=0;j<120;j++);}void main(){while(1){LED = 1; // 点亮LEDdelay(200); // 延时200msLED = 0; // 熄灭LEDdelay(200); // 延时200ms}}六、实验总结通过本次实验,我们学习了搭建实验环境、编写程序以及进行单片机实验操作的基本步骤和注意事项。

单片机部分实验指导书

单片机部分实验指导书

目录1、实验一多路开关实验 (3)2、实验二可编程增益放大器实验 (5)3、实验三A/D转换实验 (7)4、实验四D/A转换实验 (11)5、实验五静态显示实验 (13)6、实验六动态扫描显示实验 (15)7、实验七液晶显示实验 (18)8、实验八矩阵式键盘实验 (23)9、实验九开关量输入输出实验 (28)10、实验十24WC02串行E2PROM的读写实验 (30)11、实验十一PCF8563时钟/日历芯片的应用实验 (37)12、实验十二外部程序存储器EPROM的扩展实验 (45)13、实验十三 SRAM外部数据存储器扩展实验 (47)14、实验十四单片机与PC机的RS232串行通信实验 (50)15、实验十五单片机与PC机的MAX485串行通信实验 (52)16、实验十六打印机实验 (54)17、实验十七 USB通信实验 (57)18、实验十八网络控制器实验 (102)实验一多路开关实验一.实验目的1.掌握多路开关与单片机的接口方法。

了解按键识别的编程方法。

2.通过实验了解单片机如何进行多路开关实验。

二.实验内容利用线路板DSC-SCM01提供CPU处理器,利用线路板DCP-SCM02上的发光二级管显示及查询式键盘完成多路开关实验。

当对应的按键按下时,相应的发光二极管亮。

三.实验器材1.主控屏+5V电源2. DCP-SCM01 单片机电路3. DCP-SCM02 键盘及显示电路四.实验原理图五.实验说明该实验通过线路板DCP-SCM01及线路板DCP-SCM02完成,线路板DCP-SCM02上发光二极管的阳极接正5V电源,所以要使某个发光二极管亮,只要使对应的发光二极管的阴极为低电平即可。

六.实验步骤1.利用导线按表格中的对应关系将DCP-SCM01对应的端口与DCP-SCM02对应的端口连接起来即可DCP-SCM02 DCP-SCM01发光二极管显示单元的插座U3 P0查询式键盘区域的插座U4 P1EA脚接+5VD_SWITCH.C3.输入并编辑D_SWITCH.C文件,并且编译生成HEX文件。

单片机实验指导书

单片机实验指导书

单片机实验指导书一、硬件实验系统介绍(一)电路原理实验板的主要组成有STC-89C51,电源开关、复位电路,发光二极管、数码管、键盘、模/数转换电路(ADC0809电路),数/模转换电路(DAC0832电路)、12232F液晶显示电路,温度检测模块、DS1302时钟电路,I2C总线电路(AT24C02电路),串行接口(MAX232电路、MAX485电路),步进电机调速电路等组成。

详细的电路原理图见附件(二)各模块开关控制简表二、单片机实验板使用说明(一)程序下载1、下载软件为STC-ISP V3.X,建议使用V3.5版本。

2、程序下载前,建议将所有器件的开关置于关闭状态,尤其是MAX485的开关S7,必须关闭;RS232的开关S6必须打开。

3、开始下载程序前,关闭实验板的总电源,等待下载软件提示上电后,再打开实验板电源。

(二)程序运行1、将程序涉及到的元件开关打开,原则上关闭与程序无关的元件开关。

2、各元件的电源开关均靠近本元件。

(三)注意事项由于ADC0809采用了最简化设计,使用液晶模块12232F时,须将DAC0832和ADC0809的电源开关打开,选择开关S13,S14拨向ADC0809侧,同时,程序中将P1.1和P1.2清零。

2. LED显示可采用动态扫描或串行74LS164显示,采用一种显示方式时,须将另一种方式的电源关闭,以免发生冲突。

使用动态扫描显示时,拨码开关均拨向下方与地断开,由74LS14(反向驱动)控制位选;使用串行静态显示时,拨码开关拨向上方与地接通。

3.由于P2.5作了DS1302的片选控制,在电机调速模块应使其清零三、Keil软件使用简要说明1、建立工程文件:单击“工程”菜单中的“新工程”命令。

选择路径、输入项目名称,不需要扩展名。

在Select Device for Target窗口中,选择“Atmel”中的“89C**”系列。

2、工程对象选项设定:单击“工程”菜单中的“options for Target属性”命令。

单片机实验指导书

单片机实验指导书

单片机实验指导书实验一拆字程序实验一、实验目的:掌握汇编语言程序设计方法。

二、实验内容:把8000H地址的内容拆开,高位送8001H地址的低位,低位送8002H地址的低位,8001H、8002H地址的高位清0。

本程序通常把数据送显示缓冲区时使用。

三、实验器材:计算机1台。

四、实验步骤:1、按流程图编写程序,以下是通过计算机交叉汇编得到的LST文件清单,供参考。

2、文件编译连接、装载,用鼠标点击[项目/重建所有目标文件],系统自动进行编译,并弹出信息窗口,若有错误则重新修改再编译;若无错误,点击[调试/启动/停止调试]后进入调试状态。

3、设置观察窗口:(1)用鼠标点击[视图/存储器窗口],在地址栏中输入:[x:0x8000];(2)在8000H写入任意数据:在地址栏内选定任意数据,[如:0x008000:00 00 00 00……](注:初始数据均为“00”)。

右键点击一初始数据“00”,在出现的对话框中点击“修改位于X:0x008000的内存”,在新弹出的对话框:[输入字节于X:0x008000]内输入任意数据,确定即完成数据的写入。

(3)单步执行观察寄存器8000H-8002H的变化。

六、实验程序:(51ASM\A8051.asm);把指定字节的高低位拆开分别存放,多用于显示字程序ORG 0000HMOV DPTR,#8000H ;指定的字节MOVX A,@DPTRMOV B,A ;暂存SW AP A ;交换ANL A,#0FH ;屏蔽高位INC DPTRMOVX @DPTR,AINC DPTRMOV A,BANL A,#0FH ;指定字节的内容屏蔽高位MOVX @DPTR,ALOOP: SJMP LOOPEND ;结束汇编实验二拼字程序实验一、实验目的:1、进一步掌握汇编语言设计。

2、熟悉软件调试方法。

二、实验内容:把8000H、8001H两个字节的低位分别送入8002H的高位和低位。

本程序一般用于把显示缓冲区数据取出拼装成一个字节。

单片机实验指导书

单片机实验指导书

实验一数制转换实验一、实验目的:(1)、熟悉单片机实验系统板、稳压电源及示波器的使用方法。

(2)、培养程序编制及调试的方法。

(3)、输入自己编写的程序(机器码),并通过实验板和示波器观察程序运行结果。

二、实验要求:(1)、给出程序设计流程图。

(2)、设计数制转换实验程序。

(3)、记录单片机实验板晶体振荡器的波形图。

(4)、记录单片机实验板上电复位电路的波形图。

三、实验原理:以下是把16进制数转换为10进制数的参考程序清单及机器码表:测试程序:四、实验仪器:稳压电源一台HB-51教学实验系统一套五、实验步骤:1、HB-51教学实验系统简介:(1)、+5V电源,+12V电源,-12V电源(2)、CPU、程序存储器、数据存储器、晶体振荡器、手动复位、LED发光管、键盘、显示器(LED 数码管)。

(3)、显示器介绍该系统共有6个数码管,分为两组,左边4个为一组,右边2个为一组。

在大部分情况下,左边4个数码管作为地址显示器,右边2个数码管作为内容显示器。

(4)、键盘介绍0~F 为数字键,用来输入0~F的数字,并且系统默认十六进制输入MEM 为程序存储器内容检查/修改键REG 为寄存器/内部RAM内容检查/修改键LAST 用来向上跳一个地址单元NEXT 用来向下跳一个地址单元EXEC 为连续执行键SCAL 为单步调用键STEP 为单步执行键MON 为返回系统监控状态,相当于让系统回到刚刚上电时的状态。

也是其他功能键的前导按键2、HB-51教学实验系统与稳压电源的连接。

实验系统上的+5V电源与稳压电源正确相连,接好以后,给稳压电源上电。

此时,如果系统工作正常,会在显示器上显示“HB--51”。

如果显示内容不是“HB--51”,则说明系统上电复位过程不正常。

此时按一下红色的手动复位按钮,系统就应当正常工作了。

如果系统还是有问题,甚至,显示器什么都不显示,处于黑屏状态,则立刻关掉稳压电源,然后请实验室老师来解决问题。

单片机实验指导书

单片机实验指导书

实验注意事项1.实验前先不连仿真器,给实验箱通电,若实验箱上的八段数码显示器显示字母“P”,表示实验箱无故障。

2.必须断电插拔线。

3.程序存入c:\dice51\51asm\*.c,程序名必须以英文字母开头,扩展名为.c。

4.若实验出现故障,可用以下程序单步运行(按F7键实现单步运行)验证,实验一定时/计数实验一实验目的熟悉单片机内部定时/计数器的功能;掌握定时、计数程序的初始化编制方法。

二实验设备DICE—5203 K实验开发系统,计算机三实验内容(一)定时/计数器T0延时实验已知系统时钟频率fosc=12MHZ,用定时/计数器T0延时,编程使与P1.0口相连的发光二极管每隔1s发光状态改变,使与P1.1口相连的发光二极管每隔5s发光状态改变,循环不止。

(二)定时/计数器T1计数实验已知系统时钟频率fosc=12MHZ,用定时/计数器T1计数,编程使按键每闭合5次,与P1.0口相连的发光二极管发光状态改变(即T1每记录5个脉冲,P1.0取反一次)。

四、实验步骤(一)定时/计数器T0延时实验1、连接电源线和串行口数据线;2、用插针将P1.0孔与发光二极管L1孔相连,P1.1孔与发光二极管L2孔相连;3、打开DICE—5203 K实验开发系统的电源;4、启动计算机,打开桌面软件文件夹,选择MS51仿真开发系统图标双击,进入软件编程界面;5、编制程序,调试、运行;6、观察发光二极管状态。

(二)定时/计数器T1计数实验1.连接电源线和串行口数据线;2.用插针将P1.0孔与发光二极管L1孔相连,P3.5孔与单脉冲输出孔相连;3.打开DICE—5203 K实验开发系统的电源;4.启动计算机,打开桌面软件文件夹,选择MS51仿真开发系统图标双击,进入软件编程界面;5. 编制程序,调试、运行;6.反复扳动按键开关,观察发光二极管状态。

五.思考题:1.实验(一)中,如果用T1 延时,使与P1.0口相连的发光二极管每隔2s发光状态改变,程序将如何编制?2.实验(二)中,若使按键每闭合10次,与P1.1口相连的发光二极管发光状态改变,程序将如何编制?实验二定时、中断综合实验一、实验目的熟悉单片机定时、中断的功能;掌握定时、中断程序的初始化编制方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《单片机原理实验指导书》2013年03月单片机实验是学习单片机理论的重要实践环节。

其目的在于通过试验来验证和研究单片机理论,增强感性认识, 以促进认识的深化,培养学生科学的分析能力,使学生掌握单片机试验的操作方法和基本技能;培养学生严肃认真和实事求是的科学作风,锻炼科学实验的能力。

为了培养学生独立分析问题和解决问题的能力;培养学生的动手操作能力;为了更有效的完成每项实验,要求学生在实验前必须作充分预习。

除复习与实验有关的理论,还要认真研究实验指导书,了解实验目的、内容、弄清实验原理,掌握编程步骤、调试程序的方法。

本指导书是根据数控专业实验教学大纲的要求以及我校单片机实验室的现状编写的。

前言keil51软件使用简要说明---------------------------------------------------4实验一数据传送类指令实验----------------------------6实验二算术指令实验-----------------------------------9 实验三逻辑指令实验-----------------------------------------------------11 实验四控制转移和子程序调用实验-----------------------------------13 实验五典型程序设计-----------------------------------------------------14 实验六定时/计数器及中断实验---------------------------18keil51使用简要说明一、界面介绍(1)主要窗口1.编辑窗口2.工程窗口3.命令窗口4.输出窗口5.汇编代码显示窗口(2)菜单命令1.文件菜单2.编辑菜单3.视图菜单4.工程菜单5.调试菜单6.工具菜单7.外围器件菜单二、程序输入步骤1.新建项目,并选择要仿真的单片机型号,取名保存(默认文件类型为.uv2)。

2.新建源程序文件最好先取文件名,以.asm为后缀保存,再用汇编指令输入程序,输入完再保存一次。

3.在项目中添加刚才编好的源程序,并设置单片机的工作频率及选中生成.HEX 文件的选项。

4.编译源程序若输出窗口显示“0 Error(s) ,N Warning(s)”则表示通过汇编。

若提示有错误,则进入源程序修改,再保存,再编译,直到通过。

三、调试程序调试程序可采用全速运行、单步运行、断点运行。

1.全速运行(Run):程序从头到尾运行完,只能查看最终结果。

2.单步运行(Step into):一次只执行一条指令,可查看每条指令运行后的中间结果。

3.断点运行(Breakpoints):在程序中插入断点,按“全速运行”按钮,程序执行到断点处停下。

可查程序执行一段后的中间结果。

断点运行常用在子程序和延时程序的调试。

四、观察相关单元结果1.工作寄存器和特殊功能寄存器(在工程窗口)2.存储器(在存储窗口中)在存储窗口中可显示各种存储单元的内容。

通过在地址address后的编辑框中输入“字母:地址值”,按回车。

即可显示相应地址的内容。

其中:字母C 表示程序存储器单元字母D 表示片内数据存储器单元字母X 表示片外数据存储器单元地址值必须是十六进制数,以H结束。

3.并口(P0,P1,P2,P3)和串口在“peripherals(外围器件)”菜单下。

实验一数据传送类指令实验一、实验目的1.了解汇编程序的编写过程和调试过程。

2.掌握数据传送指令的使用和寻址方式的区别。

3.掌握不同传送指令与存储器的空间分布对应关系。

二、实验内容1.内部RAM的数据传送思考题将立即数48H送入内部RAM33H单元后,将其送到外部RAM 1000H单元,然后再将其读回送入内部RAM 50H单元。

编写程序上机调试,并指出33H、50H、1000H、A、DPTR各单元内容是多少?4.从ROM中取出数据分别给A赋不同的值(A的内容在0-7范围内变化),观察A和R1的变化。

思考题1.将立即数23H送入内部RAM30H单元,将立即数45H送入内部RAM40H单元,将立即数55H送入A,将A的内容与40H单元交换,结果放到R2,利用寄存器间接寻址的方法将A的内容与内部RAM30H地址内容交换并将其存储到寄存器R3中。

编写程序,观察程序执行过程。

2.将立即数23H送入R1,将立即数45H送入P1口,将立即数55H送入A,保持A的内容不变,将立即数03H输入到A并将A的内容送到P1口,恢复A、P1的内容后,将R1的结果送到A。

编写程序,观察程序执行过程中A、P1、R1的变化。

实验二算术指令实验一、实验目的1.了解算术指令的操作。

2.掌握加减法的使用,并上机调试观察运行结果。

3.了解乘除法指令的操作。

二、实验内容1.加减法实验1)将98H与DAH相加再与C8H相加计算其和。

和的低8位保存在R1,和的高82)将2384H减00FCH求其差。

差的低8位保存在R3,差的高8位保存在R4。

实验三逻辑指令实验一、实验目的1.了解如何运用逻辑运算指令进行数据循环移位、逻辑与、或、异或运算操作。

2.掌握逻辑运算程序的编写规则,上机调试并观察运行结果。

二、实验内容实验四控制转移和子程序调用实验一、实验目的1.了解如何利用控制转移指令和子程序调用指令进行程序转移。

2.掌握利用控制转移指令、子程序调用指令编制程序的方法。

二、实验内容实验五典型程序设计一、实验目的1.了解汇编伪指令与硬指令的区别。

2.掌握常用伪指令的应用。

3.掌握顺序程序、分支程序、循环程序和子程序的编写。

4.熟悉典型程序的设计。

二、实验内容1.多个单字节数累加把BLOCK单元开始存放的10个无符号数(单字节数)进行求和,并将结果存人SUM单元中。

(不考虑和大于255)源程序:ORG 0000HLJMP MAINORG 0030HLEN EQU 10SUM EQU 21HBLOCK EQU 22HMAIN: CLR AMOV R7, #LENMOV R0, #BLOCKLOOP: ADD A,@R0INC R0DJNZ R7,LOOPMOV SUM ,ASJMP $END2.多字节加法程序例三字节无符号数加法。

设一个加数存放在内部RAM的50H,51H,52H单元,另一个加数存放在内部RAM的53H, 54H, 55H单元,相加的结果存放在内部RAM的50H,51H,52H单元,进位存放在位寻址区的00H位中。

ORG 0000HLJMP MAINORG 0030HMAIN:MOV R0,#52H;一个加数的低字节地址MOV A,@R0;ADD A,@Rl;低字节相加MOV @R0,A;存低字节相加结果DEC R0;DEC Rl;MOV A,@R0;ADDC A, @Rl;中间字节带进位相加MOV @R0,A;存中间字节相加结果DEC R0;DEC Rl;MOV A, @R0;ADDC A,@R1;高字节带进位相加MOV @R0,A;存高字节相加结果MOV 00H,C;存进位SJMP $END思考:试用循环结构实现上述要求。

3.两个无符号数的比较设内部RAM40H和41H单元中有两个无符号数,要求找出其中的大数,并将其存入40H单元,小数存入41H单元。

源程序:ORG 0000HLJMP MAINORG 0030HMAIN: MOV A,40HCLR CSUBB A, 41HJNC WAITMOV A,40HXCH A,41HMOV 40H,AWAIT: SJMP $END4.统计字符串长度程序设字符串存放在内部RAM 21H开始的单元中,以“$”作为结束标志,现求该字AJMP MAINORG 0030HMAIN: CLR A;计数器清0MOV R0,#21H;R0为地址指针指向首地址LOOP: CJNE @R0,#24H,NEXT;取数与“$”比较SJMP COMP ;找到“$”结束NEXT: INC A;找不到“$”,继续INC R0SJMP LOOPCOMP: MOV 20H,A;存结果SJMP $END5.字符串传送将内部RAM中起始地址为data1的数串传送到外部RAM中起始地址为buffer的存储区域内,直到发现‘$’字符,停止传送。

源程序:ORG 0000HLJMP MAINORG 0030HDATA1 EQU 30HBUFFER EQU 1000HMAIN: MOV R0, #DATA1MOV DPTR ,#BUFFERLOOP1: MOV A,@R0CJNE A,#24H , LOOP2SJMP OVERLOOP2: MOVX @DPTR ,AINC R0INC DPTRSJMP LOOP1OVER: SJMP $END6. 查表程序编写程序,实现Z=X2+Y2。

设X,Y,Z分别存于内部RAM的20H, 21H, 22H三个单元中。

ORG 0000HX EQU 20HY EQU 21HZ EQU 22HSTART: MOV A,X;取XACALL SQR;调用查平方表求X2MOV R1,A;X2暂存于R1中MOV A,Y;取YACALL SQR;调用查平方表求Y2ADD A,Rl;X2+Y2存于A中MOV Z, A;结果存于SJMP $SQR: MOV DPTR,# TAB;子程序MOVC A, @A+DPTR;RETTAB: DB 0,1,4,9,16DB 25,36,49,64,81END7.流水灯程序用P1口连接的8个LED模拟霓虹灯的显示方式。

编程实现按照从P1.0到P1.7的顺序,依次点亮其连接的LED。

ORG 0000HLJMP STARTORG 0030HSTART: MOV R2, #08H ;设置循环次数MOV A, #0FEH ;从P1.0→P1.7使LED逐个亮过去点亮LEDNEXT: MOV P1,AACALL DELAY;调用延时RL A ;左移一位DJNZ R2, NEXT ;次数减1,不为零,继续点亮下一个LEDSJMP START ;反复点亮DELAY: MOV R7,#200;50ms延时子程序DEL1: MOV R6,#246NOPDEL2: DJNZ R6,DEL2DJNZ R7,DEL1RETEND实验六定时/计数器及中断实验一、实验内容1.了解定时/计数器的结构,掌握定时/计数器的初始化。

2.掌握单片机中断系统的设置。

3.掌握定时/计数器一般应用。

二、实验内容1.有一包装流水线,产品每计数24次时发出一个包装控制信号。

编写程序完成这一计数任务。

源程序:ORG 0000HLJMP MAIN ;跳到主程序ORG 000BH ;T0的中断入口地址LJMP DVT0 ;转向中断服务程序ORG 0030HMAIN: MOV TMOD,#06H ;置T0作计数器用,工作于方式2MOV TH0,#0E8H ;装入计数初值MOV TL0,#0E8HSETB ET0 ;T0开中断SETB EA ;CPU开中断SETB TR0 ;启动T0开始工作SJMP $ ;等待中断ORG 0050HDVT0: SETB P1.0 ;中断服务程序NOPNOPCLR P1.0RETI ;中断返回END2.利用定时/计数器T0的方式1,产生10ms的定时,并使P1.0引脚上输出周期为20ms的方波,采用中断方式,设系统的晶振频率为12MHZ。

相关文档
最新文档