#include< reg51.h >
#include< intrins.h > //循环右位移函数库
void delay_10_ms(unsigned int t);
sbitP1_0=P1^0; //P1口为按键
void main(void)
{
unsigned char i;
P0=0x01;
while(1)
{
if(P1_0==0)//按键按下
{
delay_10_ms(1); //利用延时消除抖动
if(P1_0==0)
{
P0=_cror_(P0,1); //P0口为LED //_cror_为字符型循环右位移函数//
while((i<50)&&(P1_0==0))
{
delay_10_ms(50);
}
i=0;
}
}
}
}
void delay_10_ms(unsigned int t)//延时10ms
{
unsigned char k,j;
for(;t>0;t--)
for(k=38;k>0;k--)
for(j=130;j>0;j--);
}
关键字:51单片机 独立按键
引用地址:
51单片机——独立按键
推荐阅读最新更新时间:2024-03-16 14:34
基于51单片机设计的公交车LED屏
一、项目介绍 为了提高公交车站点信息的实时性和准确性,方便乘客及时了解公交车到站信息,从而提高公交出行的便利性和舒适度。传统的公交车到站信息是通过人工喊话或者静态的站牌来实现的,这种方式存在信息不及时、不准确、不方便等问题。当前设计基于STC89C52单片机和MAX7219点阵LED驱动模块的公交车LED屏,通过SYN6288进行语音播报到站信息,可以更加准确地展示到站信息,提高公交出行的效率和便利性。 通过STC89C52单片机控制MAX7219点阵LED驱动模块,将需要显示的信息转化成点阵图像,然后通过MAX7219点阵LED驱动模块控制2*8的LED显示屏显示出来。同时,通过SYN6288语音模块,将到站信息转化成语音播
[单片机]
四位数码管动态显示2020(51单片机)
电路原理图 元件清单 程序(C语言) #include reg51.h unsigned char smg ={0x5b,0x3f,0x5b,0x3f};//2020字形码(共阳极) void delay(unsigned int time); void main() { unsigned char i,W; while(1) { W=0x01; for(i=0;i 4;i++) { P1=W; W =1; P0=smg ; delay(10); } } } void delay(unsigned int time) { unsigned int j=0
[单片机]
STC51单片机流水灯+外部中断蜂鸣器
闲暇之余做了一个简单的流水灯,设计思路先将LED灯从0-7逐个显示,然后再从7-0逐个显示。如果产生外部中断(即按钮按下),则8个LED灯全亮,之后又恢复流水灯状态。 #include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int sbit K=P3^2;//启动按钮,外部中断 uchar led; void delay(uint x) { while(x--); } void XX()//中断设置 { EA=1; EX0=1; } void DD
[单片机]
51单片机上实现的交通灯程序
这是我前几天无聊自己写的交通灯程序,在51单片机上实现的。基本的定时的交通灯转换是实现了,根据时间来改变交通灯的变换。可以下载下来看看的,电路图和原程序都有,代码就自己下载吧。我不全放上了。 单片机源程序: #include sbit beiR=P1^0; sbit beiY=P1^1; sbit beiG=P1^2; sbit nanR=P1^3; sbit nanY=P1^4; sbit nanG=P1^5; uint a,b,c,type,j,i; void Delay(uint x) //延时 { uchar i; while(x--)for(i=0;i《120;
[单片机]
单片机中断问题
简介:51单片机中断不就是中间发生什么事情,跳转到另外一处,执行完在返回么?为什么还要中断专门拿出来用啊,直接跳转指令不就行了么? 首先要搞清中断,就要先说一说单片机P3口的几个引脚;P30到P35是中断的输入引脚。包括串行口、定时器(计数器)、外部中断等等。这些中断的特点是当中断的条件满足时,会执行相应的中断程序。注意中断程序的执行和汇编语言的子程序有一个重要区别:(多数教科书都没提这一点)子程序必须有调用语句ACALL之类的调用它,它才能执行;而中断不是!它是满足中断条件后,自动执行的。比如:定时器计数满;外部中断引脚低电平触发;串行口接受到数据....,此时程序自动跳到中断入口:03H,0BH,....23H。进入中断入
[单片机]
基于MCS-51单片机的智能时钟控制系统设计的技巧
随着电子技术产业结构调整,生产工艺的飞速发展,人们生活水平的不断提高,家用电器逐渐普及,市场对于智能时钟控制系统的需求也越来越大。本文所述智能时钟控制系统主要指时钟显示、时间设置、闹铃及家用电器定时开关机(可扩展功能)等控制系统。 本文采用进入市场时间早、总线开放、仿真开发设备多、芯片及其开发设备价格低廉、速度较快、电磁兼容性较好的MCS-51型单片机为核心实现智能时钟控制。 硬件系统设计 智能时钟控制系统以MCS-51MC3399T兼容单片机AT89C51微处理器为核心,由时钟显示模块、定时控制模块、电源模块等电路组成。 AT89C51微处理器 AT89C51是一款采用ATMEL高密度非易失存储器M
[单片机]
51单片机八路抢答器课程设计
本人的这个设计改进后解决了前一个版本中1号抢答优先的问题,并增加了锦囊的设置,当参赛选手在回答问题时要求使用锦囊,则主持人按下抢答开始键,计时重新开始。 ;八路抢答器电路请看下图是用ps仿真的,已经测试成功 单片机八路抢答器电路图 单片机八路抢答器程序 OK EQU 20H;抢答开始标志位 RING EQU 22H;响铃标志位 ORG 0000H AJMP MAIN ORG 0003H AJMP INT0SUB ORG 000BH AJMP T0INT ORG 0013H AJMP INT1SUB ORG 001BH AJMP T1INT ORG 0040H MA
[单片机]
基于51单片机的温控风扇
设计要求: 1.本设计基于STC89C51/52(与AT89S51/52、AT89C51/52通用,可任选)单片机 • 2.采用DS18B20温度传感器测温(0-99.9°C),三极管驱动数码管显示温度和风扇的档位。 • 3.共3个按键:设置、加、减。按一下设置可以设置上限,再按下设置下限,均可以按键加减调整。 • 4.利用PWM调速,当温度低于下限时,风扇不转动,当温度处于上、下限之间时1档转动(50%的转速),当温度超过上限时,全速转动。 使用说明: 一共3个按键:设置、加、减 按下设置键的时候才可以加减。 按一下设置键,是设置温度的上限,再按下设置键,是设置温度的下限,再按下设置键是退出并保存。 部分程序: #include
[单片机]