能问您个关于单片机的问题吗?大神,求解答啊!
#include<reg52.h>
sbit KG=P0^0;
void SendByte(unsigned char dat)
{
SBUF = dat;
while(!TI);
TI = 0;
}
void Delay(unsigned int t)
{
while(--t);
}
void main()
{
SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收
TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装
TH1 = 0xFD; // TH1: 重装值 9600 波特率 晶振 11.0592MHz
TR1 = 1; // TR1: timer 1 打开
EA = 1; //打开总中断
KG=0;
while(1)
{
if(KG==0)
{
Delay(60000);
SendByte(0);
}
}
}
自锁开关就是摁一下是一直一种通的状态,再摁一下后变成一直断的状态 展开
{
SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收
TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装
TH1 = 0xFD; // TH1: 重装值 9600 波特率 晶振 11.0592MHz
TR1 = 1; // TR1: timer 1 打开
EA = 1; //打开总中断
// KG = 0;----不可输出0
while(1) {
if(KG==0) { //如果按下
Delay(100); //延时消抖
if(KG==0) //确实按下了
SendByte(0);//发送
while(KG==0); //等待再次按下,把按键释放
SendByte(2);//释放后,再发送一个
}
}
}
}
sbit KG=P0^0;
void SendByte(unsigned char dat)
{
SBUF = dat;
while(!TI);
TI = 0;
}
void Delay(unsigned int t)
{
while(--t);
}
void main()
{
SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收
TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装
TH1 = 0xFD; // TH1: 重装值 9600 波特率 晶振 11.0592MHz
TR1 = 1; // TR1: timer 1 打开
EA = 1; //打开总中断
KG=0;
while(1)
{
while(KG==1);
SendByte(0);
while(KG==0);
SendByte(1);
}
}
#include<reg52.h>
sbit KG=P0^0;
void SendByte(unsigned char dat)
{
SBUF = dat;
while(!TI);
TI = 0;
}
void Delay(unsigned int t)
{
while(--t);
}
void main()
{
unsigned char key_status = 0;
SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收
TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装
TH1 = 0xFD; // TH1: 重装值 9600 波特率 晶振 11.0592MHz
TR1 = 1; // TR1: timer 1 打开
EA = 1; //打开总中断
/*若单片机可配置模式请根据实际电路配置上拉或下拉或开漏模式*/
/*如果是89C51系列的单片机,当IO口做输入功能时,建议此处改为KG=1;*/
KG=0;
while(1)
{
if(KG==0)
{
Delay(60000);
if(key_status == 0 )
{
key_status = 1;
SendByte(0);
}
}
else
{
key_status = 0;
}
}
}