单片机模拟开关灯实验,附程序

合集下载

单个按键控制4个LED 实验报告(带程序)

单个按键控制4个LED 实验报告(带程序)

单个按键控制4个LED(入门级实验)实验介绍:通过单个按键控制4个LED灯的亮灭状态。

正常情况下,一个按键控制1个灯。

在本次实验中,要求使用1个按键,控制4个LED灯。

通过按键按下的次数,控制LED的亮灭状态。

按下1次,1个LED灯点亮,按下2次,2个LED 灯点亮,按下3次,3个LED灯点亮,按下4次,4个LED灯点亮,按下5次,所有LED灯都熄灭,如此循环。

如此就可以通过单个按键控制4个LED灯的亮灭。

在照明场所,控制LED灯的点亮个数,就可以控制亮度。

实验目的:在使用单片机等控制器控制周边元件的时候,经常会遇到I/O口不够用的情况。

因此在使用的时候,尽量省着用。

本次实验通过单个按键控制4个LED灯的亮灭状态,正常情况下需要4个按键,因而达到了节省单片机I/O口的目的。

通过此次实验室,学习单片机按键的编程控制方法,学习LED灯输出的控制方法。

学习最简单的输入设备(按键)控制最简单的输出设备(LED灯)的控制方法。

仿真原理图:在仿真软件Proteus中绘制仿真原理图如上图所示。

(注意事项:在进行实物制作时,发光二极管串联的电阻可以省略,因为单片机引脚灌电流的能力有限,限制了通过发光二极管电流的大小。

在仿真过程中,电阻R2~R9的大小要合适,太大LED将无法点亮。

)编程思路:当单片机上电后,所有的I/O口默认高电平,因而四个发光二极管在单片机上电后,都为熄灭状态。

此时,我们按下按键后,就可以调节各个发光二极管的亮灭状态。

当按一次按钮,将P2口的状态进行左移一位,同时将P2的最低位清零,就可以达到按一次按钮后,LED灯多亮一个。

如,当前只有P2口控制的最低位连接的LED点亮,当我们按一次按键,单片机首先将P2的状态循环左移一位,则刚才的最低位变为次低位,也就是倒数第二位点亮,同时将P2口的最低位清零,也就是倒数第一位连接的LED灯点亮,即按一次按钮后,倒数第一位和倒数第二位灯点亮。

其他状态与上述过程类似,这里不再赘述。

单片机实验报告——LED灯控制器

单片机实验报告——LED灯控制器

单片机实验报告——LED灯控制器
实验名称:LED灯控制器设计与实现
实验目的:
1.学习和掌握单片机的基本原理及其应用;
2.熟悉LED灯控制器的工作原理,并能够实现基本的灯光控制功能;
3.提高动手能力和解决实际问题的能力。

实验原理:
本实验基于单片机来控制LED灯的亮灭,通过按键输入来控制LED灯的工作状态。

实验材料和器件:
1.AT89C51单片机开发板;
2.电源适配器;
3.LED灯;
4.电阻、电容、按键等元器件。

实验步骤:
1.连接电路
将AT89C51单片机开发板与电源适配器连接,并将LED灯与单片机开发板上的GPIO引脚连接。

2.编写程序
使用Keil C编写程序,实现按下按钮时,LED灯亮起,再次按下按钮时,LED灯熄灭。

3.烧录程序
将编写好的程序通过编程器烧录到AT89C51单片机中。

4.运行程序
上电后,按下按钮,观察LED灯的亮灭情况,验证程序的正确性。

5.调试和优化
根据实际情况,对程序进行调试和优化,确保LED灯的控制能够稳定可靠。

实验结果:
经过调试和优化后,LED灯控制器工作正常。

按下按钮时,LED灯亮起,再次按下按钮时,LED灯熄灭,实现了基本的灯光控制功能。

实验总结:
通过本次实验,我对单片机的基本原理和应用有了更深入的了解,学会了使用单片机控制LED灯的方法和技巧。

同时,我也提高了动手实践和解决实际问题的能力。

在今后的学习和工作中,我会继续深入学习单片机的应用,不断提升自己的技术水平。

