(整理)实验二P1口控制LED发光二极管.

合集下载

控制P1口的8只LED每0.5s闪亮1次

控制P1口的8只LED每0.5s闪亮1次

单片机课程设计报告题目:控制P1口的8只LED每0.5s闪亮一次学生姓名:王张海陈启新学生学号: 1314050230 1314050203 年级: 13级专业:电气工程及其自动化班级:电气(2)班指导教师:徐峰机械与电气工程学院制2015年11月现当今,单片机的应用无处不在。

利用单片机控制灯具的实例也不胜枚举,可控制灯具的芯片也相当之多,而利用单片机控制灯具,达到人们预想效果的方法最为广泛。

它有功能多、价格优、外部电路简单的特点,深受单片机爱好者及灯具控制制造商的青昧,用80C51 单片机及少数外部电路控制LED灯光,使LED灯产生明暗效果,并在灯光达到最亮与最暗时伴随响亮的告警音。

通过硬件电路的制作以及软件程序的编制,使灯光的亮度与告警音配合得当。

LED又称为发光二极管,是一种新型光源,具有高效节能、绿色环保、使用寿命长等其他光源无法比拟的优点。

作为绿色照明光源产品,国家绿色照明推广使用的产品,代表着未来照明技术的发展方向。

本文介绍了以STC89C52为控制核心,利用PWM调光技术,通过调整PWM的周期、PWM的占空比从而控制电流,进而达到对LED进行光度亮暗的控制调节的效果,实现对LED灯的PWM调光控制。

关键词:单片机;LED灯;软件程序摘要........................................................................一目录........................................................................二前言........................................................................三1:制P1口8只LED灯每0.5秒闪亮一次原理图 (2)1.1原理图 (2)1.2原理图器件 (2)1.3原理图参数设置说明 (3)1.4 PCB板图 (4)2:制P1口8只LED灯每0.5秒闪亮一次程序 (5)2.1 程序 (5)2.2 程序原理详细介绍 (5)3:件流程图 (7)3.1流程图的优点 (7)3.2流程图采用的符号 (7)3.3软件流程图制作软件 (7)3.4流程图 (7)4:软件仿真 (9)4.1 Proteus仿真原理图 (9)参考文献 (11)单片机技术飞速发展,单片机的应用已经渗透到了国民经济的各个领域,处处影响着人们的生活,它的出现给现代工业测控领域带来了一次新的技术革命。

实验程序

实验程序

单片机实验程序软件实验一1.分别编程实现两个16位无符号数相加,结果存放在40H41H中;两个16位的无符号数相减,结果存放在30H31H中。

两个16位无符号数相加,结果存放在30H31H中ORG 0000HLJMP MAINORG 0030HMAIN :MOV R3,#01H ;输入加数高八位MOV R4,#23H ;输入加数低八位MOV R5,#45H ;输入被加数高八位MOV R6,#67H ;输入被加数低八位MOV A,R4 ;将R4存入寄存器AADD A,R6 ;A与R6相加,结果存入AMOV 31H,A ;将低八位的和数存入31HMOV A,R3 ;将R3存入寄存器AADDC A,R5 ;A与R5相加,结果存入AMOV 30H,A ;将高八位的和数存入30HSJMP $END; 两个16位的无符号数相减,结果存放在30H31H中。

ORG 0000HLJMP MAINORG 0030HMAIN :MOV R3,#12H ;输入减数高八位MOV R4,#34H ;输入减数低八位MOV R5,#56H ;输入被减数高八位MOV R6,#78H ;输入被减数低八位MOV A,R4 ;将R4存入寄存器ACLR C ;C位清"0"SUBB A,R6 ;A与R6相减,结果存入AMOV 31H,A ;将低八位的差数存入31HMOV A,R3 ;将R3存入寄存器ASUBB A,R5 ;A与R5相减,结果存入AMOV 30H,A ;将高八位的差数存入30HSJMP $END2、编程实现X (X ≥40)Y= 2X (20<X<40)0(X≤20);实现X>=40时,Y=X;20<X<40时,Y=2X;X<20时,Y=0 X的值存放于R2中,Y的值存放于R3中ORG 0000HLJMP MAINORG 0030HMAIN:CMP40: CJNE R2,#40,NEXT0 ;X与40比较,结果由CY读出NEXT0: JNC BIGGER40 ;判断C的值,C为0时则X大于或者等于40,跳到BIGGER40JC CMP20 ;判断C的值,C不为0时则X小于40,跳到CMP20 CMP20: CJNE R2,#21,NEXT1 ;X与21比较,结果由CY读出NEXT1: JNC BIGGER20 ;判断C的值,C为0时则X大于或者等于21(即X大于20),跳到BIGGER20JC SMALLER20 ;判断C的值,C不为0时则X小于20,跳到SMALLER20BIGGER40: MOV A,R2 ;X>=40时,将X的值赋给存放Y的值的R3MOV R3,ASJMP $BIGGER20: MOV A,R2 ;20<X<40时,将X的值乘以2再赋给存放Y的R3MOV B,#02MUL ABMOV R3,ASJMP $SMALLER20:CLR A ;X<20时,将0赋给YMOV R3,ASJMP $软件实验二1、找出内RAM中从30H到50H中在最小值。

控制P1口的8只LED灯每0.5秒闪亮一次

控制P1口的8只LED灯每0.5秒闪亮一次

单片机课程设计论文题目:控制P1口的8只LED灯每0.5秒闪亮一次系部电子信息工程学院专业通信工程学号姓名指导教师程亮亮2015年6月25日摘要现当今,单片机的应用无处不在。

利用单片机控制灯具的实例也不胜枚举,可控制灯具的芯片也相当之多,而利用单片机控制灯具,达到人们预想效果的方法最为广泛。

