用4个独立按键控制8个数码管的加减和,你这是实物开发板吧,数码管电路中8个数码管的位控制端LED1~LED8接哪啦,还应该有位控电路的,估计是用一片74HC138(或74LS138)控制的,这位控未知,不能写程序。要求第三位数码管
led=_crol_(led,1);delay(100);break;case 4:P0=led;led=_cror_(led,1);delay(100);break;} } }
void display();int b0=0x00, b1=0xc0,b2=0x30,b3=0x0c,b4=0x03;sbit S16 = P3^5; //接在P30口的按钮 sbit S15 = P3^4;sbit S14 = P3^6;sbit S13 = P3^7;//有按键控制时要加防抖动处理 void
P1口接8个LED灯,P3口接4个按键K1~K4 ,用于控制流水灯的四种效果,仿真图如下。
LED球泡灯的输出电压:是指LED灯泡里面的驱动输出的电压,LED驱动相当于一个小型的变压器,把电压变成3V左右,然后灯珠才会亮,正常的LED灯珠的工作电压都是3.6左右,这样的灯珠就会亮起来。
透过试验箱的4颗按键输入和8颗LED灯输出
include
sbit beep=P2^3;void delay(uint z){ uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);} void main(){ uchar a;int i;a=0xfe;while(1){ for(i=0;i<10;i++){ P1=a;delay(300);P1=0xff;d
1:首先设定一个变量i,可以是从0到3循环的变化,2:再检测一个经过消抖处理的按键,按一下,即i+1 3:当i值为各个值时,执行相应的变换花样。流水灯参考程序 include include define uchar unsigned char uchar j,tmp
uchar led=0xff;while(1) { if(k1==0) { delay(10); if(k1==0) { while(k1==0); flag=1; led=0xfe; } } if(k2==0) { delay(10); if(k2==0)
sbit S13 = P3^7;//有按键控制时要加防抖动处理 void main (void){ unsigned int a = 0; //定义变量 while(1) { //主程序循环 if(!S16) { //发现P30按下低电平时进入处理 for(a = 0; a <
P1口接8个LED灯,P3口接4个按键K1~K4,用于控制流水灯的四种效果,仿真图如下。
个开关时,8盏灯从左到右依次被点亮,最后全亮;闭合第3个开关时,8盏灯从右到左依次被点亮,最后全亮个开关时,8盏灯从左到右依次被点亮,最后全亮;闭合第3个开关时,8盏灯从右到左依次被点亮,最后全亮个开关时
单片机求汇编语言设计一个彩灯控制系统,有4个控制开关,8盏LED灯?
1:按键处理部分,定义一个按键变量x,在按键按下后松手变量x加1,判断按键变量 if(x >= 3){ x = 0;处理8个LED灯的函数}
include
void display();int b0=0x00, b1=0xc0,b2=0x30,b3=0x0c,b4=0x03;sbit S16 = P3^5; //接在P30口的按钮 sbit S15 = P3^4;sbit S14 = P3^6;sbit S13 = P3^7;//有按键控制时要加防抖动处理 void
if(key ==0) {num++; } if(num==0){led1 =0;//亮,发光二极管负极接IO} //num是切换哪几个LED亮的或者哪几个LED灭的,完整的就不写了,1是太多,浪费时间,2是对你自己比较好。
编程:利用单片机STC89C52RC设计4个独立按键控制8个LED的亮灭?
for(i=0;i<8;i++){ count=count>>1;P2=~count;delay02s();} } void main(void){ while(1){ if(k1==0) k1yes();if(k2==0) k2yes();if(k3==0) k3yes();if(k4==0) k4yes();} }
P1口接8个LED灯,P3口接4个按键K1~K4,用于控制流水灯的四种效果,仿真图如下。
1、首先在电脑中新建项目:Keil uVision4 51单片机LED闪烁编程,如下图所示。2、然后设计单片机端口与LED灯相连,如下图所示,输入代码。3、接着创建延迟函数,如下图所示,输入以下代码。4、然后创建C语言主函数,如下图
uchar led=0xff;while(1) { if(k1==0) { delay(10); if(k1==0) { while(k1==0); flag=1; led=0xfe; } } if(k2==0) { delay(10); if(k2==0)
void display();int b0=0x00, b1=0xc0,b2=0x30,b3=0x0c,b4=0x03;sbit S16 = P3^5; //接在P30口的按钮 sbit S15 = P3^4;sbit S14 = P3^6;sbit S13 = P3^7;//有按键控制时要加防抖动处理 void
单片机4个按键控制8个led灯,我编写的代码在keil上查不出问题,但无法达到我的要求,求帮助
while(key4==0);keyval=4;} switch(keyval){ case 1:P0=led1;led1=~led1;delay(100);break;case 2:P0=0xff;break;case 3:P0=led;led=_crol_(led,1);delay(100);break;case 4:P0=led;led=_cror_(led,
sbit S14 = P3^6;sbit S13 = P3^7;//有按键控制时要加防抖动处理 void main (void){ unsigned int a = 0; //定义变量 while(1) { //主程序循环 if(!S16) { //发现P30按下低电平时进入处理
因为一般接io口的LED灯有个上拉高电平,io这端给他个低电平(0),造成电压差,就有电流通过,灯就亮了;反之,io给高电平(1),没有压差,无电流,灯灭。下面的你自己应该可以写了,锻炼下手。void delay(void){
P3=0xff; //关闭8个LED led_delay();P3=0x00; //点亮8个LED led_delay();} void main(void){ TMOD=0x01;EA=1;
} } if(k2==0) { delay(10); if(k2==0) { while(k2==0); flag=2; } } if(k3==0) { delay(10); if(k3==0) { while(k3==0); flag=3;
P1口接8个LED灯,P3口接4个按键K1~K4,用于控制流水灯的四种效果,仿真图如下。
P1口接8个LED灯,P3口接4个按键K1~K4 ,用于控制流水灯的四种效果,仿真图如下。
用51单片机写程序,4个按键控制8个小灯切换四种灯光效果?
【摘要】 51单片机1个按键控制2个灯分别点亮的程序。【提问】 太麻烦了【提问】 你这个我看不懂【提问】 啊不是吧【回答】 那您需要什么样的【回答】要实物 还说仿真呢 硬件做好了吗 我做单片机的
先说一下,若干天前,我为一个百度知友回答过这样的问题,要求和你的一样,我不知道你是否认识他。 第二,你的这个程序,错误处实在太多了,第一个错误,你的main函数里没有while(1)死循环,程序差不多跑一次就没了,第二个错误,你的按键问题,没有等待按键抬起。 总之来说,你的程序,写的实在错误太多了,让我在百度知道上给你指出,恐怕比较费劲。 给你参考一下我的程序,你自己修改一下看看。 以下是我回答其他知友的问题: http://zhidao.baidu.com/question/537203808?&oldq=1
// 单片机控制八个led灯, 仿真实例 可以改为 各种花样。 #include #define uchar unsigned char #define uint unsigned int unsigned char TAB[]= {0xff,0xaa,0xff,0xaa,0xff,0xaa,0xff,0xaa,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0xff,0xff}; // 改变这里 LED 各种花样 uchar t,i; void main() { TMOD=0x10; TH1=(65535-50000)/256; // 50ms一次 TL1=(65535-50000)%256; EA=1; ET1=1;//开定时器1中断 TR1=1;//启动定时器1 t=0; i=0; while(1) { } } void timer1() interrupt 3 { TH1=(65535-50000)/256; // 50ms一次 TL1=(65535-50000)%256; t++; if(t==20) { t=0; P1=TAB[i]; i++; if(i==18) { i=0;} } }
哎,只学过C,表示无能为力,不过也不难设计呀,会基本的按键识别就好了
这个是最基本的单片机控制,没问题的
#include /*------------------------------------------------ 延时子程序 ------------------------------------------------*/ void delay(unsigned int cnt) { while(--cnt); } /*------------------------------------------------ 主函数 ------------------------------------------------*/ main() { P1=0xfe; //给初始化值 换算成二进制是1111 1110 while(1) { delay(30000);//延时程序 P1<<=1; //左移一位 P1|=0x01; if(P1==0x7f) { delay(30000); P1=0xfe; //重新赋值 } } }
就是这个,我也有这个题。
#include #define uchar unsigned char uchar times,led; sbit key1=P1^0; sbit key2=P1^1; void t0isr() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; times++; } void rolled() { P0=led; led=(led>>1)|0x80; if(led==0xff)l