51单片机实验案例2018.3
- 格式:docx
- 大小:1.74 MB
- 文档页数:31
单片机实验实验一:开发环境的应用(1)将数据存储器的40H-4FH的内容复制成00H-0FH,并将40H-4FH 的内容整体复制到外部数据存储器的1050H-105FH.(2)P1口接八只二极管,使二极管逐个循环点亮ORG 0000HAJMP STARTORG 0100HSTART:MOV A,#00HMOV R0,#40HLOOP:MOV @R0,AINC AINC R0CJNE A,#10H,LOOPSECOND:MOV DPTR,#1050HMOV R1,#40HCOPY:MOV A,@R1MOVX @DPTR,AINC DPTRINC R1CJNE R1,#50H,COPYSJMP $END实验二:外部中断(1)用单脉冲信号申请中断,在中断服务程序中对输出信号进行翻转(可通过P1.0接一二极管观察)ORG 0000HLJMP STARTORG 0003HLJMP INTORG 0100HSTART:SETB EX0SETB PX0SETB IT0SETB EASJMP $INT:CPL P1.0RETIEND(2)用单脉冲信号申请中断,要求对中断进行累加计数,并将计数结果显示在二极管上ORG 0000HLJMP STARTORG 0003HLJMP INTORG 0100HSTART:MOV A,#00HMOV P1,ASETB EX0SETB PX0SETB IT0SETB EASJMP $INT:MOV P1,AINC ARETIEND实验三:定时器实验(1)用定时器1的方式1定时,P1.0节发光二极管,使二极管每秒闪烁五次ORG 0000HLJMP MAINORG 001BHLJMP INTORG 0100HMAIN:MOV TMOD,#10HMOV TH1,#3CHMOV TL1,#0B0H ;50ms × 2 = 100msMOV R2,#2SETB EASETB ET1SETB TR1SJMP $INT:DJNZ R2,NEXTCPL P1.0MOV R2,#2NEXT:MOV TH1,#3CHMOV TL1,#0B0HSETB TR1RETIEND(2)用定时器1的方式2计数,T1引脚接单脉冲,用P1口接二极管显示计数。
51单片机p1口转弯灯实验实验报告实验 P1口转弯灯实验一、实验内容P1.0 接开关5V,右转弯灯闪亮,P1.1接开关5V时左转弯灯闪亮,P1.0,P1.1同时接5V或接地时,转弯灯均不闪亮。
二、实验步骤P1.0 接K1,P1.1接K2,P1.4,P1.7接L1、L4、L7、L10,连续运行本程序,应看到转弯灯正确闪亮,在用单步方式调试本程序时需修改延时子程序,(例可把延时程序第一个字节改成返回指令22H),以便观察。
三、实验原理图, 实验程序框图:, 实验接线图:四(实验程序清单ORG 0000HLJMP PX00ORG 0C30HPX00: MOV P1,#0FFH ;初始化PX03: MOV A,P1MOV B,AANL A,#03HCJNE A,#01H,PX01 ;满足只是P1.0为高条件? JB 00H,PX04 ;闪烁标志位CLR P1.4CLR P1.5 ;开右灯SETB P1.6SETB P1.7 ;关左灯MOV R2,#20HLCALL DELY ;延时SETB 00H ;置标志位LJMP PX03 ;继续查找状态PX04: SETB P1.4SETB P1.5SETB P1.6 ;关灯SETB P1.7MOV R2,#20HLCALL DELY ;延时CLR 00H ;清标志位AJMP PX03 ;继续查找状态PX01: CJNE A,#02H,PX02 ;满足只是P1.1为高条件吗? JB 01H,PX05 ;判标志位SETB P1.4SETB P1.5 ;开左灯CLR P1.6CLR P1.7 ;关右灯MOV R2,#20HLCALL DELY ;延时SETB 01H ;置标志位LJMP PX03 ;继续查找PX05: SETB P1.4SETB P1.5SETB P1.6 ;关灯SETB P1.7MOV R2,#20HLCALL DELY ;延时CLR 01H ;清标志位LJMP PX03 ;继续查找状态PX02: SETB P1.4SETB P1.5SETB P1.6 ;关灯SETB P1.7LJMP PX03 ;继续DELY: PUSH 02HDEL2: PUSH 02HDEL3: PUSH 02H ;延时DEL4: DJNZ R2,DEL4POP 02HDJNZ R2,DEL3POP 02HDJNZ R2,DEL2POP 02HDJNZ R2,DELYRETEND五、实验总结1、通过实验进一步了解P1口的使用,学习汇编语言编程方法及调试技巧。
微机原理及单片机应用实
验
实验报告
实验P1亮灯
一、实验内容
P1口输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
二、实验步骤
P1.0~P1.7用插针连至L1~L8,运行程序后,观察发光二极管闪亮移位情况。
三、实验原理图
实验程序框图:
实验接线图:
四.实验程序清单
ORG 0000H
LJMP SE18
ORG 0790H
SE18: MOV P1,#0FFH ;送P1口
LO34: MOV A,#0FEH ;L1发光二极管点亮LO33: MOV P1,A
LCALL SE19 ;延时
RL A ;左移位
SJMP LO33 ;循环
ORG 07A0H
SE19: MOV R6,#0A0H
LO36: MOV R7,#0FFH
LO35: DJNZ R7,LO35
DJNZ R6,LO36 ;延时
RET
END
五、实验总结
1、通过实验我们熟悉了51单片机的仿真开发系统,熟悉了编译连接的过程。
2、通过实验了解了P1口的工作原理,通过程序编写调试使LED灯循环点亮。
1.闪烁灯1.实验任务如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。
2.电路原理图图4.1.13.系统板上硬件连线把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。
4.程序设计内容(1).延时程序的设计方法作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是如何设计呢?下面具体介绍其原理:如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒机器周期微秒MOV R6,#20 2个 2D1: MOV R7,#248 2个 2 2+2×248=498 20× DJNZ R7,$ 2个2×248 (498DJNZ R6,D1 2个2×20=4010002因此,上面的延时程序时间为10.002ms。
由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时,延时10ms,以此为基本的计时单位。
如本实验要求0.2秒=200ms,10ms×R5=200ms,则R5=20,延时子程序如下:DELAY: MOV R5,#20D1: MOV R6,#20D2: MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RET(2).输出控制如图1所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。
5.程序框图如图4.1.2所示图4.1.26.汇编源程序ORG 0START: CLR P1.0LCALL DELAYSETB P1.0LCALL DELAYLJMP STARTDELAY: MOV R5,#20 ;延时子程序,延时0.2秒D1: MOV R6,#20D2: MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RETEND7. C语言源程序#include <AT89X51.H>sbit L1=P1^0;void delay02s(void) //延时0.2秒子程序{unsigned char i,j,k;for(i=20;i>0;i--)for(j=20;j>0;j--)for(k=248;k>0;k--);}void main(void) {while(1){L1=0;delay02s();L1=1;delay02s();}2.模拟开关灯1.实验任务如图4.2.1所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==单片机实验报告 (1000字)单片机实验报告实验二并行口输入输出实验——循环彩灯控制任务一1. 实现的功能:P1 口接 8 个开关,P0 口接 8 个灯,每个开关对应一个灯,实时读取开关状态,开关闭合时,灯亮。
开关断开时,灯灭。
2. 硬件原理图:3. 流程图:4. 程序:ORG 0000H //程序入口AJMP MAIN //跳转到主程序ORG 0040H //主程序初始地址MAIN: MOV P1,#0FFH //将P1口设置成输入状态MOV P0,P1 //将P1口输入的状态传输给P0口输出AJMP MAIN //返回主程序,循环执行主程序,保证实时 END //结束任务二1.实现的功能:用 5 个开关 K0-K4,控制 P2 口所接 8 个灯的循环,各开关的功能要求如下:(1)K1,K2 分别选择灯的四种闪动方式;(2)K3 用于控制灯的循环方式(顺时针或逆时针);(3)K4 用于选择灯的两种循环速度(4)K0 用于引发外部中断,在外部中断子程序中,读取通过 K1-K4 所设定的循环彩灯的工作方式,并按所设定的工作方式控制彩灯运行。
2.硬件原理图:3.流程图:4.程序:ORGLJMPORGLJMPORGMAIN: MOVSETBSETBSETBMOVJBJB 0000H MAIN 0003H PINT0 0100H SP,#40H EA EX0 IT0 P1,#0FFH P1.0,MP1.1,M2 //外部中断0入口 //设置栈底 //打开中断允许位 //打开外部中断0允许位 // //将P1口设置成输入状态 //判断P1.0(K1)和P1.1(K2)状态选择闪动方式 //M1: MOVAJMPM2: MOVAJMPM: JBM3: MOV AJMPM4: MOV NEXT1: MOV MOVMOVMOVNEXT2: JB L: MOVRLMOVAJMPR: MOVRRMOVNEXT3: JB LCALLS2: LCALL SJMPORGPINT0: JB JBMO1: MOVAJMPMO2: MOVAJMPMO: JBMO3: MOVAJMPMO4: MOVNEXT4: MOVMOVMOVMOVRETIDELAY: MOVLOOP1: MOVLOOP2: MOVLOOP3: NOP P2,#01H NEXT1 P2,#03H NEXT1 P1.1,M4 P2,#07H NEXT1 P2,#0FH C,P1.2 PSW.2,C C,P1.3 PSW.6,C PSW.2,R A,P2 A P2,A NEXT3 A,P2 A P2,A PSW.6,S2 DELAY DELAY NEXT2 0200H P1.0,MO P1.1,MO2 P2,#01H NEXT4P2,#03H NEXT4 P1.1,MO4 P2,#07H NEXT4 P2,#0FH C,P1.2 PSW.2,C C,P1.3 PSW.6,CR5,#05H R6,#64H R7,#0FFH //闪动方式1,1个灯循环移动 // //闪动方式2,2个灯循环移动 // // //闪动方式3,3个灯循环移动 // //闪动方式4,4个灯循环移动 // //将P1.2(K3)的状态送给PSW.2 // //将P1.3(K4)的状态送给PSW.6 //判断PSW.2(K3)状态选择循环方向 // // // // // // // //判断开关PSW.6(K4)状态选择闪动速度 // // //循环执行闪动程序 //中断程序 //判断P1.0(K1)和P1.1(K2)状态选择闪动方式// //闪动方式1,1个灯循环移动 // //闪动方式2,2个灯循环移动 // // //闪动方式3,3个灯循环移动// //闪动方式4,4个灯循环移动 // //将P1.2(K3)的状态送给PSW.2 // //将P1.3(K4)的状态送给PSW.6 //返回主程序 //延时程序,延时0.5sNOP DJNZ DJNZ DJNZ RET END R7,LOOP3 R6,LOOP2 R5,LOOP1 //返回实验三七段LED数码管控制实验1.实现的功能:实验采用 4 位一体的数码管,用 P1 口通过驱动芯片控制段码输出信号线,P0 口通过驱动芯片控制位选线,自主选择驱动芯片,设计实现电路,并实现以下功能:(1)当开关 K0 接低电平时,第一位依次显示 0~F,然后第二位、第三位、第四位,再循环回第一位。
51单片机实验报告
根据所提供的信息,我可以为您提供一个基本的51单片机实验报告的样例。
以下是一个可能的实验报告结构:
实验名称:51单片机的基本使用
实验目的:掌握51单片机的基本使用方法和功能。
实验器材:51单片机开发板、USB接口线、计算机、电源。
实验步骤:
1. 连接电源,将开发板与计算机连接。
2. 打开软件IDE,新建一个工程。
3. 在工程中编写代码,实现将LED灯进行亮灭交替的功能。
4. 将编写好的代码下载到51单片机开发板中。
5. 检查电路连接是否正确,确保没有问题。
6. 启动51单片机开发板,观察LED灯的亮灭情况。
7. 记录实验结果。
8. 关闭开发板和计算机。
实验结果:
通过编写的代码,成功地实现了LED灯的亮灭交替功能。
LED灯每隔一段时间亮起,然后又灭掉,不断循环。
实验分析:
实验结果表明,51单片机因其高性价比和广泛应用领域,可以使用简单的代码实现一些基本功能。
在这个实验中,我们使
用了51单片机的GPIO口控制LED灯的亮灭,通过不断循环的方式实现了交替闪烁的效果。
实验总结:
通过这次实验,我了解了51单片机的基本使用方法,学会了如何编写简单的代码来控制外部设备。
这对于我以后的学习和应用起到了很好的基础作用。
51单片机实验报告一、引言51单片机是一种广泛应用于嵌入式系统开发的微控制器芯片。
本实验旨在通过对51单片机的实验研究,加深对该芯片的理解和应用。
二、实验一:LED灯闪烁控制本实验通过编写程序,控制51单片机上的LED灯以特定的频率闪烁。
为了实现这个目标,我们首先需要了解51单片机的引脚布局,确定LED灯的连接方式。
然后,通过编写相应的汇编程序,控制引脚的电平变化,从而实现LED灯的闪烁。
三、实验二:数码管显示数码管是一种常见的输出设备,通过控制引脚的输出来显示特定的数字。
本实验中,我们通过编写程序,实现通过51单片机控制数码管的显示。
通过对数码管的驱动原理和编程的学习,我们可以灵活地控制数码管的显示内容和频率。
四、实验三:蜂鸣器发声蜂鸣器是一种常见的声音输出设备,通过控制引脚的输出来产生特定的声音。
本实验中,我们通过编写程序,实现通过51单片机控制蜂鸣器的发声。
通过学习蜂鸣器的驱动原理和编程,我们可以根据需要产生不同频率和节奏的声音。
五、实验四:温湿度检测温湿度检测是一种常见的环境监测需求。
本实验中,我们通过引入温湿度传感器,实现通过51单片机获取环境的温度和湿度信息。
通过编写程序和读取传感器的数据,我们可以实时监测环境的温湿度,并进行相应的控制和反馈。
六、实验五:红外遥控红外遥控是一种常见的无线通信方式,通过发送和接收红外信号来实现远程控制。
本实验中,我们通过引入红外发射和接收模块,实现通过51单片机进行红外遥控。
通过编写相应的程序,设置红外遥控的编码和解码方式,我们可以实现对外部设备的遥控操作。
七、实验六:定时器应用定时器是51单片机中的重要模块,它可以实现定时和计数等功能。
本实验中,我们通过学习定时器的工作原理和编程,实现通过51单片机进行定时和计数的应用。
通过编写相应的程序和设置定时器的参数,我们可以实现不同的定时和计数功能,满足各种需要。
八、实验七:串口通信串口通信是一种常见的数据通信方式,通过串口接口发送和接收数据。
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==51单片机实验指导书篇一:51单片机实验指导书软件实验部分浙江求是科教设备有限公司实验一Keil C51软件的使用Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和 C 语言的程序设计,界面友好,易学易用。
下面介绍Keil C51软件的使用方法进入 Keil C51 后,屏幕如下图所示。
几秒钟后出现编辑界。
启动Keil C51时的屏幕进入Keil C51后的编辑界面简单程序的调试1.建立一个新工程单击Project菜单,在弹出的下拉菜单中选中New Project选项2.然后选择你要保存的路径,输入工程文件的名字,比如保存到C51目录里,工程文件的名字为C51,如下图所示,然后点击保存。
3.这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keil c51几乎支持所有的51核的单片机,我这里还是以大家用的比较多的Atmel 89C51来说明,如下图所示,选择89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定。
4.完成上一步骤后,屏幕如下图所示5.在下图中单击“File”菜单,再在下拉菜单中单击“New”选项新建文件后屏幕如下图所示空白的文件,单击菜单上的“File”,在下拉菜单中选中“Save As”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。
注意,如果用C语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名必须为(.asm)。
然后,单击“保存”按钮。
6)回到编辑界面后,单击“Target 1”前面的“+”号,然后在“Source Group 1”上单击右键,弹出如下菜单篇二:51单片机实验指导书-标准版1目录一、PIO口基础控制类实验(个) ____________________________________41.1 实验任务______________________________________________________________ 41.2 实验电路______________________________________________________________ 41.3 实验步骤______________________________________________________________ 51.4 程序流程图_____________________________________________________________ 51.5 C 语言源程序___________________________________________________________ 61.6 知识点________________________________________________________________ 6 实验二: LED 流水灯 _________________________________________________ 72.1 实验任务______________________________________________________________ 72.2实验电路_______________________________________________________________ 82.3 实验步骤______________________________________________________________ 82.4 程序流程图_____________________________________________________________ 82.5 C 语言源程序_________________________________________________________ 92.6 知识点_______________________________________________________________ 10 实验三:蜂鸣器控制 _______________________________________________ 163.1 实验任务_____________________________________________________________ 163.2 实验电路_____________________________________________________________ 163.3 实验步骤_____________________________________________________________ 163.4程序流程图____________________________________________________________ 163.5 C语言源程序__________________________________________________________ 173.6 知识点_______________________________________________________________ 18 实验四数码管静态显示 _____________________________________________ 184.1 实验任务_____________________________________________________________ 184.2 实验电路_____________________________________________________________ 194.3 实验步骤_____________________________________________________________ 194.4 程序设计_____________________________________________________________ 194.5 程序流程图____________________________________________________________ 204.6 C 语言源程序__________________________________________________________ 204.6 知识点_______________________________________________________________ 22 实验五数码管动态显示 _____________________________________________ 235.1 实验任务_____________________________________________________________ 235.2 实验电路_____________________________________________________________ 245.3 实验步骤_____________________________________________________________ 245.4 程序设计_____________________________________________________________ 245.5 程序流程图____________________________________________________________ 255.6 C 语言源程序__________________________________________________________ 255.6 数码管动态扫描原理简介________________________________________________ 26 实验六独立按键识别 _______________________________________________ 276.2 实验电路_____________________________________________________________ 276.3 实验步骤_____________________________________________________________ 28。