单片机实验二

单片机实验二

单片机实验报告二系部名称:专业班级:学号:姓名:指导教师:实验成绩日期实验二单片机I/O口实验——模拟开关灯一、实验要求利用单片机、按钮开关和发光二极管,构成一个模拟开关灯的系统。

单片机P3.0引脚接开关,P1.0接发光二极管的阴极,当开关闭合时,发光二极管亮;开关打开时,发光二极管灯灭。

二、实验目的1.了解单片机I/O口输入输出的使用。

2.掌握单片机I/O口位操作的编程。

3.掌握简单的分支程序的设计。

三、实验内容1.开关状态的检测单片机的P3.0脚接有一个按钮开关K,单片机对开关K状态的检测是检测单片机的P3.0端口的输入电平,只有高低电平两种。

当开关K闭合时,即P3.0脚输入为低电平;当开关K打开时,P3.0脚输入为高电平。

2.输出控制使用共阳极发光二极管,阳极接+5V,阴极接P1.0端口。

当P1.0端口输出高电平,即P1.0=1时,这时发光二极管D1熄灭;当P1.0端口输出低电平,即P1.0=0时,这时发光二极管D1亮。

源代码:ORG 00HSTART: JB P3.0,X1CLR P1.0AJMP START X1 : SETB P1.0AJMP STARTEND四、实验结果五、实验心得通过本次实验基本了解了用单片机设计开关灯的工作流程,通过编写汇编程序实现了开关灯的设计,复习并更加掌握汇编语言,进一步掌握了P1口和P3口的功能,复习了汇编语言中跳转指令的用法。

实验中不时出现一些小的错误,让我深刻体会到,理论与实践的差距。

我们应该多做实验,提高自己的动手能力。

单个按键控制4个LED 实验报告(带程序)

单个按键控制4个LED 实验报告(带程序)

单个按键控制4个LED(入门级实验)实验介绍:通过单个按键控制4个LED灯的亮灭状态。

正常情况下,一个按键控制1个灯。

在本次实验中,要求使用1个按键,控制4个LED灯。

通过按键按下的次数,控制LED的亮灭状态。

按下1次,1个LED灯点亮,按下2次,2个LED 灯点亮,按下3次,3个LED灯点亮,按下4次,4个LED灯点亮,按下5次,所有LED灯都熄灭,如此循环。

如此就可以通过单个按键控制4个LED灯的亮灭。

在照明场所,控制LED灯的点亮个数,就可以控制亮度。

实验目的:在使用单片机等控制器控制周边元件的时候,经常会遇到I/O口不够用的情况。

因此在使用的时候,尽量省着用。

本次实验通过单个按键控制4个LED灯的亮灭状态,正常情况下需要4个按键,因而达到了节省单片机I/O口的目的。

通过此次实验室,学习单片机按键的编程控制方法,学习LED灯输出的控制方法。

学习最简单的输入设备(按键)控制最简单的输出设备(LED灯)的控制方法。

仿真原理图:在仿真软件Proteus中绘制仿真原理图如上图所示。

(注意事项:在进行实物制作时,发光二极管串联的电阻可以省略,因为单片机引脚灌电流的能力有限,限制了通过发光二极管电流的大小。

在仿真过程中,电阻R2~R9的大小要合适,太大LED将无法点亮。

)编程思路:当单片机上电后,所有的I/O口默认高电平,因而四个发光二极管在单片机上电后,都为熄灭状态。

此时,我们按下按键后,就可以调节各个发光二极管的亮灭状态。

当按一次按钮,将P2口的状态进行左移一位,同时将P2的最低位清零,就可以达到按一次按钮后,LED灯多亮一个。

如,当前只有P2口控制的最低位连接的LED点亮,当我们按一次按键,单片机首先将P2的状态循环左移一位,则刚才的最低位变为次低位,也就是倒数第二位点亮,同时将P2口的最低位清零,也就是倒数第一位连接的LED灯点亮,即按一次按钮后,倒数第一位和倒数第二位灯点亮。

其他状态与上述过程类似,这里不再赘述。