它有功能多、价格优、外部电路简单的特点,深受单片机爱好者及灯具控制制造商的青昧,用80C51 单片机及少数外部电路控制LED灯光,使LED灯产生明暗效果,并在灯光达到最亮与最暗时伴随响亮的告警音。

通过硬件电路的制作以及软件程序的编制,使灯光的亮度与告警音配合得当。

LED又称为发光二极管,是一种新型光源,具有高效节能、绿色环保、使用寿命长等其他光源无法比拟的优点。

作为绿色照明光源产品,国家绿色照明推广使用的产品,代表着未来照明技术的发展方向。

本文介绍了以STC89C52为控制核心,利用PWM调光技术,通过调整PWM的周期、PWM的占空比从而控制电流,进而达到对LED进行光度亮暗的控制调节的效果,实现对LED灯的PWM调光控制。

关键词:单片机;LED灯;软件程序AbstractNowadays, the application of single chip microcomputer. SCM is used to control the lamps and lanterns of examples are numerous, control the lamps and lanterns of chip is quite much, and using single chip computer control lamps and lanterns, achieve expected effect of the method is the most widely used. It has multi functions, excellent prices, the characteristics of the external circuit is simple, by the Qing Mei single-chip lovers and lamp control manufacturers, with 80C51 microcontroller and a few external circuit to control the LED light, LED lamp has the effect of light and shade, and the light to the brightest and darkest with loud alarm sound. Through the production of the hardware circuit and software program, the brightness of the lighting and sound alarm.LED is also known as light-emitting diode, is a new type of light source, with high efficiency, energy saving, environmental protection, long service life and other light source can not match the advantages. As a green light source products, national green lighting to promote the use of products, representing the development direction of future lighting technology. STC89C52 as control core, using PWM dimming technology, by adjusting the PWM cycle, PWM accounted for empty than to control electric current, thus achieving the photometric light and dark control and regulation of the effect of the LED, LED lamp dimming with PWM control is introduced in this paper.Key words: single chip microcomputer; LED; software program目录摘要 (Ⅱ)Abstract (Ⅲ)目录 (Ⅳ)前言 (1)1:制P1口8只LED灯每0.5秒闪亮一次原理图 (2)1.1原理图 (2)1.2原理图器件 (2)1.3原理图参数设置说明 (3)1.4 PCB板图 (4)2:制P1口8只LED灯每0.5秒闪亮一次程序 (5)2.1 程序 (5)2.2 程序原理详细介绍 (5)3:件流程图 (7)3.1流程图的优点 (7)3.2流程图采用的符号 (7)3.3软件流程图制作软件 (7)3.4流程图 (7)4:软件仿真 (9)4.1 Proteus仿真原理图 (9)参考文献 (11)前言:单片机技术飞速发展,单片机的应用已经渗透到了国民经济的各个领域,处处影响着人们的生活,它的出现给现代工业测控领域带来了一次新的技术革命。

实验二控制LED灯点亮实验(精)

实验二控制LED灯点亮实验(精)

实验二控制 LED 灯点亮实验一、实验目的1.. 进一步熟悉单片机编程和程序调试方法2. 学习 P1口的使用方法3. 学习延时子程序的编写和应用二、实验内容1.让实验板上的第 1、 3、 5、 7位置上的灯与第 2、 4、 6、 8位置上的灯交替闪烁。

2、设计出如下要求的流水灯程序。

变化要求:先从第 4个灯向左逐个点亮,接着从第 5个灯向右逐个点亮,然后, 从第 1个向右、第 8个向左同时开始的向内逐个点亮再从中间向两边逐个点亮的。

三、实验相关说明1、实验电路原理图100注意:在实验报告中,请画出实际运行你程序的电路的原理图2、 LED 灯控制。

从电路原理图可看到 ,当 P1 .0端口输出高电平,即 P1.0=1时 ,发光二极管 L1熄灭;当 P1 .0输出低电平即 P1 .0=0时, L 1亮;在汇编语言里可用 SETB P1.0指令使 P 1. 0端口输出高电平 ,用 CLR P1.0指令使 P1 .0 端口输出低电平, 从而控制 LED 的亮、灭。

注意:实验板是用哪个口连接了 LED 。

3.延时子程序的设计、应用单片机指令的执行时间很短,时间在微秒级,因此,如果我们想看灯闪烁, 那么就必须在用指令控制灯处于亮或灭的状态后, 保证那状态维持一段时间后再转换成另一状态。

如何做到维持一段时间呢?方法有很多, 其中最易实现的一种方法是:通过插入一段程序, 每条指令执行都需要 1个或若干个机器周期的时间。

因而执行完这段程序就过了一段时间, 通常把这称为延时。

延时程序一般采用单重或多重循环程序。

可以根据需要延时的时间来设计这段程序包含哪些指令、循环次数。

设计举例如下:若单片机晶振为 12MHz ,因此,则单片机的 1个机器周期为 1微秒,则下面这段循环程序中每条指令执行所需的机器周期数及其要花的时间列在下面。

机器周期微秒MOV R6,#20 2个机器周期 2D1: MOV R7,#248 2个机器周期 2×20DJNZ R7,$ 2个机器周期 2×248×20DJNZ R6,D1 2个机器周期 2×20=4010002 因此,上面的延时程序时间为10.002ms 。

实验二__P1口输入输出的实现(17)_2

实验二__P1口输入输出的实现(17)_2

实验二P1口输入、输出的实现一、实验目的1.复习单片机调试平台的使用方法,学习并巩固延时函数的编程方法;2.验证用P1口既作输入又作输出;3.学习用if - else 和switch (case ) 分支程序结构的编程方法。

二、实验设备电脑、THDPJ-2型单片机开发综合实验箱及连接线。

三、实验内容1.实验要求1)设计程序实现P1口作为输出功能,实现P1口控制的发光二极管按间隔为1秒和3秒的时间闪烁,修改延时子程序,观察现象并记录程序。

