;break;case 2:j=j^0xFF;LED=j;break;case 3:LED=0x00;break;}i=++i%8;Delayms(200);}}void EX0_INT() interrupt 0{ EX0=0;Delayms(10);if(++step==4)step=1;EX0=1;}希望对你有所帮助!!!
1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。2、编写相应的代码:#include
一键多空流水灯汇编语言程序编写方法是:设置一个变量,来检测按键的次数,从而控制程序分支来达到控制不同流水灯的效果例如:ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV R6,#0FEH MOV R7,#0 LOOP:JB P1.0,LOOP1 JNB
if (key_time==4)key_flag=1;if (time_500)time_500--;else {flag_500ms=1;time_500=10;} }
typedef unsigned int uint16;sbit anjian = P1^0; //按键位 void delay(uint16 h) //延时程序 { while(h--);} main(){uint8 k = 0 , i = 0;P0 = 0xff;anjian = 1;while(1){ P0 = ~(1<
} while(++CountTemp > 160); // 延时20ms去抖动 if(CountTemp > 160)//如果按键时间有效,改变状态 { switch(ucState){ case(0):{ ucState = 1;led1 = 0;led2 = 0;led3 = 0;} break;case(1):{
如何用单片机一个按钮开关控制3个灯3种效果。流水。闪烁。还有一直亮。用keil编程。
工具:STC系列51单片机、串口转换器(USB转TTL 或232转TTL)材料:实验板一块(可以买现成的,也可以买面包板自己搭建),电阻、LED灯 若干,5V电源等。以下程序可以直接用Keil C 直接编译执行。//可以通过左移函数_crol_
一键多空流水灯汇编语言程序编写方法是:设置一个变量,来检测按键的次数,从而控制程序分支来达到控制不同流水灯的效果例如:ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV R6,#0FEH MOV R7,#0 LOOP:JB P1.0,LOOP1 JNB
;左移 star: mov r3,#8 ;设置流水位数 mov p0,#11111110b ;从p0.0开始 loop: acall d01s mov a,p0 ;读取p0当前数据到acc rl a ;左移一位 mov p0,a ;将左移的数据再送到p1 djnz r3,loop
定时器中点亮程序:if(aaa<10){把1号灯点亮};else if(aaa<20){把2号灯点亮};else if(aaa<30){把3号灯点亮};else if(aaa<40){把4号灯点亮};else if(aaa<50){把5号灯点亮};else if(aaa<60){
基于Keil、STM32,用C++编写流水灯程序
1、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。2、具体实现方法可以参考如下程序:
P1=b;//P1口接8个LED灯 delay(200);b=_crol_ (b,1);} } void delay(unsigned int z){ unsigned int i;for(;z>0;z--) //延迟时间自己算吧 for(i=110;i>0;i--);} 用汇编写这个容易点 main: mo
P3=0xdf;//第六个灯亮 delay();P3=0xbf;//第七个灯亮 delay();P3=0x7f;//第八个灯亮 delay();} }
8个LED流水灯依次循环亮的C语言程序,问题详细内容为:我用的是PROTUSE做的仿真程序,想让这8个流水灯依次亮从P0到P7口要它的C语言程序可以在KEILC51里面运行的,希望在每句C语言后面有个解释不用WHILE和for语句i高分悬赏我
假设P1接8 个LED,高电平时LED点亮,主程序如下:void main(void){ uchar i;while(1){ for(i=0;i<7;i++){ P1=1<>i;delay_ms(500);} } }
while(1){ P1=0xfe; //点亮第一个LED for(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfd; //点亮第二个LED for(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfb; //点亮第三个LED for
keil软件用单片机控制8个LED流水灯来回点亮(C语言程序)
1、打开keil软件,在工具栏点击Project选项选择new uVision Project创建新的工程并保存,步骤如下图所示:2、创建新的文件,按快捷键“ctrl+s”命名为led.c并保存,步骤如下:3、将创建的51.c文件添加到51项目中,鼠标
原因是,主程序中不论执行哪种模式:mode1();mode2();mode3();mode4();都需要延时的,这个时间应该是比较长的,只有执行一遍后才检查按一次,所以,按键就是等待这么长的时间,才能识别到一次。如果有这个延时期间按键
单片机原理流水灯实验报告: 一、实验目的:进一步熟习keil仿真软件、proteus仿真软件的使用。认识并熟习单片机I/O口和LED灯的电路构造,学会建立简单的流水灯电路。掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注
要实现Proteus和Keil软件联调,需要安装一个插件,然后在proteus和keil中设置。其实,这两个软件联调,真的没有什么用,调试一个小程序时,单步调试还可以,调试大程序就不适用了。keil编译好了,在proteus仿真测试就行,仿真
用proteus来仿真51的步骤:工具/原料:Proteus,keil c51 1、首先我们打开Proteus软件,点击左边菜单栏的P按钮,然后再搜索框里输入80c51,选择第一个就是80c51单片机;2、然后在搜索框里面输入led,找到Optoelectronics,然后再里
这里我们利用Proteus绘制单片机流水灯的电路图,keil c51编写流水灯的程序。仿真既可以帮助我们学习,也可以检验电路是否合理。防止电路已经焊接完成,但设计不合理的情况。我们打开Proteus软件,点击左边菜单栏的P按钮 然后再搜索框
利用Proteus和keil仿真51单片机流水灯
1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。 2、#include "reg51.h"首先写出单片机的头函数。 3、#include "intrins.h"输入位移函数。 4、unsigned int count=0,led;定义函数。 5、输入主函数,定义单片机的端口,写入延时函数。 6、中断跳转,使流水灯运行起来。自己现成想的汇编的要不要啊哈哈 MOV A,#0011111 LOOP: MOV P0,A CALL DELAY RR A JMP LOOP DELAY: ;延时程序 MOV R3,#20 D1:MOV R4,#20 D2:R5,#248 DJNZ R5,$ DJNZ R4,D2 DJNZ R2,D1 RET 这只是2个灯右移程序,如果达到你想要的效果还有计数8次然后进入计数左移动8次,懂基本原理什么都好办哎!纠结!!!!!!!!!
你的电路图画错了,发光二极管放反了,或者把+5V换成地
#include "reg51.h" main() { unsigned int i,j; while(1) { P1=0xfe; //点亮第一个LED for(i=200;i>0;i--) for(j=500;j>0;j--); P1=0xfd; //点亮第二个LED for(i=200;i>0;i--) for(j=500;j>0;j--); P1=0xfb; //点亮第三个LED for(i=200;i>0;i--) for(j=500;j>0;j--); P1=0xf7; //点亮第四个LED for(i=200;i>0;i--) for(j=500;j>0;j--); P1=0xef; //点亮第五个LED for(i=200;i>0;i--) for(j=500;j>0;j--); P1=0xdf; //点亮第六个LED for(i=200;i>0;i--) for(j=500;j>0;j--); P1=0xbf; //点亮第七个LED for(i=200;i>0;i--) for(j=500;j>0;j--); P1=0x7f; //点亮第八个LED for(i=200;i>0;i--) for(j=500;j>0;j--); } } 或: #include "reg51.h" void delay(unsigned int t) { unsigned inti,j; for(i=t;i>0;i--) for(j=110;j>0;j--); } main() { unsigned char w,i; while(1) { w=0xfe; for (i=0;i<8;i++) { P1=w; //循环点亮LED w<<=1; //点亮灯的位置移动,最低位补0 w=w|0x01; //将最低位置1 delay(500); //延时 } } } 或: #include "reg51.h" //程序中使用_crol_函数,所以要包含头文件"intrins.h" #include "intrins.h" void delay(unsigned int t) { unsigned int i,j; for(i=t;i>0;i--) for(j=110;j>0;j--); } main() { unsigned char temp; temp=0xfe; while(1) { P1=temp; delay(500); //延时 temp=_crol_(temp,1); //点亮LED的位置循环左移一位 } }