帮帮忙,实在不会做这个:用AT89C52的P0口接8个发光二极管,开关K1和K2分别连至单片机引脚P3.2和P3.3。

作者&投稿:却青 (若有异议请与网页底部的电邮联系)
用AT89C52的p0口接8个发光二极管,在p3.2引脚接一个按钮,每按一次,发光二极管亮一个,顺~

有原理图吗
可以发给我
我会写

就是P2.0开关按制P0.0的LED ....这样?
连接图很得简单的,一般用低电平点亮。LED阴极接P0口,串一500欧电阻再接到+5V。
开关一端如此P2口,另一端接地。
你的LED有没选错模型?要用LED-RED等后面带颜色的才会亮。
你能确定你的程序没错?

其实这个程序很简单的,没有那么长的,更没有那么复杂呀。很简单的事,为什么要搞得那么复杂呢?

见下图和程序:

#include <reg52.h>
sbit k1=P3^2;
sbit k2=P3^3;
bit  glint;  //闪烁标志位
void delay()
{
 unsigned int i;
 for(i=12000;i>0;i--);
}
main()
{
 while(1)
 {
  if(glint==1)
  {
   P0=~P0;
   delay();
  }
  if(k1==0)
  {
   glint=0; //停止闪烁
   P0=0;    //全亮
   while(k1==0);
  }
  if(k2==0)
  {
   glint=1;  //开始闪烁
   while(k2==0);
  }
 }
}



啊!这个很简单啊,兄弟。你行的,加油!

/*-----------------------------------------------
------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动,
//头文件包含特殊功能寄存器的定义
#define LED P0
sbit KEY1=P3^2;
sbit KEY2=P3^3;// 用define 和sbit 关键字 定义 LED到P0端口,
//LED是自己任意定义且容易记忆的符号
void DelayUs2x(unsigned char t);
void DelayMs(unsigned char t);
unsigned char KeyScan(void);//函数声明
/*------------------------------------------------
主函数
------------------------------------------------*/
void main (void)
{
unsigned char num = 0;

while (1) //主循环
{
num=KeyScan();
switch(num)
{
case 1:
LED=0xff;
break;
case 2:
LED=0x00; //将P0口赋值 0x00
DelayUs2x(10000); //调用延时程序;更改延时数字可以更改延时长度; //用于改变闪烁频率
LED=0xff; //将P0口赋值 0xff
DelayUs2x(10000);
break;
default:
break;
}
DelayMs(1);
}
}
/*------------------------------------------------
uS延时函数,含有输入参数 unsigned char t,无返回值
unsigned char 是定义无符号字符变量,其值的范围是
0~255 这里使用晶振12M,精确延时请使用汇编,大致延时
长度如下 T=tx2+5 uS
------------------------------------------------*/
void DelayUs2x(unsigned char t)
{
while(--t);
}
/*------------------------------------------------
mS延时函数,含有输入参数 unsigned char t,无返回值
unsigned char 是定义无符号字符变量,其值的范围是
0~255 这里使用晶振12M,精确延时请使用汇编
------------------------------------------------*/
void DelayMs(unsigned char t)
{

while(t--)
{
//大致延时1mS
DelayUs2x(245);
DelayUs2x(245);
}
}
/*------------------------------------------------
按键扫描函数,返回扫描键值
------------------------------------------------*/
unsigned char KeyScan(void)
{
/********************************************************/
if(!KEY1) //如果检测到低电平,说明按键按下
{
DelayMs(10); //延时去抖,一般10-20ms
if(!KEY1) //再次确认按键是否按下,没有按下则退出
{
while(!KEY1);//如果确认按下按键等待按键释放,没有则退出
{
return 1;
}
}
}
/********************************************************/
else if(!KEY2) //如果检测到低电平,说明按键按下
{
DelayMs(10); //延时去抖,一般10-20ms
if(!KEY2) //再次确认按键是否按下,没有按下则退出
{
while(!KEY2);//如果确认按下按键等待按键释放,没有则退出
{
return 2;
}
}
}
else
return 0;
return 0 ;
}


请大神来帮看这道大学物理题目,在线等。实在不会做。
dr粗\/dt ---位置矢量对时间的变化率 即 速度矢量 |dr粗\/dt|---位置矢量对时间的变化率的大小 即速度大小 ds\/dt 路程对时间的变化率 即 瞬时速率 dr细\/dt 位置矢量的大小 对时间的变化率 ,在极坐标系中 表示 径向速度大小 d|r粗|\/dt 位置矢量的大小 对时间的变化率,...