(时钟频率为12MHz)。

2)设计程序实现P1口既作输入又作输出,把P1.0和P1.1外接按键的状态通过P1.4和P1.5外接的LED发光二极管实时显示。

(流程图见图1)3)安排P1.0作为单键输入口,P1.6、P1.7接两个发光管L6、L7。

实现:当P1.0=0时,D6、D7亮。

当P1.0=1时,D6、D7以1秒的间隔闪烁。

(流程图见图2)4)安排P1.0、P1.1作为输入口,P1.4、P1.5 、D5、D6、D7 (流程图见图3、4)当P1.1=0 、P1.0=0时,D4亮、D5、D6、D7灭;当P1.1=0 、P1.0=1时,D5亮、D4、D6、D7灭;当P1.1=1 、P1.0=0时,D6亮、D4、D5、D7灭;当P1.1=1 、P1.0=1时,D7亮、D4、D5、D6灭。

2.软件流程图图 1 流程图图4 if- else 流程图图3 switch 流程图图2 流程图3. 参考电路图五、实验结果和数据分析实验报告要求:每个步骤有流程图,有程序,有观察到的现象。

最后有实验心得。

问题:1.说明P0口的操作方法。

2.说明LED的控制方法,LED是高电平控制还是低电平控制。

51单片机实验-实验二 P1口输入、输出实验

51单片机实验-实验二 P1口输入、输出实验

实验二 P1口输入、输出实验一、实验目的学习Pl口的使用方法。

学习延时子程序的编写和使用。

进一步熟悉星研Star16L仿真器系统的操作,和EL-Ⅱ型通用接口板实验电路结构,学习使用PROTEUS仿真软件实现单片机的虚拟仿真。

掌握虚拟仿真与实际系统仿真的有机衔接。

二、实验仪器和设备PC机、星研Star16L仿真器系统+仿真头PODPH51(DIP)、EL-Ⅱ型通用接口板实验电路,PROTEUS仿真软件。

三、实验内容1)P1口做输出口,经过74LS04反相器接八只发光二极管,编写程序,使发光二极管循环点亮。

2)(选作)P1口既做输入又做输出,在P1.0~P1.3口接四个平推开关,通过开关的不同位置向P1.0~P1.3输入不同的状态,然后利用输入指令读取所设开关状态,为验证输入结果的正确与否,将它们输出到P1.4~P1.7,经过74LS04反相器驱动发光二极管。

四、实验结果1)循环点亮八只发光二极管。

取P1.0口接出第一个二极管,以此类推,第八个接P1.7口。

Proteus 仿真图①循环左移,即从第一个二极管开始点亮到第八个二极管实验程序:ORG 0000HSTART:MOV R2,#8MOV A,#01H ;先让第一个发光二极管点亮LOOP: MOV P1,A ;从P1口输出到发光二极管LCALL DELAYRL A ;循环左移(从第一个发光二极管开始一直往下一个二极管)DJNZ R2,LOOP ;判断移动是否超过8位,未超过则继续循环LJMP START ;循环发光DELAY:MOV R5,#5 ;延时0.5秒子程序DEL1: MOV R6,#200DEL2: MOV R7,#126DEL3: DJNZ R7,DEL3DJNZ R6,DEL2DJNZ R5,DEL1RETEND仿真结果:发光二极管从D1开始发光,依次往下到D8,然后循环这一过程。

实验结果:发光二极管从第一个开始发光,依次往左到第八个,然后循环这一过程。

一个发光二极管的闪烁控制

一个发光二极管的闪烁控制

MCU
9
第三步 编译 下载 调试
预处理命令--------函数说明-----------全局变量定义-----主函数------------
程序体
自定义函数--------局部变量定义--------程序体------
C51与标准C程序结构完全相同
① 程序由函数组成(一个主函数,或一个主函数 和若干自定义函数); ② 利用预处理命令对变量或函数进行集中定义或 说明; ③ 函数和变量都需遵循先定义后使用的基本原则; ④ 主函数中的所有语句执行完毕,则程序结束。
21
2.1.3 硬件工具之一:面包板
在面包板上观察电路的现象 是不是与设计的一致,以验 证电路图设计的正确性,这 在电子电路设计中经常用到。
欢迎访问“电路飞翔网”获取更多信息 《实例解读8051单片机完全学习与应用》 All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱· 诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
19
2.1.1 综合素质
电子血压计,测量时将一个密封 的袖带套在上臂上,按下按钮启 动血压测量后,单片机控制气泵 工作,向袖带中打气从而增加其 中的压力。当压力达到 200mmHg左右时即停止打气并 缓慢放气,在气压下降的过程中, 压力传感器实时监测袖带中的压 力变化,通过ADC进行模数转换 后送给单片机分析,从而计算出 收缩压(高压)和舒张压(低 压)。
24
2.1.4 硬件工具之二:万用板和印刷电路板
电路原理图可生成印刷电路 板图。把印刷电路板图交给 电路板生产厂家就可以把印 刷电路板加工出来。电子产 品的电路板已经具备工作的 基本条件了。

实验二p3.3口控制p1口实验

实验二p3.3口控制p1口实验
实验二 P3.3口输入控制 P1输出实验
工商学院 单片机实验
• 一、实验目的 • 1、掌握P1口和P3口的使用方 法; • 2、学习跳转指令的用法;
单片机实验
• 二、实验内容 • P3.3口作为输入口,外接脉冲 信号,P1口作为输出口,接八 只发光二极管。 • 要求:P3.3口每输入一个脉冲 信号, P1口控制的发光二极管 按照十六进制加一的方式点亮。
单片机实验
开始
三、程序流程

P3.3为高吗? 否 延时 是
P3.3真为高吗?
否 P3.3为低吗? 是