单片机实验——指示灯开关控制器

单片机实验——指示灯开关控制器

中国石油大学(北京)实验报告实验课程:单片机原理及应用实验名称:实验二——指示灯/开关控制器一、实验目的学习汇编语言指令系统的编程与调试方法二、实验内容1、参照教材图达成实验二电路原理图的绘制;2、依据图的程序流程图编写汇编语言程序;3、利用 ISIS的汇编工具查找并修正程序的语法错误和逻辑错误;4、察看仿真结果,达成实验报告。

三、实验要求1、电路原理图P1 口读取开关状态的工作原理:经过 P1 的读引脚功能来实现,因为 P1 口内设上拉电阻,在开封闭合前读取高电平,经过三态门在输出高电平。

当开封闭合时,因为与地面相连,P1读取低电平,经过三态门在输出低电平。

P1 口输出工作原理:单片机履行写P1,#data 时,数据 data 经过内部总线送入锁存器储藏。

当数据为,则该位锁存器输出Q=1,则非 Q 为 0 ,场效应管截止,进而在引脚上输出高电平;反之,假如数据为0,则 Q=1,非 Q 为 0,场效应管导通,引脚上输出低电平。

P2 口控制 LED 灯的原理也是经过P2 口的输出原理实现的,程序不停把P1 的内容传达给 P2。

当给 P1 口赋初值 0 或开封闭合时,输出 0,P2 口读取 0,在引脚上输出低电平,由原理图中 LED的摆放方式知 LED灯低电平导通。

同应当给 P1 口赋初值 #FFH或开关断开时,输出 1,P2 口读取 1,在引脚上输出高电平, LED灯截止,灯灭。

图 1 实验原理电路图2、汇编源程序图 2 汇编源程序3、程序调试过程1.源文件创立与编译( 1)成立新的程序言件单击菜单栏“源代码”—“增加/ 删除源文件”选项,弹出“增加/ 移除源代码”对话框。

在“代码生成工具”下拉框内部选择“ASEM51”选项。

单击“新建”按钮,在适合文件目录下输入待成立程序的文件名(如 text ),核实文件种类为 *ASM 。

单击“翻开”按钮,回应创立新文件提示后,系统弹出确认对话框。

单击“确认”按钮,在菜单“源代码”下可看到近似“的文件名,单击该文件名后可翻开一个空白的文本文件。

51单片机实验报告按钮开关精品文档6页

51单片机实验报告按钮开关精品文档6页

单片机实验制作实验题目:按钮开关应用实验完成时间:2013年5月31日系别:班级:姓名:学号:按钮开关应用实验一、实验目的1.掌握七段LED数码管的结构及工作原理;2.掌握共阳极LED数码管连接方法、及其静态和动态显示方法;3.进一步掌握并行接口芯片8255A的使用方法;4.掌握独立式按键的控制方法的设计。

二、实验器材七段LED数码管 89S51单片机三个按钮开关 30pF的两个微电容 1个0.1uF电容晶振限流电阻(220欧7个、10千欧2个、100千欧1个)导线若干三、实验说明1.按一下PB1按钮,LED数码管会显示一个数字1,再按一下会显示数字2,就这样连续按,数字将会从1依次变到9。

2.按一下PB0按钮(复位键),LED数码管上的数字将会从9归零。

3.按一下PB2按钮,LED数码管上的数字将从0变到9,连续按数字将会从9逐一的变到0。

4.所以此按钮开关的运用可以通过PB1按钮和PB2按钮以及PB0按钮的控制来进行简单的计数功能。

四、实验原理1.七段LED数码管的组成如图1所示,LED数码管由7个发光二极管组成,此外,还有一个圆点型发光二极管(在图中以dp表示),用于显示小数点。

通过七段发光二极管亮暗的不同组合,可以显示多种数字、字母以及其它符号。

LED 数码管中的发光二极管共有两种连接方法:共阳极接法:把发光二极管的阳极连在一起构成公共阳极。

使用时公共阳极接+5V。

这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。

