标题:
这个单片机程序怎么改,使K1为模式选择键,K2调整秒值的个位,K3调整秒值的十位
[打印本页]
作者:
panhd
时间:
2021-12-1 20:51
标题:
这个单片机程序怎么改,使K1为模式选择键,K2调整秒值的个位,K3调整秒值的十位
#include<reg51.h>
sbit S1 = P1^0;//K1模式选择键,按一次为设置倒计时间模式,按第二次为启动倒计时模式
sbit S2 = P1^1;//K2调整秒值的个位
sbit S3 = P1^2;//K3调整秒值的十位
unsigned char code Tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char int_time;
unsigned char second;
void delay(void)
{
unsigned char i;
for(i=0;i<200;i++) ;
}
void DisplaySecond(unsigned char k)
{
P0=Tab[k/10];
P2=0x01;
delay();
P2=0xfc;
P0=Tab[k%10];
P2=0x02;
delay();
P2=0xfc;
}
void main(void)
{
TMOD=0x01;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
EA=1;
ET0=1;
TR0=1;
int_time=0;
second=99;
while(1)
{
DisplaySecond(second);
while(second==0)
DisplaySecond(second);
}
}
void interserve(void ) interrupt 1 using 1
{
TR0=0;
int_time ++;
if(int_time==20)
{
int_time=0;
second--;
}
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
TR0=1;
if(second==0)
TR0=0;
}
复制代码
作者:
panhd
时间:
2021-12-1 20:52
求大神帮一下忙
作者:
天ノ忆
时间:
2021-12-2 17:52
char keySeclet()
{
static char mode_count;
if(S1 == 1) {
delay_ms(10);//10ms消抖
if(S1 == 1) {
mode_count ++;
switch(mode_count){
case 0:
return 1;//1表示模式1
case 1:
return 2;//2表示模式2
case 2:
mode_count = 1;
return 1;
}
}
}
if(S2 == 1) {
delay_ms(10);//10ms消抖
if(S2 == 1) {
second += 10;
}
}
if(S3 == 1) {
delay_ms(10);//10ms消抖
if(S3 == 1) {
second += 1;
}
}
return mode_count;
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1