延时
是 P3.3真为低吗?
否 P1口按照十六进制加一顺序点亮
单片机实验
四、实验电路图
单片机实验
• • • • • •
五、接线 P1.0-P1.7接在八只发光二级管; P3.3口接开关; 六、相关知识介绍 1、P1口按照十六进制加一的顺序点亮; 2、JB和JNB分别代表什么意思,有何不同?
单片机实验
• 思考题: • 1、说出跳转和调用指令的区别是什么? 。 • 2、总结P3口的其它功能。
单片机实验
单片机实验
3、按键的去抖动
单片机实验
• 程序框架
ORG 0000H
START:
A1:
MOV A,#00H
JB P3.3,A1 LCALL DELAY JB P3.3,A1
A2: AY: END
….
单片机实验
重点
• • • • 编程重点 1、输入脉冲信号的判断 2、I/O在作为输入口的时候应注意什么? 3、跳转和调用的区别是什么?

单片机实验报告2

单片机实验报告2

《单片机应用系统设计》实验报告院系:仪器科学与工程学院专业:测控技术与仪器实验室:机械楼5楼同组人员:评定成绩:审阅教师:硬件实验一I/O口输入/输出及控制实验Ⅰ、I/O口输入/输出实验一、实验目的1、学习单片机I/O口的使用方法2、学习延时子程序的编写和使用二、实验内容1、I/O口输出:P1口做输出口,接八只发光二极管,编写程序让发光二极管循环点亮。

2、I/O口输入/输出:P1.0、P1.1做输入口接两个拨动开关;P1.2、P1.3做输出口,接两个发光二极管。

编写程序读取开关状态,将此状态在发光二极管上显示出来。

编程时应注意P1.0、P1.1作为输入口时应先置1,才能正确读入值。

三、实验步骤1、I/O口输出硬件连接连线连接孔1 连接孔21 P1.0 L02 P1.1 L13 P1.2 L24 P1.3 L35 P1.4 L46 P1.5 L57 P1.6 L68 P1.7 L7MCS51的P1口循环点灯2、I/O口输入/输出硬件连接连线连接孔1 连接孔21 K4 P1.02 K5 P1.13 P1.2 L44 P1.3 L5MCS51的P1口输入/输出3、实验说明(1)对于MCS51,P1口是准双向口。

它作为输出口时与一般的双向口使用方法想同;但准双向口用作输入口时,因其结构特点必须对它置“1”,否则读入的数据容易产生错误。

(2)8051延时子程序的延时计算问题,对于程序DELAY:MOV R6, #0HMOV R7, #0HDELAYLOOP:DJNZ R6, DELAYLOOPDJNZ R7, DELAYLOOPRET查指令表可知MOV和DJNZ指令均需两个指令周期,在12MHz晶振时,一个机器周期时间为:12/12MHZ=1ms,该延时子程序延时:(256X255+2)X2X1us=130ms。

4、分别连接硬件并执行相关程序,记录结果。

四、提高要求修改I/O口输出程序,先1、3、5、7灯亮,延时后2、4、6、8灯亮,交替点亮。

实验二 P1口亮灯实验

实验二 P1口亮灯实验
2、如果要从0到9依次点亮数码管,应该如何修改程序?
修改A的初值为0,将循环条件该为A即可。将RL左移指令改为自增指令。
五、实验结果及总结:(你的实验过程用了多少时间?遇到了哪些难题?你是怎么解决的?你的收获有哪些?)
亮灯实验,遇到在源程序输入时,出现了一些字符状态打错的现象,在今后的试验中一定要注意,该问题。
2、学习P1口的使用方法;
3、学习延时子程序的编写。
二、实验仪器:
计算机
三、实验内容、步骤及程序
1、实验内容
P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2、实验步骤
P1.0-P1.7用导线连至L1-L8,运行程序后,观察发光二极管闪亮移位情况。
3、参序?
实验二p1口亮灯实验实验类型验证实验日期920实验地点2s实验时间星期指导教师实验组成员一实验目的及要求
【单片机原理及应用】实验报告
班级:计13本2学号:姓名:
实验二P1口亮灯实验
实验类型
验证
实验日期
9,20
实验地点
2S—
实验时间(星期节次)
指导教师
实验组成员
一、实验目的及要求:
1、掌握单片机实验系统的硬件组成及仿真软件的编程、汇编、仿真、修改、下载调试的整个过程;
(A=09H)循环条件改为00H自增改为自减,去掉SJMP的跳转指令,就可以实现9到1
自减倒计时功能。
具体代码:
(可附页)

实验二(指示灯循环控制实验)--09机械(V2012上)

实验二(指示灯循环控制实验)--09机械(V2012上)
2.用C语言编写一段程序,实现与上面相同功能的指示灯循环。用P1口作为控制端口,使D1区的LED轮流点亮。
程序如下:(手写)
适当注释并分析上述C语言程序。
1)上述程序中,_crol_()函数的功能及作用,并指出类似功能的函数;
2)本步骤实验结果描述及分析(手写):
3.编写一段程序,用P1口作为控制端口,使D1区的LED轮流点亮,并可通过按键控制走马灯的暂停/继续。编程思路:用外部中断0(/INT0)控制走马灯的暂停/继续。
1、总结程序加载和运行时系统软硬件的设置。(手写答案)
答:
2、比较三个走马灯程序各实验的异同并加以说明。(手写答案)
答:
八、实验小结(手写):
DELAY:MOVR2,#5
DELAY2:MOVR3,#100
DELAY3:MOVR4,#100
DJNZR4,$
DJNZR3,DELAY3
DJNZR2,DELAY2
RET
;外部中断0服务子程序
ZEX0:PUSHACC
MOVA,R5
XRLA,#0FFH
MOVR5,A
POPACC
RETI
END
接线:1)将A1区P1口引线连接到D1区J52上;2)将D1区J53的KEY1连接到A1区INT0上。
NEXT:MOVP1,A
ACALLDELAY
RLA;作用是:
SJMPNEXT
;延时子程序DELAY
DELAY:MOVR2,#5;延时时间为?写出计算过程。
DELAY2:MOVR3,#100
DELAY3:MOVR4,#100
DJNZR4,$
DJNZR3,DELAY3
DJNZR2,DELAY2
RET