常用的七段LED数码管尺寸与引脚配置图七段LED数码管的七个LED组合图如图12.七段LED数码管的显示代码把发光二极管的阳极连在一起构成公共阳极。

使用时公共阳极接+5V。

这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。

为了显示数字或符号,要为LED显示器提供代码,因为这些代码是为显示字形的,因此称之为字形代码。

七段发光二极管,再加上一个小数点位,共计八段。

单片机设计模拟开关灯单片机应用单片机电路原理图单片机开关灯程序

单片机设计模拟开关灯单片机应用单片机电路原理图单片机开关灯程序
temp=P1>>4;
temp=temp | 0xf0;
P1=temp;
}
}
8. 方法二(汇编源程序)
ORG 00H
START: JB ,NEXT1
CLR
SJMP NEX1
NEXT1: SETB
NEX1: JB ,NEXT2
CLR
SJMP NEX2
NEXT2: SETB
NEX2: JB ,NEXT3
(2). 输出控制
如图3所示,当端口输出高电平,即=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当端口输出低电平,即=0时,发光二极管L1亮;我们可以使用SETB 指令使端口输出高电平,使用CLR 指令使端口输出低电平。
5. 程序框图
图4.2.2
6. 汇编源程序 ORG 00H
START: JB ,LIG
模拟开关灯
1. 实验任务
如图4.2.1所示,监视开关K1(接在端口上),用发光二极管L1(接在单片机端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。
2. 电路原理图
图4.2.1
3. 系统板上硬件连线
(1). 把“单片机系统”区域中的端口用导线连接到“八路发光二极管指示模块” 区域中的L1端口上;
1. 实验任务
如图4.3.1所示,AT89S51单片机的-接四个发光二极管L1-L4,-接了四个开关K1-K4,编程将开关的状态反映到发光二极管上。(开关闭合,对应的灯亮,开关断开,对应的灯灭)。
2. 电路原理图
图4.3.1
3. 系统板上硬件连线
(1. 把“单片机系统”区域中的-用导线连接到“八路发光二极管指示模块”区域中的L1-L4端口上;

洛阳理工单片机实验报告1只LED灯闪烁控制

洛阳理工单片机实验报告1只LED灯闪烁控制

洛阳理工单片机实验报告1只LED灯闪烁控制
本实验利用洛阳理工学院提供的51单片机开发板和Keil编程软件,实现了控制一只LED灯的闪烁。

完成了以下内容:
1. 确定硬件连接
2. 确定软件流程
3. 编写程序代码
4. 下载程序到开发板中测试
5. 总结
1. 确定硬件连接
本次实验使用的硬件为洛阳理工学院提供的51单片机开发板,其主要的硬件连接如下:
- P1口:控制LED灯的亮灭
- VCC口:正电源
- GND口:地
2. 确定软件流程
根据硬件连接,本次实验的软件流程可大致分为以下几步:
- 配置P1口
- 设置LED灯亮、灭的时间间隔
- 循环控制LED灯的闪烁
3. 编写程序代码
下面是本次实验的程序代码:
```c
#include <reg52.h>
sbit LED = P1^0; // 定义LED连接的口
void Delay(unsigned int time) // 等待函数
{
unsigned int i,j;
for(i=0; i<time; i++)
{
for(j=0; j<1275; j++);
}
}
4. 下载程序到开发板中测试
将程序代码编译成HEX文件后,使用下载工具将程序下载到51单片机开发板中。

下载完成后,控制板上的LED灯会开始闪烁。

5. 总结
本次实验学习了51单片机的开发环境和基本语法,并实现了控制一只LED灯闪烁的功能。

在此过程中,对计算机基础和电路原理有了更深入的认识,也加强了是对单片机开发的理解,为以后的学习打下了坚实的基础。

《单片机原理与应用》单片机控制LED灯点亮实验

《单片机原理与应用》单片机控制LED灯点亮实验

《单片机原理与应用》单片机控制LED灯点亮实验一、实验目的和要求1、熟悉protues软件的使用和protues和Keil软件的联调2、学习P1口的使用方法3、学习延时子程序的编写和使用二、实验内容和原理单片机的IO口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知当IO口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据是不正确的。

1、在Protues软件中完成单片机最小应用系统和LED指示灯显示电路2、打开Keil uVision2仿真软件,首先建立本实验的项目文件,输入源程序(课前预习程序),进行编译,直到编译无误,生成hex文件3、实现protues和keil的在线联调,完成LED灯的闪烁(亮1秒,灭1秒)。

三、主要仪器设备电脑、keil c51、Protues软件四、操作方法与实验步骤(1)提前阅读与实验2相关的阅读材料;(2)参考实验2电路原理图和元件清单,在ISIS中完成电路原理图的绘制;(3)加载可执行文件,观察仿真结果,检验电路图绘制的正确性。

五、实验数据记录和处理Keil代码:电路图:六、实验结果与分析仿真结果:上板实操结果:实验分析:1.如上图,实现了protues和keil的在线联调,完成LED灯的闪烁(亮1秒,灭1秒)。

2.硬件电路分析关于51单片机P0双向I/O口使用:P0口为双向IO口,驱动负载能力强,因此本实验采用P0作为八位共阴极数码管的段选口。

但是其输出时为漏极开路输出,需要加一个上拉电阻六、讨论和心得经过本次单片机实验,我熟悉了protues软件的使用和protues和Keil软件的联调,掌握了P1口的使用方法以及延时子程序的编写和使用.在这次实验中我认为最宝贵的还是让我学会了解决问题,突破瓶颈的方法。

将理论知识合理应用到实践中,才是我们学习的目标。

试验2指示灯开关控制器

试验2指示灯开关控制器
洛阳理工学院实验报告
系别
计算机与信息工程系
班级
B110508
学号
B11050825
姓名
洪银江
课程名称
单片机原理及应用
实验日期
实验名称
指示灯/开关控制器
成绩
实验目的:学习51单片机I/O口基本输入/输出功能,掌握C51语言的编程与调试方法。
实验条件:有uVision4编译软件和ISIS 7 Professional仿真软件的电脑。
一实验内容:
(1)熟悉ISIS模块的C51语言程序编辑、编译与调试过程;
(2)完成本实验的C51语言程序的设计与编译;
(3)练习ISIS汇编程序调试方法,并最终实现实验2的预期功能。
二实验步骤:
(1)提前阅读与本实验相关的阅读材料;
(2)参考书上原理图,在ISIS中完成电路原理图的绘制;
(3)参考书上程序框图编写程序;
(4)利用ISIS的汇编调试功能检查程序的语法和逻辑错误;
(5)观察仿真结果,检查程序与电路的正确性。
三仿真电路:
四仿真运行截图:
五实验总结:通过本每次实验我熟悉ISIS模块的C51语言程序编辑、编译与调试过程,以及完成本实验的C51语言程序的设计与编译,并且练习ISIS汇编程序调试方法,最终实现实验。实现了8只发光二极管整体闪烁3次,而且实现了对应的开关控制对应的灯的亮或者熄灭。

单片机简易信号灯实验报告

单片机简易信号灯实验报告

单片机简易信号灯实验报告背景信号灯是城市交通管理中常见的设备,用于指示车辆和行人何时可以通行。

在本实验中,我们使用单片机来模拟一个简易的信号灯系统。

通过控制LED灯的亮灭,实现红、黄、绿三种状态的切换。

实验目的1.掌握单片机IO口输出控制方法;2.理解并能够编写简单的程序控制LED灯的亮灭;3.实现一个基本的信号灯系统。

实验材料•STC89C52 单片机开发板•LED 灯(红、黄、绿各1个)•电阻•连接线实验原理与分析单片机IO口输出控制方法单片机通过IO口来控制外部设备,其中有两种常见的方式: 1. 直接驱动:将IO 口设置为输出模式,并将电平设置为高或低,以直接驱动外部设备。

2. 经过放大驱动:通过外部元件(如三极管)放大电流,再驱动外部设备。

在本实验中,我们使用直接驱动方式来控制LED灯。

LED 灯驱动原理LED(Light Emitting Diode)是一种能够发光的二极管。

当正向电压施加在LED 上时,电子和空穴结合并释放出光子,产生可见光。

LED灯有两个引脚,其中一个是正极(长脚),另一个是负极(短脚)。

为了使LED灯正常工作,需要限流电阻来控制通过LED的电流。

通常情况下,使用220欧姆的电阻与LED串联,以限制电流在安全范围内。

信号灯系统设计信号灯系统由红、黄、绿三个状态组成。

每个状态持续一定时间后切换到下一个状态。

在本实验中,我们使用单片机控制三个LED灯分别表示红、黄、绿三种状态。

通过程序控制IO口输出高低电平来实现LED灯的亮灭。

具体设计如下: - 当红灯亮时,其他两个灯应该熄灭; - 当黄灯亮时,其他两个灯应该熄灭; - 当绿灯亮时,其他两个灯应该熄灭。

实验步骤1.连接硬件:将单片机开发板上的IO口与对应的LED灯连接,在LED与单片机之间串联220欧姆电阻。

2.编写程序:使用C语言编写程序,通过控制IO口输出高低电平来实现信号灯的切换。

3.烧录程序:使用烧录器将程序烧录到单片机中。

指示灯开关控制器的实验报告

指示灯开关控制器的实验报告

嘉应学院物理单片机原理及应用 ----基于Proteus和Keil C实验报告实验项目:实验地点:班级:姓名:座号:实验时间:年月日实验二指示灯/开关控制器【实验目的】学习汇编语言的编程与调试方法【实验原理】下图为指示灯/开关控制器的电路原理图。

图中输入电路由外接在P1口的8只开关组成;输出电路由外接P2口的8只发光二极管组成。

此外,还包括时钟电路和复位电路。

程序启动后,8只发光二极管先整体闪烁3次(即亮—暗—亮—暗—亮—暗,间隔时间以肉眼可观察到为准)。

然后根据开关状态控制对应发光二极管的亮灯状态,即开关闭合相应灯亮,反之则相反。

【实验内容】(1)熟悉Proteus软件,了解软件的结构组成与功能;(2)学习汇编语言的程序设计方法;(3)学会程序录入、编译和调试;(4)理解单片机程序控制原理,实现指示灯/开关控制器的预期功能。

【实验步骤】(1)在ISIS中绘制电路原理图,按照表中元件添加到编辑环境中;(2)编写语言程序;(3)利用调试功能检查程序的语法和逻辑环境中;(4)观察仿真结果,检验程序与电路的正确性。

1、启动Proteus的ISIS模块从Windows开始菜单启动Proteus的ISIS模块后,可进入该软件的主界面,如图:2、选择元器件单击图中左侧的对象选择按钮“P”,可弹出“Pick Devices”元件选择窗口,利用”Keywords”检索框可查找所需的元器件,例如输入“80C51”,系统会在对象库中进行查找,并将搜索结果显示在“Results”列表框中,双击元件后,该元件会出现在对象选择列表窗口中里。

利用此方法可继续选择其他元件。

欲退出选择,单击“OK”按钮,关闭元件选择窗口,返回到主界面。

如图:5、编辑元器件属性双击元器件下面的<TEXT>框进入元器件属性编辑对话框,并且单击“Label”和“Style”选项卡,可以给元件标号。

6、对原理图布线(1)画导线根据自己决定走线路径,单击第一个元器件的连接点,然后在希望放置拐点的地方单击,最后单击另一个元器件的连接点即可。

51单片机C语言实验及实践教程1

51单片机C语言实验及实践教程1

51单片机C语言实验及实践教程第一章:硬件资源模块第二章:keil c 软件使用at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅1.闪烁灯at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅2.模拟开关灯at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅3.多路开关状态指示at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅4.广告灯的左移右移at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅5.广告灯(利用取表方式)at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅6.报警产生器at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅7.I/O并行口直接驱动LED显示at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅8.按键识别方法之一at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅9.一键多功能按键识别技术at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅10.00-99计数器at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅11.00-59秒计时器(利用软件延时)at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅12.可预置可逆4位计数器at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅13.动态数码显示技术at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅14.4×4矩阵式键盘识别技术at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅15.定时计数器T0作定时应用技术(一)at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅16.定时计数器T0作定时应用技术(二)at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅17.99秒马表设计at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅18.“嘀、嘀、……”报警声at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅19.“叮咚”门铃at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅20.数字钟(★)at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅21.拉幕式数码显示技术at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅22.电子琴at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅23.模拟计算器数字输入及显示at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅24.8×8LED点阵显示技术at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅25.点阵LED“0-9”数字显示技术at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅26.点阵式LED简单图形显示技术at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅27.ADC0809 A/D转换器基本应用技术at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅28.数字电压表at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅29.两点间温度控制at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅30.四位数数字温度计at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅31.6位数显频率计数器at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅32.电子密码锁设计at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅33.4×4键盘及8位数码管显示构成的电子密码锁at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅34.带有存储器功能的数字温度计-DS1624技术应用at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅35DS18B20数字温度计使用第一章AT89S51单片机实验及实践系统板简介AT89S51单片机实验及实践系统板(以后简介系统板)集成多个硬件资源模块,每个模块各自可以成为独立的单元,也可以相互组合,因此,可以为不同阶层的单片机爱好者及单片机开发者提供不同的开发环境。

基于单片机模拟开关灯的设计

基于单片机模拟开关灯的设计

西京学院毕业设计(论文)题目: 基于单片机模拟开关灯的设计姓名: 汤旭虎系(院): 机电工程系专业: 机电一体化技术班级: 机电一体化090 1班学号: 0911080152指导老师: 张永超日期:摘要为了适应发展,更好的锻炼自己,使理论和实践更好的结合,根据学校指示在之际,做了这次毕业设计。

毕业设计是高职教学过程中一个十分重要的环节,是锻炼学生运用所学知识正确分析解决实际问题的一个重要方面,也是高职培养应用型专业人才的要求。

我们本着一切从实出发的方针,严肃认真,独立思考,自己动手,实事求是的态度完成毕业设计。

在指导老师的大力帮助下运用自己所学知识做了这个设计。

这次设计充分体现了学院“诚健博能”的思想。

作为机电专业的学生,非常有必要通过实际产品的设计和制作,了解现代产品的开发全流程。

全面提高机,电,算知识的综合应用能力,掌握从系统级,电路级,到芯片级各个层次的设计和实现手段。

基于上述原因,选择此设计课题,在此设计过程中,我们将会用到多门学科的理论知识,将对以前所学的知识做一个全面的复习和巩固,更重要的是培养了发现问题,分析问题,解决问题的能力,还有动手能力,也是一次很好的实践,对以后的学习和工作也会有所帮助。

目录第一章绪论1.1单片机的发展及应用............................................................................. 错误!未定义书签。

1.2单片机开发的意义 ................................................................................. 错误!未定义书签。

第二章设计与分析2.1设计原理 (6)2.2硬件设计 (7)2.3软件设计 (14)第三章设计总结3.1....................................................................................................................... 错误!未定义书签。

03实验三模拟开关灯实验

03实验三模拟开关灯实验

03实验三模拟开关灯实验#include <reg52.H>sbit AN17=P1^7;sbit LED10=P1^0;void main(void){while(1){if(AN17==0){LED10=0; //灯亮}else{LED10=1; //灯灭}}} 04实验四多路开关状态指示#include <A T89X51.H>void main(void){while(1) {if(P1_4==0){P1_0=0;}else{P1_0=1;}if(P1_5==0){P1_1=0;}else{P1_1=1;}if(P1_6==0){P1_2=0;}else{P1_2=1;}if(P1_7==0){P1_3=0;}else{P1_3=1;}}}07实验七报警产生器实验#include <A T89X51.H>#include <INTRINS.H>bit flag;unsigned char count;void dely500(void){unsigned char i;for(i=250;i>0;i--){_nop_();}}void main(void){while(1){if(P1_7==0){for(count=200;count>0;count--){P2_7=~P2_7;dely500();}for(count=200;count>0;count--){P2_7=~P2_7;dely500();dely500();}}}}08实验八独立按键识别方法#include <A T89X51.H>unsigned char count;void delay10ms(void){unsigned char i,j;for(i=20;i>0;i--)for(j=248;j>0;j--);}void main(void){while(1){if(P1_7==0){delay10ms();if(P1_7==0){count++;if(count==16){ count=0; }P1=~count;while(P1_7==0);}}}}09实验九按键控制LED亮灭实验#include <A T89X51.H>sbit AN17=P1^7;sbit LED10=P1^0;void delay10ms(void){unsigned char i,j;for(i=20;i>0;i--)for(j=248;j>0;j--);}void main(void){while(1){if(AN17==0){delay10ms();if(AN17==0){LED10=~LED10; //改变一次输出P1.0的高低电平while(AN17==0); //等待按键AN17释放}}} }10实验十按键输出“嘀”提示音实验#include <A T89X51.H>sbit AN17=P1^7;sbit BUZ=P2^7;void delay10ms(void){unsigned char i,j;for(i=20;i>0;i--)for(j=248;j>0;j--);}void main(void){while(1){if(AN17==0){delay10ms();if(AN17==0){BUZ=~BUZ; //改变一次输出P2.7的高低电平delay10ms();delay10ms();delay10ms();BUZ=~BUZ; //改变一次输出P2.7的高低电平while(AN17==0); //等待按键AN17释放}}}}11实验十一按键控制继电器实验#include <A T89X51.H>sbit AN17=P1^7;sbit AN16=P1^6;sbit JD1=P3^3;sbit JD2=P3^4;void delay10ms(void){unsigned char i,j;for(i=20;i>0;i--)for(j=248;j>0;j--);}void main(void){while(1){if(AN17==0){delay10ms();if(AN17==0){JD1=~JD1; //改变一次输出P3.3的高低电平while(AN17==0); //等待按键AN17释放}}if(AN16==0){delay10ms();if(AN16==0){JD2=~JD2; //改变一次输出P3.4的高低电平while(AN16==0); //等待按键AN16释放}}}}12实验十二一键多功能按键识别技术#include <A T89X51.H>unsigned char ID;void delay10ms(void){unsigned char i,j;for(i=20;i>0;i--)for(j=248;j>0;j--);}void delay02s(void){unsigned char i;for(i=20;i>0;i--){delay10ms();}}void main(void){ while(1){ if(P1_7==0){delay10ms();if(P1_7==0){ID++;if(ID==4){ID=0;}while(P1_7==0);}}switch(ID){ case 0:P1_0=~P1_0;delay02s();break;case 1:P1_1=~P1_1;delay02s();break;case 2:P1_2=~P1_2;delay02s();break;case 3:P1_3=~P1_3;delay02s();break;}}}。

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

2.模拟开关灯
1.实验任务
如图4.2.1所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。

2.电路原理图
图4.2.1
3.系统板上硬件连线
(1).把“单片机系统”区域中的P1.0端口用导线连接到“流水灯”区域中的L1端口上;
(2).把“单片机系统”区域中的P3.0端口用导线连接到“独立键盘”区域中的K1端口上;
4.程序设计内容
(1).开关状态的检测过程
单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号,
而输入的信号只有高电平和低电平两种,当拨开开关K1拨上去,即输入高电平,
相当开关断开,当拨动开关K1拨下去,即输入低电平,相当开关闭合。

单片机
可以采用JB BIT,REL或者是JNB BIT,REL指令来完成对开关状态的检测
即可。

(2).输出控制
如图3所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导
电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,
发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0端口输出高电平,使
用CLR P1.0指令使P1.0端口输出低电平。

5.程序框图
图4.2.2
6.汇编源程序
ORG 00H
START: JB P3.0,LIG
CLR P1.0
SJMP START
LIG: SETB P1.0
SJMP START
END
7.C语言源程序
#include <A T89X51.H>
sbit K1=P3^0;
sbit L1=P1^0;
void main(void)
{
while(1)
{
if(K1==0)
{
L1=0; //灯亮
}
else
{
L1=1; //灯灭
}
}
}。

相关文档
最新文档