给你个参考;void delay();main(){ while(1){ //设P1.0引脚去驱动LED,P1=0xff;delay(500);//延时500mS P1=0xfe; //P1.0引脚反复输出高电平,低电平,LED即闪烁;delay(500);//延时500mS }

LED_IO7= 0;delay();LED_IO8= 0;delay();} //开始灯全灭 void LED_dengmie(void){ LED_IO1 = 1;LED_IO2 = 1;LED_IO3 = 1;LED_IO4 = 1;LED_IO5 = 1;LED_IO6= 1;LED_IO7= 1;LED_IO8= 1

交替闪烁就是在循环中让两个LED端口交替高低电平。循环中加入延时。延时函数我用循环实现。题目没有要求精准延时,如精准需用中断。include define uInt unsigned int sbit D1=P2^0;sbit D2=P2^1;sbit S1=P

1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。2、编写相应的代码:#include //定义单片机的头文件sbit led=P2^0; //定义单片机的管脚,void main(void) //主函数

在无限循环中,不断检测K1和K2按键状态,以改变全局变量“freq”并控制LED灯的闪烁频率;然后使用一个计时器中断服务程序来控制LED灯的闪烁,具体实现方式请参考代码注释。最后,为了保证每个周期的闪烁持续时间与频率相符,应该

for(i=0;i<20000;i++) //做20000次空循环。; //什么也不做,等待一个机器周期。} / 函数功能:主函数 (C语言规定必须有也只能有1个主函数)。/void main(void){ while(1) //无限循环。{ P0=0xfe;

用C语言编写一个单片机控制LED灯闪烁变化的编程 急用!!!!!!!!!

if(++Time_Count!=time) return; Time_Count=0; Operation_Type=4; break; case 4: //南北向黄灯开始闪烁,绿灯关闭 LEDsng=0x0; LEDsns=0x0; if(++Time_Count!=8) return; Time_Count=0; YELLOW_B

MAIN: MOV A , #0FEH MOV R3, #04H ; 这里 改为 08H 为 8个灯 流水 MAIN2: MOV P1, A ; 循环轮流点亮 RL A LCALL DELAY ;延时 DJNZ R3, MAIN2 SJMP MAIN ; 继

keil使用教程编写第一个led灯程序1、新建一个空文件夹2、打开keil-->newuVisionproject3、选择目录,命名文件4、选择芯片5、添加文件6、编写C51单片机程序7、生成可以加载单片机里的hex文件8、编译生成hex文件9、将hex文件

delay(100); //调用延时子程序 L4=1; //第四盏灯亮 delay(100); //调用延时子程序 while(1); //这里我用了个死循环,目的程序只运行一次,如果需要自动重新运行,可以把这句删掉 } 纯手工书写,并仿真调

MOV R2,#20 ;每次中断定时50ms,20次中断后即为1秒,亮灯LED改变到下一个 DJNZ R3,RRT MOV R3,#4 ;4个灯,左移4次 MOV A,R0 RL A ;第四次左移后,低电平到了P1.4,显然已经过头了 SWAP A ;进行

delay(50000);LED3 = 1;delay(50000);LED4 = 1;delay(50000);LED4 = 0;delay(50000);LED3 = 0;delay(50000);LED2 = 0;delay(50000);LED1 = 0;delay(50000);} } 上述代码实现了四个 LED 灯逐个亮起来然

sbit led2=P1^1;sbit led3=P1^2;sbit led4=P1^3;void delayms(unsigned int i)//晶振12MHZ时延时1ms { unsigned int j,k;for(j=i;j>0;j--)for(k=121;k>0;k--);} void main (void){ while(1){

求计时器控制4个LED灯滚动闪烁的汇编语言程序