单片机原理及应用实验报告

单片机原理及应用实验报告
EA=1;
ET0=1;
TR0=1;
while (1)
{
ScanKey0( );
keyscan( ); //按键扫描
time_pro( ); //时间处理
display( ); //显示时间
}
}
实验结果:
数码管可以显示时钟的时分秒,按下按键1,可以在时钟的时分秒为切换,按下按键2,可以在选择的任意位+1,从而实现时间的修改。
实验接线图:
实验程序:
#include<reg51.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
uchar code dispcode[ ]={0xC0,0xF9,0xA4,0xB0,0x99,
0x92,0x82,0xf8,0x80,0x90};
loop:
Dsplay();
goto loop;
}
void Dsplay() //动态扫描显示
{uchar i;
for(i=0,P1=0x01;i<6;i++)
{ P0=cDsCode[mDS[i]];//输出段
Delayms(2);
P1=P1<<1; //选通下一位
}
P1=0x00; //关闭位选通
实验五:存储器系统设计
实验目的:掌握存储器工作原理及特点。通过该实验让学生掌握单片机存储器系统的硬件设计,存储器在系统中的地址分配,地址总线、数据总线与控制总线的连接。
实验内容:1.在实验板上将一片6264RAM芯片设计成8K的外部数据存储器,地址为0000H—1FFFH。

实验二P1口控制LED发光二极管25页word

实验二P1口控制LED发光二极管25页word

实验二 P1口控制LED发光二极管一、实验目的1、进一步熟练Proteus及Keil软件的基本操作2、掌握8051单片机P1口的使用方法3、掌握LED发光二极管的原理及使用方法4、学习汇编程序的调试及仿真方法二、实验电路三、实验内容及步骤:要求:8个LED发光二极管循环左移显示(发光的移位),间隔时间为一秒。

1、使用Proteus画出电路原理图2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件3、进行Protues与Keil uVision联动的相关设置:4、在Proteus中仿真运行。

四、思考1、将本实验的实验现象改为“不发光二极管循环移位”。

2、将本实验的实验现象改为“每隔0.5秒发光二极管循环移位”。

参考程序:ORG 0LJMP MAINORG 30HMAIN: MOV A,#0FEHLOOP: MOV P1,ALCALL DELAYRL ASJMP LOOP DELAY: MOV R7,#20H DELAY1:MOV R6,#200 DELAY2:MOV R5,#123DJNZ R5,$DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND实验三数码管静态显示实验一、实验目的1、进一步熟悉51系列单片机2、了解8051单片机P0口的使用方法3、掌握共阴极数码管的原理及使用方法4、学习8051的编程、调试、编译、仿真。

二、实验电路图3 数码管静态显示电路原理图注:数码管要从元件库选择Optoelectronics类中的7SEG-COM-CAT-GRN。

三、要求及步骤:要求:在七段数码管上以递增方式循环显示数字0—9,间隔时间为一秒。

1、使用Proteus画出电路原理图2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件3、进行Protues与Keil uVision联动的相关设置:4、在Proteus中仿真运行。

四、思考1、为什么要将P0口各引脚通过电阻R3-R9接到电源?2、如何在共阴数码管上循环显示十六进制数字0—F(不区分字母的大小写)?3、怎样修改程序使数字以递减方式循环显示?4、若用共阳极数码管应如何修改电路和程序,才能完成本实验的功能?参考程序:ORG 00HLJMP STARTORG 30HSTART: MOV DPTR,#TABLES1: MOV R4,#00HS2: MOV A,R4MOVC A,@A+DPTRMOV P0,ALCALL DELAYINC R4CJNE R4,#0AH,S2SJMP S1DELAY: MOV R5,#20 ;延时子程序D2: MOV R6,#200D1: MOV R7,#123DJNZ R7,$DJNZ R6,D1DJNZ R5,D2RETTABLE: DB 3FH,06H,5BH,4FH,66H ;段码表DB 6DH,7DH,07H,7FH,6FHEND实验四基本输入/输出实验一、实验目的1、进一步熟悉8051单片机并行I/O口的使用方法3、掌握并行I/O口输入/输出操作的方法4、学习8051的编程、调试、编译、仿真。

实验二 P1口亮灯实验

实验二 P1口亮灯实验

实验二 P1口亮灯实验一、实验目的(1)学习P1口的使用方法;(2)学习延时子程序的编写。

二、实验预备知识(1)P1口为准双向口,每一位都可独立地定义为输出线或输入线。

(2)本实验中延时子程序采用指令循环来实现,机器周期*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。

三、实验内容P1作为输出口,接八只发光二极管,编写程序,使发光二极管循环顺序点亮。

四、程序框图五、实验电路六、实验步骤P1.0~P1.7用插针连至L1~L8,运行程序后,观察发光二极管闪亮移位情况。

七、修改程序,分别完成以下任务:1、修改程序,使二极管闪亮时间改变。

2、修改程序,使二极管闪亮移位方向改变。

3、修改程序,循环实现二极管全亮和全灭。

4、修改程序,循环实现先一次亮4只,然后亮另外4只。

5、修改程序,循环实现先点亮奇数灯,在点亮偶数灯。

6、修改程序,循环实现先顺序点亮奇数灯,在顺序点亮偶数灯。

7、使用定时器T0实现二极管循环点亮(选做)参考程序:ORG 0000HAJMP SE18ORG 0790HSE18: MOV P1,#0FFH ;送P1口LO34: MOV A,#0FEH ;L1发光二极管点亮LO33: MOV P1,ALCALL SE19 ;延时RL A ;左移位SJMP LO33 ;循环SE19: MOV R6,#0A0HLO36: MOV R7,#0FFHLO35: DJNZ R7,LO35DJNZ R6,LO36 ;延时RETEND1、修改程序,使二极管闪亮时间改变。

ORG 0000HAJMP SE18ORG 0790HSE18: MOV P1,#0FFH ;送P1口LO34: MOV A,#0FEH ;L1发光二极管点亮LO33: MOV P1,ALCALL SE19 ;延时RL A ;左移位SJMP LO33 ;循环SE19: MOV R6,#0A0HLO36: MOV R7,#0AFHLO35: DJNZ R7,LO35DJNZ R6,LO36 ;延时RETEND2、修改程序,使二极管闪亮移位方向改变ORG 0000HAJMP SE18ORG 0790HSE18: MOV P1,#0FFH ;送P1口LO34: MOV A,#0FEH ;L1发光二极管点亮LO33: MOV P1,ALCALL SE19 ;延时RR A ;右移位SJMP LO33 ;循环SE19: MOV R6,#0A0HLO36: MOV R7,#0FFHLO35: DJNZ R7,LO35DJNZ R6,LO36 ;延时RETEND3、修改程序,循环实现二极管全亮和全灭。

单片机P1口输入输出实验

单片机P1口输入输出实验
•9
单片机P1口输入输出实 验
单片机可靠的复位是保证单片机正常运行的关键因素。 因此,在设计复位电路时,通常要使RST引脚保持10ms以 上的高电平。当RST从高电平变为低电平之后,单片机就从 0000H地址开始执行程序。本电路是上电自动复位。
将8个LED接在单片机P1端口的P1.0-P1.7引脚上,注意 LED有长短两个引脚,分别表示正负极,其中较短的负极接 单片机,较长的为正极,通过限流电阻R与Vcc相连。
单片机P1口输入输出实 验
单片机端口是集数据输入缓冲、数据输出驱动及 锁存等多项功能一体I/O的电路,特别是把握它准 双向、多功能的特点。单片机4个并行端口是P0、 P1、P2、P3。本实验只讨论P1端口。
1、实验目的
通过实验了解P1口作为输入输出方式使用 时,CPU对P1口操作方式。
•1
单片机P1口输入输出实 2、验实验要求(1)、2)为必做,3)为选做)
•11
单片机P1口输入输出实验
图3 P1端口的一位结构
•12
单片机P1口输入输出实验
5、程序设计
P1口输出控制程序的设计主要包括控制输出程序设计与延时程序设计。 (1)输出控制:当P1.5端口输出低电平,即P1.5=0,这时LED亮,反 之,LED灭,可以使用P1.5=0指令使P1.5端口输出低电平,同样利用指 令使P1.5端口输出高电平。
灭;
状态3:8个LED发光二极管
全灭后,从左右两边开始同时点亮LED发光二极管,全亮
后,8个LED发光二极管再明暗一起闪烁2次 ?
•3
单片机P1口输入输出实 验
3、实验设备与仪器 单片机应用与仿真开发实验台,PC机,
E6000/L仿真器+POD-51仿真头、 Wave软硬件仿真软件。

