我为51单片机的独立按键设计了一个用独立按键控制LED的程序,求大神看看程序有没有什么能够优化的地方。

在51单片机中用c语言keil写程序实现用一个按键控制8个灯的亮和灭(按下按键全部灯亮,按下按键全_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
在51单片机中用c语言keil写程序实现用一个按键控制8个灯的亮和灭(按下按键全部灯亮,按下按键全
在51单片机中用c语言keil写程序实现用一个按键控制8个灯的亮和灭(按下按键全部灯亮,按下按键全部灯灭)单片机芯片at80c51
P1 口放一个按键
P2口放8个灯
我有更好的答案
//按键void delay(unsigned int time){
unsigned int i,j;
for(i=0; i&time#include&reg52.h& j++)
{;}}void mian(){
unsigned int temp =0x00;
if(key == 0)
delay(20);//适当延时;sbit key = P1^0; i++)
for(j=0; j&1000
采纳率:37%
我做单片机设计的可以
读取P1口值,判断按键状态,从P2口输出0x00,或0xff。
为您推荐:
其他类似问题
51单片机的相关知识
换一换
回答问题,赢新手礼包//以下程序都是在VC++6.0上调试运行过的程;//程序在关键的位置添加了注释;//用//11111代表;//;/***********************;*实验名:左右流水灯实验;*使用的IO:LED使用P2,键盘使用P3.1*;************************;#
//以下程序都是在VC++6.0 上调试运行过的程序,没有错误,没有警告。 //单片机是STC89C52RC,但是在所有的51 52单片机上都是通用的。51只是一个学习的基础平台,你懂得。 //程序在关键的位置添加了注释。 //用//11111代表第一个程序。//2代表第二个程序,以此类推 //1111111 //1111111 /******************************************************************************* * 实 验 名
: 左右流水灯实验 * 使用的IO
: LED使用P2,键盘使用P3.1 * 实验效果
: 按下K1键, * 注
: *******************************************************************************/ #include #include
#define GPIO_LED P2 sbit K1=P3^1; void Delay10ms( );
//延时10ms
/******************************************************************************* * 函 数 名
: main * 函数功能
: 主函数 * 输
: 无 *******************************************************************************/ void main(void) {
unsigned int i,j;
GPIO_LED=j;
//检测按键K1是否按下
Delay10ms(); //消除抖动
j=_cror_(j,1);
while((i<50)&&(K1==0))
//检测按键是否松开
Delay10ms();
} /******************************************************************************* * 函 数 名
: Delay10ms * 函数功能
: 延时函数,延时10ms * 输
: 无 *******************************************************************************/ void Delay10ms(void)
//误差 0us {
unsigned char a,b,c;
for(c=1;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--); }
//222 //222 /********************************************************************************* *实 验 名
:外部中断实验 *注
:由于P3.2口跟红外线共用,所以做按键实验时为了不让红外线影响实验效果,最好把红外线先 *取下来。 *实验效果
:K3按下LED左循环,K4按下LED变右循环 * *********************************************************************************/ #include #include
#define GPIO_LED P2 //外部中断的IO sbit K3=P3^2; sbit K4=P3^3;
void IntConfiguration(); void Delay(unsigned int n); unsigned char KeyValue=0; /******************************************************************************* * 函 数 名
: main * 函数功能
: 主函数 * 输
: 无 *******************************************************************************/ void main(void) {
GPIO_LED=0X
IntConfiguration();
if(KeyValue)
GPIO_LED=_crol_(GPIO_LED,1);
GPIO_LED=_cror_(GPIO_LED,1);
Delay(2000);
} /******************************************************************************* * 函 数 名
: IntConfiguration() * 函数功能
: 设置外部中断 * 输
: 无 *******************************************************************************/ void IntConfiguration() {
//设置INT0
IT0=1;//跳变沿出发方式(下降沿)
EX0=1;//打开INT0的中断允许。
//设置INT1
EA=1;//打开总中断
} /******************************************************************************* * 函 数 名
: Delay(unsigned int n) * 函数功能
: 延时 * 输
: 无 *******************************************************************************/
void Delay(unsigned int n)
//延时50us误差 0us {
unsigned char a,b;
for(;n>0;n--)
for(b=1;b>0;b--)
for(a=22;a>0;a--);
} } /******************************************************************************* * 函 数 名
: Int0() interrupt 0 * 函数功能
: 外部中断0的中断函数 * 输
: 无 *******************************************************************************/
void Int0() interrupt 0
//外部中断0的中断函数 {
//延时消抖
KeyValue=1; } /******************************************************************************* * 函 数 名
: Int1() interrupt 2 * 函数功能
: 外部中断1的中断函数 * 输
: 无 *******************************************************************************/
void Int1() interrupt 2
//外部中断1的中断函数 {
//延时消抖
KeyValue=0;
} 三亿文库包含各类专业文献、幼儿教育、小学教育、高等教育、各类资格考试、生活休闲娱乐、51单片机独立按键程序查询法和外部中断两种49等内容。 
 51单片机外部中断实验_信息与通信_工程科技_专业资料。AT89c51单片机外部中断实验...按键中断 【硬件接法】 P1.1控制LED,低电平点亮 P3.3/INT1接按键,按下时...  51单片机中断程序大全_电子/电路_工程科技_专业资料。//实例 42:用定时器 T0 ...等待查询 { while(TF0==0) //如果未计满就等待 { if(S==0) //按键 S...  51独立按键程序查询法和外部中断_信息与通信_工程科技_专业资料。//以下程序都是在 VC++6.0 上调试运行过的程序,没有错误,没有警告。 //单片机是 STC89C52RC...  51单片机_独立按键检测 4页 免费 51单片机 按键 外部中断 2页 免费 51单片机独立按键程序查... 5页 免费 51 汇编独立按键查询 暂无评价 1页 免费 经典按键防...  把外部中断源送到单片机的某个输入输出端口,这 样当外部中断时,通过“或非”(与)门引起单片机中断,在中断服务程序中再通 过软件查询,进而转相应的中断服务程序。...  7、设计一个以 AT89C51 单片机为核心的系统,如果不外扩程序存储器,使其内部...为 独立式键盘 和行列式键盘,其中行列式键盘的按键 识别方法有扫描法和线反转法...  单片机上的按键控制一般采用两种控制方法:中断和查询...按键的识别可采用行扫描法和线反转法,这里采用简单...(51 单片机) #include&reg51.h& #define uchar ...  51单片机中断系统程序实例_工学_高等教育_教育专区。...IE = interrupt 中断 不知道全拼,要去猜,去查。这样...有两个外部中断源,分别是 INT0 和 INT1,分别从 ...51单片机键盘设置_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
51单片机键盘设置
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩26页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 单片机的独立按键 的文章

 

随机推荐