英语高手帮忙做一下“英语改错题”吧,我实在不会做,谢谢您的帮助。
2.to think→thinking (考点: can't help doing sth. 禁不住做某事)3.five-speeds→five-speed (数词+名词,用连字符连起来做复合形容词时,其中的名词必须用单数.故five-speeds改为five-speed.)4.By reading →If you had read (由could have been avoided可知,这是对过去情况的虚拟,因此前面...

农村老人去世,以前乡亲都去帮忙,现在没人帮忙了,以后怎么办?
因此之下,现在很多村民在村子里出了白事,是回家帮忙的。 第二,现在年轻人不会做,不愿意做这事。 以前的时候,在村子里家族是很大的,还有村子里几个家族进行联姻,这样就形成了,一家有事家家帮忙的局面。但是现在来看,很多年轻人也是走出乡村,来到城市里发展,而村子里浓浓的乡亲味也变得逐渐平淡了下来。 而现在...

领导安排你经常找同事帮忙做你的一项工作,你会不会每次需要他帮忙的时...
虽然领导有安排可以经常叫同事帮忙做我的一项工作,但我不会动不动就去他帮忙,除非实在忙不过来,非他帮忙不可才会叫!必定同事之间要保持点距离,互相尊重比较好,不要说能用的就一直用,这样对立面会很反感

同事总是把自己不会的工作交给你做,应该做还是拒绝?
当然是拒绝啊,如果每次同事把不会的工作都交给你做,那你岂不是要累死了,这样不仅增加了你的工作压力,也不利于同事工作的长进啊。一个人如果遇到不会的东西就去找别人帮忙做,反而自己不去钻研,那时间长了,害得就是自己。工作中遇到不会的工作很正常,可以找同事或者领导请教,但绝不是让别人来...

上班要轮班做饭,但是我不会,应该怎么说
积极沟通,选择方式,1.承担力所能及的劳动,以抵偿不能做饭的劳动,需要得到所有参与者的认可 2.趁有机会,学习做饭,以后饿不到自己。不在于怎么说,而在于怎么做。

英语作业不会做怎么办?
注重平时的积累,遇到不会的题不可怕,可怕的是没有用心去改变,只要认真学习,一定可以慢慢克服困难的。作业,为学生在上课期间由教学方(教师)布置的任务,也指需要完成的事项。2021年4月,教育部印发《关于进一步加强中小学生体质健康管理工作的通知》,强调着力保障学生每天校内校外各1小时体育活动时间...

请问大家:同级同事经常拿你当下属使唤,你该怎么办?
但心里其实是在窃喜,因为你在「求他帮忙」也就意味着在你眼里,他「非常有用」。 事实上,「资历老」「年纪大」原本就有双面的属性。 对方可以用“我「年纪大」,不会做。”来当做逃避的借口。 可是你同样可以换个场景用“您「经验多」,非您不可”来当做把对方架上去的理由。 一正一反之间,完全就看谁先...

Java题,实在是不会了,帮帮忙?(做的正确,一定会采纳,不会食言)
System.out.println(Arrays.toString(arr));\/\/排序 Arrays.sort(arr);System.out.println(Arrays.toString(arr));\/\/将最大最小值直接替换为要放入的值,然后继续排序 arr[0] = 64;arr[arr.length - 1] = 78;Arrays.sort(arr);System.out.println(Arrays.toString(arr));} 这不直接完事儿了...

帮忙写篇作文,实在不会写...
同时又和掌上型电脑一样,能让您在萤幕上书写文字或画图 (但通常是使用 Tablet 画笔而不是手写笔)。它们还能将您的手写字转换成输入文字。有些 Tablet PC 的萤幕可以里外旋转,而且可以掀起以显示底下的键盘。您可以用电脑做什麼?在工作场合中,许多人会使用电脑来保存记录、分析资料、进行研究及管理专案。在家里,...

托克托县17866733286: AT89单片机复位电路中电容选什么电容? -
陀别欣舒: 常规电容就可以了!如果要好一点的话,就用一个钽电容!电压为25v就可以了.

托克托县17866733286: 初二英语题,实在不会做,帮帮忙 Are you 愿意?
陀别欣舒: Did my father eat something for breakfast? Some of Anna's ideas are not right.

托克托县17866733286: 单片机程序下载器 -
陀别欣舒:方法一: 你去淘宝网买一个USB接口的AVR下载线.(如果你电脑有并口的话用并口下载线也行).芯片不要选AT89C51和AT89C52.买AT89S51或者AT89S52的.对于Atmel的AT89单片机只有芯片上有"...

托克托县17866733286: 帮帮忙吧,实在不会做
陀别欣舒: (84-63)÷1/28=588(个)

托克托县17866733286: 帮帮忙,本人有道题实在不会
陀别欣舒: 把原数看作单位 1小数点右移两位后的数是原数的100倍,是100个单位 比原数大 100-1=99 个单位 实际大482.13 所以 1 个单位是 482.13÷99=4.87 原数是单位1 ,所以原数是 4.87

托克托县17866733286: 21到29填在九个方框里,横竖斜和都要为75,(数字不重复)大神们帮帮忙我是一名学生,这题实在不会写,有过程更好. -
陀别欣舒:[答案] 24 29 22 23 25 27 28 21 26

托克托县17866733286: 求杀手2沉默刺客秘籍!各位大哥帮帮忙!麻烦写的具体一些!谢谢 -
陀别欣舒: 1、找到你安装游戏的目录(比如我的就是D:\ProgramFiles\天人互动\终极刺客2) 实在不会这一步的网友就右键点击桌面上的杀手2的游戏图标,...

托克托县17866733286: 帮帮忙,我实在不会做
陀别欣舒: 哥哥教你.12.56是半圆周长,你先除以3.14算出了它的半径为4,之后用公式:4的平方后乘以3.14算出一个圆的面积,之后除以2就是半圆的面积了.搞定.有问题尽管招呼.

托克托县17866733286: 写一函数,用选择法对输入的10个字符按从小到大顺序排列. 实在不会写,麻烦大家帮帮忙! -
陀别欣舒: #include<stdio.h> void sort(char *a) //排序 {int i,j,x;char c;for(i=0;i<9;i++){for(j=i+1,x=i;j<10;j++) //找出a[i]及其后面字符中最小的;{if(a[x]>a[j]) x=j;}if(x!=i) {c=a[i];a[i]=a[x];a[x]=c;} //如果a[i]不是最小的,将a[i]与找到的最小字符交换} } ...

托克托县17866733286: 求一段C语言代码,我实在是不会了,帮帮忙,题目2 - 4
陀别欣舒:#include <stdio.h> void main() { char c = '\0'; int character, number, space, other; character = number = space = other = 0; while ((c=getchar())!='\n') { if ((c >= 'a' && c <= 'z') || (c >= 'A'&&c <= 'Z')) character++; else if (c >= '0' && c <= '9') number++; ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网