P1口外接8只LED发光二极管模拟彩灯

P1口外接8只LED发光二极管模拟彩灯

寻找存放操作数的地址或位 置,并将其提取出来的方法
返回本章首页
1 立即寻址
• 指令中直接给出操作数的寻址方式。立即操作数用 前面加有#号的8位或16位数来表示。
例如:MOV A,# 60H ;(A)←#60H MOVDPTR,# 3400H ;(DPTR)←#3400H MOV30H,# 40H ;30H单元←#40H
• 累加器A中数据为立即数据60H; • DPTR寄存器中数据为3400H; • 30H单元中数据为立即数40H。 • 寻址范围:程序存储器
返回本节
2 直接寻址
• 指令中直接给出操作数地址的寻址方式。 • 例1:MOV PSW,# 20H ;
( PSW)←20H PSW为直接寻址寄存器的符号地址。 例2: MOV A,30H ;(A)←(30H) • 寻址范围:内部RAM低128B(00H--7FH)
MOV P1, A ;累加器A中的数送P1端口 SJMP LOOP ;转移到LOOP
END
相关知识
1.单片机是怎样使二极管发亮的? 单片机内部的端口寄存器与片外引脚是直接相连的,数 据通过单片机内部数据总线传送到端口寄存器(用指令 完成),结合发光二极管硬件电路,二极管便发亮了。 2. 什么是指令?MCS-51单片机有哪些指令?
;取书 ,A中
20H
此例中,20H就当成是那本书;30H就当成是甲抽屉;
R0就当成是乙抽屉,执行的结果就是将20H这个立即数装入A中。 期间也经历了两次寻址,即间接寻址。
返回本节
5 变址寻址
• 又称为基址寄存器加变址寄存器寻址,以基址寄存器 内容加变址寄存器内容作为操作数的地址。 基址寄存器:PC、DPTR 变址寄存器:A
• 汇编语言指令:用有一定含义的助记符来 表示机器码的指令

实验二_单片机P1口输入输出及中断实验

实验二_单片机P1口输入输出及中断实验

单片机P1口输入输出及外部中断实验一、实验目的1、学习P1口的使用方法。

2、学习延时子程序的编写和使用。

3、熟练在汇编软件环境下编写、修改、调试、和运行硬件程序4、熟悉汇编语言二、实验说明1、P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

2、P1.0,P1.1作输入口接两个拨动开关,P1.2,P1.3作输出口,接两个发光二极管,编写程序读取开关状态,将此状态,在发光二极管上显示出来。

编程时应注意P1.0,P1.1作为输入口时应先置1,才能正确读入值。

3、用单次脉冲申请中断,在中断处理程序中使P1.0的输出状态发生反转,并通过发光二极管观察P1.0的电平。

