单片机STC89C52,P0.1口作为按钮,P1.0连接灯,要求按钮控制灯的亮灭。请设计硬件连接方式和C程序
答案:4 悬赏:20 手机版
解决时间 2021-03-26 07:45
- 提问者网友:疯子也有疯子的情调
- 2021-03-25 22:19
单片机STC89C52,P0.1口作为按钮,P1.0连接灯,要求按钮控制灯的亮灭。请设计硬件连接方式和C程序
最佳答案
- 五星知识达人网友:佘樂
- 2021-03-25 22:26
图我就随便画了,暂时没有专业工具。
#include
sbit KEY = P0^1; //定义按键 按键按下时引脚为低
sbit LED = P1^0; //定义LED脚, 当P1^0为低时 灯亮
void delayms(unsigned int times ) //毫秒延时
{
unsigned int i,j;
for(j=0;j {
for(i=0;i<400;i++)
;
}
}
void main()
{
KEY=1;
LED=1; //初始化按键和灯
while(1)
{
if(KEY==0)
{
delayms(15); //延时15-20MS去抖动
if(KEY==0) LED=0; //此时按键还是低电平表示被按下,灯亮
}
else LED=1; //否则灯不亮
}
}
#include
sbit KEY = P0^1; //定义按键 按键按下时引脚为低
sbit LED = P1^0; //定义LED脚, 当P1^0为低时 灯亮
void delayms(unsigned int times ) //毫秒延时
{
unsigned int i,j;
for(j=0;j
for(i=0;i<400;i++)
;
}
}
void main()
{
KEY=1;
LED=1; //初始化按键和灯
while(1)
{
if(KEY==0)
{
delayms(15); //延时15-20MS去抖动
if(KEY==0) LED=0; //此时按键还是低电平表示被按下,灯亮
}
else LED=1; //否则灯不亮
}
}
全部回答
- 1楼网友:鱼芗
- 2021-03-26 02:08
#include "reg52.h"
#include
#define uchar unsigned char // 为后面编写方便,将 unsigned char 定义为 uchar
sbit KEY = P0^1; // P0.1按钮
sbit LED = P1^0; // P1.0灯
void delay()
{
uchar i,j;
for(i=0; i<20; i++)
for(j=0; j<249; j++)_nop_();
}
void main()
{
LED = 1; //初始化灯灭
while(1)
{
if(KEY==0) //判断按键是否按下
{
delay();
if(KEY==0)
{
while(~KEY); //等待按键释放
LED=~LED; //P1.0电平取反
}
}
}
}
- 2楼网友:往事埋风中
- 2021-03-26 00:48
P1.0口 串个1K电阻,接VCC,然后P0.1口接上拉电阻(10k)到VCC,并个微动开关接地, 需要知道的是 52单片机上电后,默认除P0口外,上电高电平,接上拉电阻是为了让P0口上电高电平;
程序:
#include
#define uchar unsigned char
#define uint unsigned int
void delay(uint x)
{
uchar a,b;
for(a=100;a>0;a--)
for(b=x;b>0;b--);
}
void main()
{
while(1)
{
if(P0=0xfe)
{
P1=0x00;
}
else P1=0xff;
}
}
程序:
#include
#define uchar unsigned char
#define uint unsigned int
void delay(uint x)
{
uchar a,b;
for(a=100;a>0;a--)
for(b=x;b>0;b--);
}
void main()
{
while(1)
{
if(P0=0xfe)
{
P1=0x00;
}
else P1=0xff;
}
}
- 3楼网友:渡鹤影
- 2021-03-25 23:29
单片机是不认识平p1.0 , P1.3 等,你把P1.0改为P1^0 , P1.3改为p^3.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