for(i=0;i<8;i++){ //8个流水灯依次全部点亮 DY_PORT=temp;delay(DY_SPEED); //调用延时函数 temp<<=1;} temp=0x7F;for(i=0;i<8;i++){ //8个流水灯依次反向全部点亮 DY_PORT=temp;delay(DY_

---T0INT: CLR TR0 MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 DJNZ R2,T0INTE MOV R2,#20 INC R3 MOV A,R3 CJNE A,#9,T0INT1 MOV A,#1T0INT1: MOV DPTR,#TABLE MOVC A,@A+DPTR

程序:ORG 0000H MAIN:MOV P1,#81H ACALL DELAY MOV P1,#42H ACALL DELAY MOV P1,#24H ACALL DELAY MOV P1,#18H ACALL DELAY AJMP MAIN DELAY:MOV R3,#5 //延时 L4: MOV R0,#125 L3: MOV R1,#100

RLC A ;左移流水灯(带进位的左移),即亮点向P0口的高位移动 DJNZ R2,LOOP MOV R2,#8 ;右移次数 LOOP1: RRC A ;右移流水灯 MOV P0,A LCALL DELAY DJNZ R2,LOOP1 LJMP START DELAY: MOV R5,#10 ;延时子

;假设1:D1~D8八个彩灯接在P1口,输出低电平发光 ;假设2:系统晶振为12MHz ;假设3:N = 5 ;程序如下:ORG 0000H MOV R3, #5 ;N=5 LOOP0:MOV A, #0FFH MOV P1, #0FFH ;开始时全灭 ;---逐个

这个流水灯是很普通的一种花样,假设LED接P1口,程序如下:ORG 0000H LJMP MAIN 0RG 000BH LJMP T0ISR ORG 0030H MAIN:MOV TMOD,#01H MOV TH0,#HIGH(65536-50000) ;50毫秒定时 MOV TL0,#LOW(65536-50000)SET

用汇编语言编流水灯,有8个LED灯,LED1~LED8 灯按顺序点亮,每个等亮一秒转到下个灯,一直循环亮

1:设置一个变量zhidaoi,它可以从0循环到3 2:检测一个已取消缓冲的键。按“+1”3:当I值为每个值时,执行相应的模式。水量灯参考程序 #include #include #定义uchar无符号字符 Ucharj,温度;无效延迟(无符号整型

include include void delay(int a){ while(a--);} main(){ unsigned char led=0xfe;while(1){ P0=led;led=_crol_(led,1);delay(30000);P0=0xff;delay(30000);} }

没有具体的电路图,就只以P1口作为基本输驱动口进行说明。主程序需要一个delay函数进行led亮灭的延时。当然你首先要先进行P1口和开关按键的预定义,这个要看你板子的原理图。void delay(int l){ int a,b;for(a=0;a

单片机每秒采集一次开关状态,断开设变量F为0,否则为1。用P0口联8个LED,置P0为11111110,循环每秒检测"F"的值,如为1,循环左移一位;如为0,置P0为0。

用汇编编程如下:ORG 0000H LJMP MAIN MAIN:ORG 0100H MOV A ,#80H ; 高电平亮灯。如低电平亮灯,改成#7FH ;;正向循环 ZXH :MOV P0 , A RR A LCALL S50MS ; 延时50MS

include "intrins.h"define uchar unsigned char define uint unsigned int sbit Led=P1;void delay(void);void main(void){ unsigned char tmp,i;P1=0x00;//全熄灭 while(1){ for(i=0;i<8;i++)//左移 {

闪烁5次再移位,可以用循环来实现。程序如下:ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV A,#0FCH ;LED灯初值,两个灯点亮 LOOP:MOV R2,#5 ;5次闪烁循环次数 LOOP1:MOV P0,A ;P0口送控制值 LCALL DELAY

在p0口接上8个led灯,每次亮两个灯的流水灯,如何实现led灯各闪烁5次再实现移位功能(汇编)

1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。2、#include "reg51.h"首先写出单片机的头函数。3、#include "intrins.h"输入位移函数。4、unsigned int count=0,led;定义函数。5、输入主函数,

P3=0xfe;//第一个灯亮 delay();//延时 P3=0xfd;//第二个灯亮 delay();P3=0xfb;//第三个灯亮 delay();P3=0xf7;//第四个灯亮 delay();P3=0xef;//第五个灯亮 delay();P3=0xdf;//第六个灯亮 delay

void main(void){ uint i;uchar temp;while(1){ temp=0x01;for(i=0;i<8;i++) //8个流水灯逐个闪动 { P1=~temp;delay(100); //调用延时函数 temp<<=1;} temp=0x80;for(i=0;i<8;i++) //8个流水

单片机流水灯程序代码(汇编语言):ORG0000HAJMPMAINORG0030HMAIN:MOVP1,#11111110BACALLDELAY;跳转到子程序MOVP1,#11111101BACALLDELAYMOVP1,#11111011BACALLDELAYMOVP1,#11110111BACALLDELAYMOVP1,#11101111BACALLDELAYMOVP1,

单片机流水灯代码:#include//51头文件void delay(int t)//定义延时函数{int j;while(t--){for(j=0;j<500;j++);}}void main(){int i;while(1){for(i=0;i<7;i++)//循环点亮LED

#include,sbitLED1=P1^0;//定义0/1变量,是因为在电路中一般为高电压以及低电压两种,也就是代表者0或1。sbitLED2=P1^1;sbitLED3=P1^2;sbitLED4=P1^3;sbitLED5=P1^4;sbitLED6=P1^5;sbitLED7=P1^6。单片

单片机流水灯代码怎么写?

LED灯简单,设置P0为推挽输出,根据按键不同,使P0输出不同的值,根据以下代码修改以下吧。 //============================================================================ //按键测试程序.按下S1-S3,在LCD上分别显示1-3 //----------------------------------------------------------------------------- // Includes //----------------------------------------------------------------------------- #include // SFR declarations #include #include sbit key1=P2^1; sbit key2=P2^2; sbit key3=P2^3; unsigned long q; unsigned char led; //-------------------------------- void YJ_Init(void); void SPI0_Init (void); void Write_CHAR(unsigned char yjchar); unsigned char key_in(void); //----------------------------------------------------- void delay(void) { int a=1000; while(a!=0) { a--; } } /*----------------------------------------------------*/ //按键连接到p2.0、p2.1、p2.2、P2.3,均为开漏输出 unsigned char key_in(void) { XBR0 =0X00; P2=0xff; if(key1==0) { key1=1; delay();//延时 if(key1==0) { while(key1==0); XBR0 =0X02; return(0x32);//返回字符"1"表示按键SW1按下 } } if(key2==0) { key2=1; delay();//延时 if(key2==0) { while(key2==0); XBR0 =0X02; return(0x33);//返回字符"3"表示按键SW1按下 } } if(key3==0) { key3=1; delay();//延时 if(key3==0) { while(key3==0); XBR0 =0X02; return(0x34);//返回字符"3"表示按键SW1按下 } } if(key4==0) { key4=1; delay();//延时 if(key4==0) { while(key4==0); XBR0 =0X02; return(0x31);//返回字符"4"表示按键SW1按下 } } XBR0 =0X02; return(0);//返回0,表示没有按键按下 } //--------------------------------------------- void main(void) { unsigned char data1; value =1; PCA0MD &= ~0x40; // WDTE = 0 (watchdog timer enable bit) OSCICN |= 0x03; // Set internal oscillator to highest // setting (24500000) /* XBR0 = 0x00; // XBAR0: Initial Reset value XBR1 = 0x40; // XBAR1: Initial Reset value P2MDOUT = 0xf0; // Output configuration for P2 P3MDOUT = 0x1f; // Output configuration for P3 */ P0SKIP = 0xFE; P1SKIP = 0x7F; XBR0 = 0x02; // Enable SMBus pins XBR1 = 0x40; // Enable crossbar and weak pull-ups P0MDOUT = 0xFF; // All P0 pins open-drain output P0 = value; P2MDOUT = 0xFF; P3MDOUT |= 0x04; // P3.3 push-pull output P2 |=0X01; SPI0_Init (); YJ_Init(); while(1) { data1=key_in(); //读按键 if(data1!=0x32) //根据按键返回值 { for(q=0;q<1000;q++); P0 = value<<1; //控制LED从右向左点亮 for(q=0;q<1000;q++); } if(data1!=0x33) //有按键按下,显示对应的按键 { YJ_Init(); //LCD初始化 for(q=0;q<1000;q++); P0 = value>>1; //控制LED从左向右点亮 for(q=0;q<1000;q++); } } }
MIN: MOV R0,#00H MOV DPTR,#TABDD1: MOV A, R0 MOVC A,@A+DPTR MOV P1, A ACALL DELAY1 INC R0 CJNE R0, #10H, DD1 JMP MIN DELAY1: MOV R5,#2 ; 可以改时间 D1: MOV R6,#255 D2: MOV R7,#255 D3: DJNZ R7,D3 DJNZ R6,D2 DJNZ R5,D1 RET TAB: DB 0E8H,0D8H,0B8H, 78H,0E4H,0D4H,0B4H, 74H DB 0E2H,0D2H,0B2H, 72H,0E1H,0D1H,0B1H, 71H END
1)P2口的8个脚对应8个LED;设D1灯对应高位,D8灯对应低位; 2)P1口的P1.0脚对应XO按钮;P1.1脚对应X1按钮; 3)开始时,显示第一种方式:向P2口写入a=01111111,延时0.5S,a 循环右移一位,再延时0.5S,如此反复。 4)当收到XO按钮信号后,向P2口写入a=01111111,延时1.5S,a 循环右移二位,再延时1.5S,如此反复。 5)当收到X1按钮信号后,向P2口写入a=10111111,延时1S,a 带进位右移二位,再延时1.5S,如此反复。当Cy=0时,执行 3)。
#include"reg52.h"//此文件中定义了单片机的一些特殊功能寄存器 typedef unsigned int u16;//对数据类型进行声明定义 typedef unsigned char u8; //LED灯命名 sbit leda=P0; sbit led1=P0^0; sbit led2=P0^1; sbit led3=P0^2; sbit led4=P0^3; sbit led5=P0^4; sbit led6=P0^5; sbit led7=P0^6; sbit led8=P0^7; void delay(u16 i) { while(i--); } void main() { while(1) { leda=1;//全部灯亮 //从左到右依次熄灭 led1=0; delay(50000);//大约延时450ms led2=0; delay(50000);//大约延时450ms led3=0; delay(50000);//大约延时450ms led4=0; delay(50000);//大约延时450ms led5=0; delay(50000);//大约延时450ms led6=0; delay(50000);//大约延时450ms led7=0; delay(50000);//大约延时450ms led8=0; delay(100000);//大约延时900ms //从右到左依次点亮 led8=1; delay(50000);//大约延时450ms led7=1; delay(50000);//大约延时450ms led6=1; delay(50000);//大约延时450ms led5=1; delay(50000);//大约延时450ms led4=1; delay(50000);//大约延时450ms led3=1; delay(50000);//大约延时450ms led2=1; delay(50000);//大约延时450ms led1=1; delay(50000);//大约延时450ms leda=1;//全部灯亮 } } 扩展资料:main()应用: 1、C++中的main函数 C++继承了C语言的大部分特性,因此保留了“程序总是从main函数开始执行,且总是默认从main函数的return语句或结尾处结束运行”这一传统, 但是要注意,C++中的main函数要想作为程序执行的出入口,必须写在全局(Global)范围,不能写成某个结构体或某个类的成员。 虽然main函数可以作为结构体或者类的成员函数,但相应地会失去作为程序出入口的功能。 C++中全局main函数的书写格式与C语言完全相同,功能也完全相同,且同一C++程序同样只能有一个全局main函数。 2、Java中的main函数 Java同样是以main函数作为程序执行出入口的,但Java作为“更纯洁”的面向对象语言,它的main函数与C/C++有很大的不同。 首先,返回值的概念淡化,在Java Application中main不允许返回值,因此int main是被禁止的,必须使用void main,int main仅限在JavaBean中使用。 其次,Java中所有的函数必须属于类,没有什么全局函数一说,因此main函数不能是全局成员,必须是某个类的成员。 第三,由于main函数变成了类的成员函数,因此要想直接被系统调用,还必须使用public static使其成为静态函数并具有公开权限。 第四,main函数的参数被简化,只需要提供字符串数组即可,不需要提供参数个数(这是由于Java的数组具有下标检查功能的原因) Java Application中的main函数一般格式如下(类名可以自定义,但保存为Java源码时,主文件名必须与类名相同,否则可能无法运行) public class MainDemo{ public static void main(String[]args){ //TODO:在此处写入主函数的内容 } } Java Applet的运行机制与Java Application完全不同,因此不需要main函数 3、C#中的main函数 C#中的main函数与Java大同小异,同样必须是类成员,同样使用字符串数组作唯一参数,同样是静态函数,同样的void main, 与之不同的是:main的首字母变成了大写,即"Main函数“,且是否限定为public级别已经无所谓了(默认没有public,但某些场合可能还是需要public) 另外,需要注意的是,C#中不再有”类名必须与主文件名同名“的限制,即使类名不和主文件名相同,程序照样可以运行。 C#应用程序中的main函数默认是这样的(注意main的首字母已是大写) C#和C/C++、java不同的是C#不在拘泥于必须从main()函数开始执行,C#是属于事件触发。 class Program{ static void Main(string[]args){ //TODO:在此处写入主函数的内容 } }
可以参考一下这个 仿真实例。要怎么显示 在原程序 中修改,很简单看了就知道怎么改。
单片机的P1.0-P1.3接四个发光二极管L1-L4的阴极,P1.4-P1.7接四个开关K1-K4 程序: ORG 00H START: MOV A,P1 ANL A,#0F0H RR A RR A RR A RR A ORl A,#0F0H MOV P1,A SJMP START 可以检测单个按键,也可以同时检测多个按键 过程:开始——读P1口数据到A——A中的数据右移4次——A中的内容和F0H相或——A中的数据送到P1口——回到开始