摁钮来说,因为是输入,在输入之前,先对接脚做输出高电平处理,然后做接收,否则可能会烧掉单片机接脚内部的fet 管 延时六秒不好控制,如果晶振频率你知道的话,多用nop指令,来缓冲循环段的长短不一问题
闪烁5次再移位,可以用循环来实现。程序如下:ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV A,#0FCH ;LED灯初值,两个灯点亮 LOOP:MOV R2,#5 ;5次闪烁循环次数 LOOP1:MOV P0,A ;P0口送控制值 LCALL DELAY
你这个程序错误太多了,用汇编时关键的几个程序段都未分清:主程序、定时器T0中断、定时器T1中断等,因MOV IE,#8AH语句说明用的是中断方式,显然漏了 ORG 0000H、ORG 000BH和ORG 001BH伪指令。要改时间可改 CJNE
我写的这个程序应该可以,按一下灯亮,再按一下灯灭 include "REG52.H"sbit LED1_01 = P1^1; //LED灯 sbit KEY0_01 = P1^2; //按键 void Delay_1ms(unsigned int Time){ unsigned int x, y;for
ORG 0000H ; 闪烁 流水灯 AJMP MIN0 ORG 0050HMIN0: MOV R0,#00H MOV DPTR,#TABDD1: MOV A, R0 MOV R2, #10 ; 闪烁次数 MOVC A,@A+DPTRDD2: MOV
;P1.0 P1.1接2LED,P2.0接一按键。上电2LED不亮,按第1 次键2LED同时以1S周期闪烁,按第2 次 2LED轮流1S闪烁同此循环。;11 04 17 ORG 00H AJMP MAIN ORG 0BH AJMP T0INT ORG 30H MAIN:MOV TMOD,#
用AT89C2051单片机(可以换成任意的51单片机)仿真,控制一个LED灯闪烁,LED灯接在P1.7脚上。程序如下 LED1 BIT P1.7 MAIN:CPL LED1 ACALL DELAY SJMP MAIN DELAY:MOV R7,#0;延时子程序 MOV R6,#0 LOP:DJNZ
如何用汇编语言控制led灯闪烁?
unsigned char i, j;i = 180;j = 73;do{ while (--j);} while (--i);} void main(){ unsigned int n;while(1){ LED1=~LED1;LED2=~LED2;for(n=0; n<20; n++){ Delay100ms();} } }
单片机流水灯C语言程序的源代码如下:include //51系列单片机定义文件 define uchar unsigned char //定义无符号字符 define uint unsigned int //定义无符号整数 void delay(uint); //声明延时函数 void main(void){ uint
C语言实现LED灯闪烁控制配套51单片机开发板。include //包含单片机寄存器的头文件 /***函数功能:延时一段时间 / void delay(void) //两个void意思分别为无需返回值,没有参数传递。{ unsigned int i; //定义
sbit P10=P1^0;//控制LED闪烁 unsigned char count=0;//计数变量 void main(){ TMOD = 0x01; //设定时器0为模式1,16位模式 TH0=0xdc;TL0=0x00; //设定时值为10ms,此时晶振频率是11.0592MHZ //若晶振频率
include#defineucharunsignedcharuchartimes,led;sbitkey1=P1^0;sbitkey2=P1^1;voidt0isr()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;times++;}voidrolled(){P0=led;led=(led>>1)|0x80;if(led==
下面是一个利用for循环控制一盏灯闪烁5次停止的C语言程序:上述程序中,我们先利用两个嵌套的for循环控制灯的闪烁次数和每次闪烁的亮灭过程。其中外层循环控制闪烁的总次数为5次,内层循环控制灯的亮灭,在循环体中通过printf
= ~LED1_01;//取反LED灯 [亮 .灭 ]} while(KEY0_01 == 0);//检测松手 } } } 你的图里有A/D转换器 AD转换函数ADC_DIS.C include
汇编语言或C语言编写一个控制灯闪烁的程序
delay(200); //实参“100”用来调节延时时间。 P0_0=1; //熄灭LED &#
我写的这个程序应该可以,按一下灯亮,再按一下灯灭 include "REG52.H"sbit LED1_01 = P1^1;//LED灯 sbit KEY0_01 = P1^2;//按键 void Delay_1ms(unsigned int Time){ unsigned int x,y;for(x = Time;
点亮 小灯的程序我们第二课完成了,就是让 LED = 0。熄灭小灯的程序也很简单,就是 LED = 1。点亮和熄灭都会了,那么如果我们在亮和灭中间加个延时,反复不停的点亮和熄灭小灯,就成了闪烁了。我们首先复习一下 Kei
上图程序,最后是“长灭”。如果想要“常亮”,就在 SJMP $ 前,插入一行:MOV P2,#0 即可。
想在这个程序里加一个叫LED灯闪烁的程序,跪求~
下面的程序我已经调试过了,你可以直接使用,但是一秒闪烁次数t的最大为2000,如果要大于这个数,你必须改小dalay1ms ()内的j值,就可以改大t include
TR0=1; //启动定时器0 } void time0() interrupt 1 { led1=~led1;count++;if (!(count%1000)) {led2=~led2;} if (count==5000) {led3=~led3;count=0;} } led1是看不出闪烁的 太快了
include#defineucharunsignedcharuchartimes,led;sbitkey1=P1^0;sbitkey2=P1^1;voidt0isr()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;times++;}voidrolled(){P0=led;led=(led>>1)|0x80;if(led==
C语言实现LED灯闪烁控制配套51单片机开发板。include //包含单片机寄存器的头文件 /***函数功能:延时一段时间 / void delay(void) //两个void意思分别为无需返回值,没有参数传递。{ unsigned int i; //定义
led=1;//点亮 delay(100);//延时100MS led=0;//熄灭 } else led=0;} void delay(unsigned int i){自己根据单片机频率写个1MS带形参的演示程序} 这个程序是现写的。。应该能执行,有些细节没有写,自己修改下,
case 0: led = 1; readkey(); break; //熄灭 case 1: delay(); readkey(); //慢速闪烁 case 2: delay(); readkey(); //中速闪烁 case 3: delay(); readkey(); led = ~led; //快速闪烁 } }
暂时想到两种解决方案:1.最简方案——利用延时函数:进入主函数后,初始化LED,设置一个延时初始值,然后进入while循环,里边只做四件事,打开LED,利用键盘返回值作延时函数参数,关闭LED,利用键盘返回值作延时函数参数。2.
请教c51单片机,c语言编程,关于控制LED灯闪烁频率?
给你个参考;void delay();main(){ while(1){ //设P1.0引脚去驱动LED,P1=0xff;delay(500);//延时500mS P1=0xfe; //P1.0引脚反复输出高电平,低电平,LED即闪烁;delay(500);//延时500mS }
1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。2、编写相应的代码:#include
include#defineucharunsignedcharuchartimes,led;sbitkey1=P1^0;sbitkey2=P1^1;voidt0isr()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;times++;}voidrolled(){P0=led;led=(led>>1)|0x80;if(led==
在无限循环中,不断检测K1和K2按键状态,以改变全局变量“freq”并控制LED灯的闪烁频率;然后使用一个计时器中断服务程序来控制LED灯的闪烁,具体实现方式请参考代码注释。最后,为了保证每个周期的闪烁持续时间与频率相符,应该
for(i=0;i<20000;i++) //做20000次空循环。; //什么也不做,等待一个机器周期。} / 函数功能:主函数 (C语言规定必须有也只能有1个主函数)。/void main(void){ while(1) //无限循环。{ P0=0xfe;
用C语言编写一个单片机控制LED灯闪烁变化的编程 急用!!!!!!!!!
软件可以重新设置这两个引脚为PD0和PD1功能。但对于LQFP100/BGA100封装和LQFP144/BGA144封装,由于PD0和PD1为固有的功能引脚,因此没有必要再由软件进行重映像设置。更多详细信息请参考STM32F10xxx参考手册的复用功能I/O章节
break;case 1: LED1=!LED1;delay_ms(200);break;case 2:LED2=!LED2;delay_ms(200);break;default:break;} void 在这里按键获取函数(void){ key=获取到的值; //没有按键按下的话是进入不到这里 } } }
STM32程序:按键长按和短按的判断,用来控制LED灯,有借鉴了其他程序,但是有细节上的不同。短按是切换灯亮的状态,每按一下换一个状态,长按led灯快闪并且指示灯向4靠近,直到等于4是慢闪。如果只做长短按不需要注重
1、确定板子上LED灯的引脚位置是属于哪个口PORTA~PORTE例程内的端口是否与硬件上的端口一致。LED的驱动电平是高电平还是低电平。一个GPIO正常工作至少需要以下几点:a、系统时钟已经配置并正常运行。2、一位网友做的,您可以借
去掉while其实就是把灯点亮,他就一直是亮着的。在while中,循环太快了,就没那种视觉感受。你这个程序是不是有问题?void="" int="" x="z;x">0;x--是啥意思?
1)仿真时是否正确?2)如果仿真正确,请从开发板上完全拔掉JLINK,否则JLINK会占用一些引脚导致程序无法运行。(只拔掉连电脑端的USB是错的)
5.一个系统嘀嗒定时器(SysTick)主程序main.c /* *说明: *PA0:KEY1;PA1:KEY2; *PA2:LED1;PA3:LED2; *PA9:USART1_TX;PA10:USART1_RX */ #include "stm32f10x.h" #include "stm32f10x_rcc.h"
新人求助 刚接触STM32 做一个开关控制LED灯闪烁 调试一直没反应
你要点阵设计 一般16x16或16x64的比较多 我有32x128的,在proteus下仿真的啊 不过是51单片机的c语言 已经发给你了,可以交流如果通电,屏幕一直都不亮,可能是电源部分电容鼓包引起的。通电后屏幕亮一下就灭,高压板的可能性比较大,但是灯管也不排除!
用两个定时器指令编写一个闪烁电路的程序
void delay_ms(int ms) { int a=1000; int b=1000; int a=a*ms; while(a--) while(b--); } void main() { while(1) { p2=0; p2.0 = 1; // 2 delay_ms(1000); p2.0 = 0; p2.1 = 1; // 0 delay_ms(1000); p2.1 = 0; p2.2 = 1; // 1 delay_ms(1000); p2.2 = 0; p2.3 = 1; // 4 delay_ms(1000); p2.3 = 0; } }
用两个定时器指令编写一个闪烁电路的程序
/程序:ex1_1.c //功能:控制一个信号灯闪烁程序 #include //包含头文件REG51.H,定义了MCS-51单片机的特殊功能寄存器 sbit P1_0=P1^0; //定义位名称 void delay(unsigned char i); //延时函数声明 void main() //主函数 { while(1) { P1_0=0; //点亮信号灯 delay(10); //调用延时函数,实际变量为10 P1_0=1; //熄灭信号灯 delay(10); //调用延时函数,实际变量为10 } } //函数名:delay //函数功能:实现软件延时 //形式参数:unsigned char i; // i控制空循环的外循环次数,共循环i*255次 //返回值:无 void delay(unsigned char i) //延时函数,无符号字符型变量i为形式参数 { unsigned char j,k; //定义无符号字符型变量j和k for(k=0;k<i;k++) //双重for循环语句实现软件延时 for(j=0;j<255;j++); }
和我们的实验要求好像啊!
/程序:ex1_1.c //功能:控制一个信号灯闪烁程序 #include //包含头文件REG51.H,定义了MCS-51单片机的特殊功能寄存器 sbit P1_0=P1^0; //定义位名称 void delay(unsigned char i); //延时函数声明 void main() //主函数 { while(1) { P1_0=0; //点亮信号灯 delay(10); //调用延时函数,实际变量为10 P1_0=1; //熄灭信号灯 delay(10); //调用延时函数,实际变量为10 } } //函数名:delay //函数功能:实现软件延时 //形式参数:unsigned char i; // i控制空循环的外循环次数,共循环i*255次 //返回值:无 void delay(unsigned char i) //延时函数,无符号字符型变量i为形式参数 { unsigned char j,k; //定义无符号字符型变量j和k for(k=0;k<i;k++) //双重for循环语句实现软件延时 for(j=0;j<255;j++); }