三、实验仪器计算机伟福软件(lab2000P )四、实验内容1、P1口是准双向口。

它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口用为输入口时,必须先对它置“1”。

若不先对它置“1”,读入的数据是不正确的。

2、8051延时子程序的延时计算问题,计算和估算延时子程序的时间。

3、保护进入中断时的状态,并在退出中断之前恢复进入时的状态。

4、必须在中断程序中设定是否允许中断重入,即设置EXO位。

1> 关于延时子程序的时间计算,查指令表可知MOV和DJNZ指令均需用两个机器周期,在6MHz晶振时,一个机器周期时间长度为12/6MHZ,所以上面延时子程序该的执行时间为:(256×255+2)×2×12÷6 ≈261ms2>采用P1口作输出P1口是准双向口,它作为输出口使用时具有锁存功能。

实验所需要LED电平显示电路如图所示。

3>采用P1口作输入和输出由P1口的准双向口结构可知,当作为输入口时,必须先对它置“1”。

若不先对它置“1”,读入的数据是不正确的。

实验所需要LED电平显示电路和逻辑电平开关电路如图所示。

思考题1、改变延时时间,变快或者变慢,观察效果;2、第2个实验在每个端口增加软件延时,延时时间变快或者变慢,观察拨动开关响应效果;3、改变流水灯的运行方向;4、改变流水灯的运行模式,双灯对跑,双灯一起跑。

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

实验二 P1口控制LED发光二极管一、实验目的1、进一步熟练Proteus及Keil软件的基本操作2、掌握8051单片机P1口的使用方法3、掌握LED发光二极管的原理及使用方法4、学习汇编程序的调试及仿真方法二、实验电路三、实验内容及步骤:要求:8个LED发光二极管循环左移显示(发光的移位),间隔时间为一秒。

1、使用Proteus画出电路原理图2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件3、进行Protues与Keil uVision联动的相关设置:4、在Proteus中仿真运行。

四、思考1、将本实验的实验现象改为“不发光二极管循环移位”。

2、将本实验的实验现象改为“每隔0.5秒发光二极管循环移位”。

参考程序:ORG 0LJMP MAINORG 30H MAIN: MOV A,#0FEH LOOP: MOV P1,ALCALL DELAYRL ASJMP LOOP DELAY: MOV R7,#20H DELAY1:MOV R6,#200 DELAY2:MOV R5,#123DJNZ R5,$DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND实验三数码管静态显示实验一、实验目的1、进一步熟悉51系列单片机2、了解8051单片机P0口的使用方法3、掌握共阴极数码管的原理及使用方法4、学习8051的编程、调试、编译、仿真。

二、实验电路图3 数码管静态显示电路原理图注:数码管要从元件库选择Optoelectronics类中的7SEG-COM-CAT-GRN。

三、要求及步骤:要求:在七段数码管上以递增方式循环显示数字0—9,间隔时间为一秒。

1、使用Proteus画出电路原理图2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件3、进行Protues与Keil uVision联动的相关设置:4、在Proteus中仿真运行。

四、思考1、为什么要将P0口各引脚通过电阻R3-R9接到电源?2、如何在共阴数码管上循环显示十六进制数字0—F(不区分字母的大小写)?3、怎样修改程序使数字以递减方式循环显示?4、若用共阳极数码管应如何修改电路和程序,才能完成本实验的功能?参考程序:ORG 00HLJMP STARTORG 30HSTART: MOV DPTR,#TABLES1: MOV R4,#00HS2: MOV A,R4MOVC A,@A+DPTRMOV P0,ALCALL DELAYINC R4CJNE R4,#0AH,S2SJMP S1DELAY: MOV R5,#20 ;延时子程序D2: MOV R6,#200D1: MOV R7,#123DJNZ R7,$DJNZ R6,D1DJNZ R5,D2RETTABLE: DB 3FH,06H,5BH,4FH,66H ;段码表DB 6DH,7DH,07H,7FH,6FHEND实验四基本输入/输出实验一、实验目的1、进一步熟悉8051单片机并行I/O口的使用方法3、掌握并行I/O口输入/输出操作的方法4、学习8051的编程、调试、编译、仿真。

二、实验电路图4 并行I/O口基本输入/输出注:按钮要从元件库选择Switches & Relays类中的BUTTON。

三、要求及步骤:要求:在按钮动作的控制下,将十六进制数字0-F循环显示在数码管上(每按一次按钮,显示的数字加1)。

1、使用Proteus画出电路原理图2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件3、进行Protues与Keil uVision联动的相关设置:4、在Proteus中仿真运行。

四、思考1、如何检测按钮是否按下?2、怎样修改程序,可以使数字0-F在按钮控制下,以递减方式循环显示?3、若在P0口接8个LED,如何实现每按一次按钮,点亮的LED左移一位(8个LED中只有一个点亮)?参考程序:ORG 00HLJMP STARTORG 30HSTART: MOV P1,#01HMOV DPTR,#TABLEMOV R4,#00HCLR AMOVC A,@A+DPTRMOV P0,ALOOP: MOV A,P1ANL A,#01HJZ LOOPLOOP1: MOV A,P1ANL A,#01HJNZ LOOP1INC R4MOV A,R4ANL A,#0FHMOVC A,@A+DPTRMOV P0,ASJMP LOOPTABLE: DB 3FH,06H,5BH,4FH,66H ;段码表DB 6DH,7DH,07H,7FH,6FHDB 77H,7CH,39H,5EH,79H,71H,76HEND实验五数据传送指令练习一、实验目的1、进一步掌握Keil软件的使用。

2、熟悉数据传送指令功能及使用。

二、实验内容1、输入数据传送指令并单步执行输入的指令;2、练习数据传送指令的基本应用。

