要求:
上电灯不亮,按一下按键灯亮,再按一下灯闪烁,再按一下灯闪烁更快,
再按一下灯灭...。
如此循环。
为此,编程如下。
//----------------------------------------------
#include
unsigned char n = 0;
sbit key = P3^4;
sbit led = P0^0;
void delay()
{
unsigned int i, j;
for(i = 0; i < 100; i++) for(j = 0; j < 500; j++);
}
void readkey(void)
{
unsigned char i, j;
if(!key) {
for(i = 0; i < 10; i++)
for(j = 0; j < 120; j++); //延时消抖
if(!key) {
while(!key); //等待按键释放
n++;
n %= 4; //n = 0~3
}
}
}
main()
{
while(1) {
switch(n) {
case 0: led = 1; readkey(); break; //熄灭
case 1: led = 0; readkey(); break; //长亮
case 2: delay(); readkey(); //慢速闪烁
case 3: delay(); readkey(); led = ~led; //快速闪烁
}
}
}
//----------------------------------------------
本程序经过了实践验证,可以满足题目的要求。
关键字:单片机 按键控制灯
引用地址:
51 单片机:按键控制灯亮灭和闪烁
推荐阅读最新更新时间:2024-03-16 16:02
嵌入式RTOS在MSP430单片机上的实现
单片机作为嵌入式信息产品的一个重要应用方面,其使用、设计面临着全新的挑战。一方面,人们对嵌入式产品的要求越来越高,稳定可靠、功能丰富、物美价廉的信息产品将成为人们的首选。另一方面,随着微电子工艺水平的发展,单片机处理器的能力不断提高,从最初的8位单片机到16位,进而32位单片机,功能越来越强大,执行速度越来越快,集成度、精确度也越来越高,应用领域进一步拓宽。可以说,单片机芯片的性能已经能够满足现代人们对嵌入式信息产品的更高要求。为了能将二者有效地结合起来,嵌入式RTOS的软件设计方法也取代了以前的前后台(超循环)设计方法,越来越受到重视和应用。 正如分时操作系统中Linux的出现打破了Windows一统天下的局面一样,
[单片机]
采用ADA4851 放大器和 ADV7180 视频解码器的低成本差分视频接收器
电路功能与优势 本文所述电路如图1所示,它可提供一种低成本、低功耗、单极性、差分接收器。输入的视频信号首先由ADA4851-1处理,然后由视频解码器 ADV7180 转换为数字量。该电路可消除输入视频信号的地电位差所引起的共模噪声和相位噪声,非常适合汽车信息娱乐与视觉安全系统使用。ADA4851系列放大器和 ADV7180 视频解码器均已通过AECQ100认证,二者均为汽车应用的理想产品。 这些放大器具有低功耗、低成本、高速和快速建立特性,特别适合许多重视这些要求的视频应用。为简明起见,图1仅显示了一个放大器,但实际上每路输入均可以根据需要配置多个这种放大器电路。 图1. 采用ADA4851的低成本差分接
[模拟电子]
一种基于低功耗单片机SN8P2711A的移动电源设计
随着3G移动互联网和智能终端的日益普及,随身可携带移动式电子产品越来越多、越来越普及。大屏幕智能手机、平板电脑、笔记本电脑、数码相机等便携式电子产品一般都使用可充电的锂离子供电,但是当电池没电时,就无法使用了。目前数码产品功能日益多样化,使用也更加频繁,如何延长移动电子产品使用时间,发挥其最大功用的问题就尤为重要了。为了保证外出时能让电子产品随时拥有充足的电能,一些用户开始选择移动电源给电子产品充电川。移动电源可以看成一种集储电、供电和充电功能于一体的便携电池充电器,可以给手机、平板电脑、相机等数码产品随时随地充电或待机供电,对移动电源的研究和开发也越来越多。移动电源技术可以说是固定电源技术的一种延伸和发展,本文结合充电器及单片机设
[单片机]
MSP430教程10:MSP430单片机WDT看门狗定时器
看门狗定时器用来防止程序因供电电源、空间电磁干扰或其它原因引起的强烈干扰噪声而跑飞的事故。程序中设置看门狗清零指令 WDTCTL=WDTPW+WDTCNTCL ,当程序跑飞不能及时清零看门狗,导致看门狗溢出复位,这样程序可以恢复正常运行状态。 一、WDT寄存器包括WDTCNT和WDTCTL,两个寄存器在 上电和系统复位内容全部清零 1.记数单元WDTCNT: WDTCNT是16位增记数器,由MSP430选定的时钟电路产生的固定周期脉冲信号对记数器进行加法记数。WDTCNT不能直接软件存取,必须通过看门狗定时器的控制寄存器WDTCTL来控制。 2.控制寄存器WDTCTL: WDTCTL由两部分组成,高8
[单片机]
单片机仿真器是什么?单片机仿真器原理
单片机在体系结构上与PC机是完全相同的,也包括中央处理器,输入输出接口,存储器。 单片机仿真器等基本单元,因而与PC机等设备的软件结构也是类似的。因为单片机在软件开发的过程中需要对软件进行调试,观察其中间结果,排除软件中存在的问题。但是由于单片机的应用场合问题,其不具备标准的输入输出装置,受存储空间限制,也难以容纳用于调试程序的专用软件,因此要对单片机软件进行调试,就必须使用单片机仿真器。单片机仿真器具有基本的输入输出装置,具备支持程序调试的软件,使得单片机开发人员可以通过单片机仿真器输入和修改程序,观察程序运行结果与中间值,同时对与单片机配套的硬件进行检测与观察,可以大大提高单片机的编程效率和效果。 其实仿真器也就是模拟一
[单片机]
基于上位机控制自动接线的单片机实验系统研究
0 引言 对单片机实验系统的基本需求是:在有限的IO 接口上可以进行多个项目的实验。为了实现这个基本需求,在进行多个不同项目实验时,要对单片机各个IO口进行现场重接线。传统的单片机实验装置现场重接线方法有2类: 一类是现场手工插拔自锁紧接插件; 另一类是现场手工插拔积木式实验模块。 这两类接线方式的实质都属于机械式金属接触。单片机实验系统经过较长时间的使用,都难免会发生金属接触件之间的接触不良现象。特别是自锁紧接插件,问题更为严重:即使线芯开路了,从表面也难以通过肉眼发觉。导致实验成功率低下,占用学生甚至指导老师的排故时间,严重影响了实验效果。现代单片机实验或单片机开发都离不开上位机对软件的编译和程序的
[单片机]
单片机固件的"驱动分离"式设计思想
今天跟大家找了一种常见的应用与驱动分离设计的方式,对于目前一些高性能MCU还是值得使用一下的,不过对于原本主频不够高、性能不太强的MCU不建议使用,毕竟这样的设计还是牺牲了一定的性能。 在正规的项目开发中,项目往往是并行开发的,也就是说硬件设计、底层软件设计、应用软件设计等是同步进行的。比如说在开发板上调试模块驱动,在其他平台上调试应用程序再移植到目前这个平台等。 1、为何不见嵌入式软件架构师职位? 在招聘网站搜索架构师,会出现各种系统架构师:web架构师,后台服务端架构师等等,但是唯独很难看到嵌入式软件架构师。嵌入式软件不需要架构吗,驱动不需要架构吗? 答案当然是需要,不过为什么没有这方面的职位? 一般的人会说,小项目才
[单片机]
基于M—BUS的趣低功耗数据采集系统
引 言 随着社会的迅速发展,智能小区逐渐进人人们的生活,而自动抄表系统是智能小区的重要功能之一。在水、电、气管理方面,采用自动抄表技术,不仅能节约人力资源,更重要的是可提高抄表的准确性,减少因估计或誊写而造成帐单出错的现象,使水、电、气管理部门能及时准确获得数据信息。另外用户不再需要与抄表者预约上门抄表时间,还能迅速查询帐单,所以这种技术越来越受到用户欢迎。 针对目前市场上自动抄表系统价格不菲的现状,设计一种由零功耗磁敏传感器产生脉冲信号,利用MSP430系列超低功耗单片机的捕获功能捕获信号的数据采集系统。该采集系统价格相对低廉,性能可靠,适用于水、煤气、电表的远传采集;数据传输总线选用M-BUS,传输速度快、距离远、可
[单片机]