c语言给p1口全部置零,c语言汇编语言 P1口做输出口,正常时控制八只灯(P1口输出低电平 时灯被点亮)每隔0.5秒全亮全...

这篇博客展示了如何使用51单片机配合定时器T0实现按键控制LED灯的闪烁,通过uchar变量和中断处理,通过switch-case语句切换不同LED状态。关键代码包括宏定义、定时器初始化和中断服务函数。

满意答案

02ae427d08e371d7e90d5b995e828d6d.png

dogstar588

2018.03.29

02ae427d08e371d7e90d5b995e828d6d.png

采纳率:48%    等级:9

已帮助:215人

#include

#define uchar unsigned char

uchar cnt,key=0,led1=0x00;led2=0xfe;

sbit key1=P3^6;

sbit key2=P3^7;

void t0isr() interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

cnt++;

cnt%=10;

if(cnt==0)

{

switch(key)

{

case 0:

P1=led1;

led1=~led1;

break;

case 1:

led2=_cror_(led2,1);

P1=led2;

break;

case 2:

P1=led2;

led2=_crol_(led2,1);

}

}

}

main()

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TR0=1;

ET0=1;

EA=1;

while(1)

{

if(key1==0)

{

while(key1==0);

key=1;

}

if(key2==0)

{

while(key2==0);

key=2;

}

}

}

10分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值