ZKX's LAB

51单片机用两个按钮控制一个LED灯的亮灭(不是那么简单请看我要求) 51单片机led亮灯控制字

2020-08-11知识99

有什么代码可以控制51单片机32个LED灯吗?就是让它亮几颗就亮几颗,比如前一颗亮,前两颗亮,前 这个很简单,有两种基本方法,1、STC12-40P单片机有36个IO口,你把这些LED一一对应串联个电阻接在每个IO 口上面就能写代码控制,这个最基本的代码,很简单,看看教程,一天就学会了;2、51单片机用3-8译码器只要单片机的12个IO口加上4片3-8译码器就能控制32个灯了;还有其他复杂的方法我就不说了,总之一片单片机控制几百个led都可以的。利用51单片机控制来使LED灯闪烁,通过51单片机控制时钟,从而控制时间,来完成闪烁51单片机,按键控制流水灯程序,懂的进。 假如,你的程序在执行key_scan();是触发了两次中断导致num>;20,你的显示函数将永远被跳过,你应该写成if(num>;20){num=0;display();}这是一个比较直观的错误,其他的没细看,你在试试51单片机怎么只控制一颗LED灯闪烁 首先你要知道既然是控制一个LED灯的话,那么就只需要一个IO口控制就可以了。那么在程序中你只需要改变一个IO口的状态。你这个程序首先是,P10是什么东西,如果是一个IO口的话,为什么后面会是0X00,和0XFF,这是什么意思,这是八位的表示方式,一位需要用这么多的数据来表示么。你只需要置1,和清零就可以了。就是说 P10=0;P10=1,这种方式的就可以了。而且你还需要在程序的最开始定义P10是什么东西的。单片机是不知道P10 是什么的。如果是一个八位端口的话,这样定义是没有错的。但是控制的就是8个IO口了。51单片机用两个按钮控制一个LED灯的亮灭(不是那么简单请看我要求) 对你这种编程思想,我想问是跟谁学的啦!对你这程序,我想问①先按K3、后按K2,你觉得程序结果会如何?②如果2个按键都按住不放,结果又会如何。考虑一下上面的问题,就能看到你的程序问题了。当然你的程序问题,跟你的题目一样,没那么简单!后面还有一堆!51单片机怎么用c语言写一个按钮控制一个led的闪烁,按一下开始闪烁,再按就灭掉 bit flash;闪烁标志位sbit led=P0^0;sbit P01=P0^1;sbit P02=P0^2;void main(){P01=P02=0;flash=0;led=0;while(1){scankey();ledflash();}}void scankey()/键盘扫描{P01=1;行线给1if(P02)/如果P02也是1则说明接通{delay(10);去抖动10MSif(P02)/再次确定按键按下{while(P02){flash=flash}/按住按键的动作flash=~flash;按键按下后执行动作}}}void ledflash(){if(flash){led=1;点亮delay(100);延时100MSled=0;熄灭}else led=0;}void delay(unsigned int i){自己根据单片机频率写个1MS带形参的演示程序}这个程序是现写的。应该能执行,有些细节没有写,自己修改下,只是个大框而已(比如函数声明,定义端口什么的)51单片机如何用c语言点亮led灯,在初学51单片机的时候,都喜欢将点亮led灯作为第一个实验。小编今天就教大家如何在keil软件中用c语言编写这一个程序。在写51单片机程序的时候,对于用独立按键控制led。比如我按下按键1号,8个灯以1方式流动亮,问题 解决这个问题,首先你得会检测按键,其次至少会做2种流水灯效果。基于以上基础,那么程序的架构可以这样来实现:1、定义一个全局变量,存放运行状态2、检测按键,如果key1被按下,那么运行状态为1;如果key2被按下,那么运行状态为23、死循环中,判断这个全局运行状态变量,如果为1,那么就执行流水灯程序1;如果为2,那么就执行流水灯程序2.加油!

#p10#单片机

随机阅读

qrcode
访问手机版