三、实验步骤1、数据传送指令的功能1)输入如下程序:ORG 0030HMOV A,#0BBHMOV DPTR,#0070HMOVX @DPTR,AMOV R0,#70HMOV @R0,AMOV A,#0CCHXCHD A,@R0SJMP $END2)观察DPTR、A、R0、内部RAM70H和外部RAM70H单元中内容并填入表中第一空行。

3)单步执行完上述程序,重新观察上述寄存器和存储单元中内容并填入表中第二空行。

表1 程序执行前后有关寄存器和RAM单元内容对照表4)分析程序运行结果,并把分析结果和运行结果进行比较。

2、PUSH指令对堆栈的影响1)输入如下程序:ORG 0040HMOV A,#0AAHMOV PSW,#0CCHPUSH ACCPUSH PSWSJMP $END2)观察A、PSW、SP、07H、08H和09H单元中内容,并填入表表。

表2 PUSH指令对堆栈的影响3)单步执行上述程序,重新观察上述寄存器和堆栈区中内容填入表中。

4)分析程序运行结果,并把分析结果和实验结果进行比较,看两者是否相同。

3、编写把A、PSW、DPTR中内容入栈保护并恢复的程序,并验证。

4、编写将内RAM的30H、40H单元内容相互交换的程序,并验证。

5、编程实现交换外RAM 1050H、1060H单元的数据,并运行验证。

四、实验总结:1、堆栈操作的原则是什么?在程序设计中需要保护和恢复数据时应注意什么?2、对内RAM、外RAM及ROM进行数据传送的指令,分别可使用何种寻址方式?实验六算术及逻辑运算指令练习一、实验目的1、熟悉算术及逻辑运算类指令的功能。

2、掌握算术及逻辑运算类指令对标志位的影响。

3、掌握算术、逻辑运算指令的编程应用。

二、实验内容1、求两个16位无符号二进制数的和2、四位十进制数的加法3、算术、逻辑运算指令的基本应用三、实验步骤1、调试程序:求两个16位数的和设内RAM30H和32H开头的两个单元分别存放有两个16位无符号二进制数(低8位在30H 或32H单元,高8位在31H或33H单元),将和存放在30H单元开始的存储区。

ORG 0000HLJMP MAINORG 0030H MAIN: MOV A,30HADD A,32HMOV 30H,A MOV A,31H ADDC A,33H MOV 31H,A SJMP $END要求:选择几组数据测试该程序,如有错,将其改正。

2、编程:四位十进制数的加法:设内RAM中30H和32H开头的两个单元分别存放有两个四位十进制数的压缩BCD码(低8位在30H或32H单元,高8位在31H或33H单元),试编写程序求这两个十进制数的和,并将3、分别编写实现如下功能的程序并运行、验证。

(1)外RAM1000H~1020H单元中8位无符号二进制数求和,结果存放在内RAM30H单元开始的存储区。

(2)外RAM的1000H和2000H单元中分别放着一个8位无符号二进制数X和Y,计算3X+4Y,并将结果存入内RAM的30H单元和31H单元。

(低8位在30H单元)。

(3)将两位十进制数的压缩BCD码转换成ASCII码。

(源数据在内RAM 20H单元,结果存放在内RAM30H开始的两个单元,低字节在31H单元)(4)将内RAM 从30H开始的20个单元全部清零。

四、实验总结:1、算术加、减法指令如何影响PSW中的有关标志位?2、如何实现两个BCD数的减法?实验七汇编语言程序设计一、实验目的:1、练习常见的简单的分支、循环程序结构的设计方法。

2、练习常见的程序调试方法。

二、实验内容:1、编写程序,将内RAM的30H~40H单元存放的单字节数据传送到外RAM中以1000H为起始地址的存储区。

在内RAM的30H-40H随意输入数据,调试并运行程序,观察结果。

2、编写程序,查找外部RAM的1020H-1030H单元中是否有0AAH这个数,如果有,将内RAM的30H单元置为01H,否则将30H单元置为00H。

在外RAM中输入数据,运行程序,观察结果。

3、在内部RAM30-5FH单元存放着一组无符号数,编写程序查找出这些无符号数的最大值,将结果存放于60H单元。

在相关单元中输入一些数据,运行程序,观察实验结果。

4、内RAM从40H单元开始的10个单元中存放着单字节带符号数,编程分别统计出正、负数的个数,并存入50H、51H单元中。

三、实验要求:1、实验前充分预习,写出所需程序2、上机将程序调试正确,并分析程序运行结果四、实验报告要求:写出调试正确的程序。

五、思考题:1、汇编语言程序如何测试和调试?2、在子程序调用和返回指令执行时,PC值如何变化?实验八外部中断实验一、实验电路(如图3.3.45所示)图3.3.45 外部中断实验电路原理图二、实验目的1、熟悉51系列单片机2、了解AT89C51 P1口、P3口的使用方法3、了解键盘的原理及使用方法4、了解发光二极管的原理及使用方法5、掌握外部中断的原理及使用方法6、学习AT89C51的编程、仿真、调试、编译、芯片烧录。

对应文件INT.HEX三、实验器材1、单片机主板2、单片机扩展板3、连接导线若干四、实验注意事项1、单片机主板、单片机扩展板接+5V2、因J14为有极性排阻,故单片机扩展板一定要连GND和VCC,否则发光二极管不亮3、图中粗线部分为要求学生自己连线部分五、实验现象正常情况下8个LED发光二极管循环显示,延迟时间为1秒,当有按键按下即产生外部中断时,8个LED发光二极管全亮,延迟时间为2秒。

六、思考请同学们自己试一下外部中断0。

实验定时器中断一、实验电路(如图3.3.46所示)图3.3.46 定时器中断电路原理图二、实验目的1、熟悉51系列单片机2、了解AT89C51 P1口的使用方法3、掌握定时器、计数器的原理及使用方法4、学习AT89C51的编程、仿真、调试、编译、芯片烧录。

相关文档
最新文档