sbit LED=P0^0;sbit ENLED=P1^4;sbit ADDR0=P1^0;sbit ADDR1=P1^1;sbit ADDR2=P1^2;sbit ADDR3=P1^3;main(){ uint8 j;uint16 i;ENLED=0;ADDR0=0;ADDR1=1;ADDR2=1;ADDR3=1;while(1){ if(j==0
单片机主程序中需要死循环,不然程序顺序执行完就停止了。所以这程序不是不停止,而是停止了。主程序应修改 void main(){ uchar temp;temp = 0xfe;while(1){ P2 = temp;delay(1000);temp = _crol_(temp, 1);} }
sbit P2_4=P2^4;sbit P2_5=P2^5;/* 花样表格 */ uchar code seg1[]={ 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, 0x00,0xff, 0x00,0xff}; //控制字( 用左向右流动,然后全部闪烁两次
sbit led7 = P2^6;sbit led8 = P2^7;void main(){ int i,j;//点亮第一个灯 led1 = 1;led2 = 0;led3 = 0;led4 = 0;led5 = 0;led6 = 0;led7 = 0;led8 = 0;//延时1秒 for(i = 0;i <
proteus电路图 画法依旧不说,给出元件清单,其实都差不多,与上篇一致51单片机 电容 瓷片电容 晶振 红色二极管 电阻 电路图如图 程序清单 说明:流水灯的闪亮方法肯定不是唯一的,按照各种形式都可以写出所需的程序,这里只用
51单片机C程序实验LED灯:[4]花样流水灯
急求单片机流水灯程序及详解 100 第一步:8个发光二极管同时亮并且闪烁2次,闪烁间隔为0.3秒。第二步:8个发光二极管一个一个亮,间隔时间为0.5秒。第三步:开始时,8个发光二极管全部熄灭,0.3秒后一个被点亮,间隔0 第一步:8个
你首先要确定你的电路。选择什么单片机和数码管,8个按键最简单8个IO口控制。一般简单的是用三极管驱动数码管。如果你会C语言的话,很容易上手。自己先从控制1个数码管学,在控制2个数码管(2个数码管基本上可以完成上面
define uint unsigned int //延时 void DelayMS(uint x){ uchar i;while(x--){ for(i=0;i<120;i++);} } //主程序 void main(){ uint s;while(1){ P0=0xfe;DelayMS(150);for(s=8;s>1;s--){ P0=
1、依次亮,依次灭:从一个灯亮到全亮,再到全灭,每次改变一个灯亮灭 2、奇偶号灯间隔亮灭:隔一个灯亮一个灯亮灯时间为1s,没有灯全灭的时候 3、依次闪烁、切换时间为3秒,闪烁时间为2秒,我理解的是,没三秒
首先定义变量类似于P1_2 = P1^2这种,先把这八个管脚全部定义好,之后给个for循环,让P1(假设的你LED灯连接的是P1口)口的P1^0~P1^7相关标志位依次等于0或者1(0还是1需要看你在LED等上给的是高电位亮还是低电位
1、创建项目,如图所示。2、创建延迟函数。3、创建C语言主函数。设计unsigned char k=0;变量。4、添加循环效果。5、点亮灯,通过k++,改变效果。6、添加延迟效果,单片机就可以控制8个灯依次亮,全亮了,然后再依次灭。
单片机控制8个灯依次亮,全亮了,再依次灭的c语言流程图,顺便加上解释,不然看不懂
并控制LED灯的闪烁频率;然后使用一个计时器中断服务程序来控制LED灯的闪烁,具体实现方式请参考代码注释。最后,为了保证每个周期的闪烁持续时间与频率相符,应该在循环内部加入一个延时操作,等待一定时间再进入下一次循环。
你写的程序并没有加载到工程中,只是写了程序没有用的,不加到工程中,是不能编译的。程序是对的。见下图,首先要把写的程序保存,然后在画红圈的位置,点鼠标右键,把这个程序加进来,加载进来后,左边应该是那样的。
led=1;//点亮 delay(100);//延时100MS led=0;//熄灭 } else led=0;} void delay(unsigned int i){自己根据单片机频率写个1MS带形参的演示程序} 这个程序是现写的。。应该能执行,有些细节没有写,自己修改下,
1、新建项目,如图所示。2、添加头文件,创建延迟函数。3、创建C主函数。4、添加死循环效果。5、点亮LED灯。P1=0x7e;二进制11111110。6、添加延迟效果。注意事项:很多公司都有51系列的兼容机型推出,今后很长的一段时间内
说明:单片机控制LED灯间隔时间闪烁 所用程序很简单,实际情况可作相应变化,也有多种方式实现。proteus电路图 所需元件清单:(分别是) 51单片机 电容 瓷片电容(也可用普通电容) 晶振 红色二极管 电阻 (tip:没有给高电
51单片机C程序实验LED灯:[1]单个灯闪烁
1、延时子程序的设计 2、I/O口的应用操作 实验操作:1、设计8个循环点亮的LED灯,1、2、3、4、5、6、7、8顺序点亮。程序: ORG 0000H LJMP START ORG 0100H START: MOV A,#007FH LOOP: RL AMOV P1,ALCALL
可以用for循环试试unsingned char i;for(i=0;i<5;i++)//流水灯闪烁程序。若干个灯泡依次点亮就叫流水灯,它用在夜间建筑物装饰方面。例如在建筑物的棱角上装上流水灯,可起到变换闪烁美不胜收的效果。单片机(Single-
proteus电路图 画法依旧不说,给出元件清单,其实都差不多,与上篇一致51单片机 电容 瓷片电容 晶振 红色二极管 电阻 电路图如图 程序清单 说明:流水灯的闪亮方法肯定不是唯一的,按照各种形式都可以写出所需的程序,这里只用
我们得出在不同LED小灯被点亮的时候,P1端口输出的状态程序流程图还是比较简单的,P1口在间隔一段时间之后,输出不同的值,然后返回到程序执行的起点,重新开始执行,这样就会循环往复不断地出现流水的效果。
材料:实验板一块(可以买现成的,也可以买面包板自己搭建),电阻、LED灯 若干,5V电源等。以下程序可以直接用Keil C 直接编译执行。//可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。//具体实现
然后主程序利用直接赋值,与“”循环 第二种是稍微高级一些的写法,调用了其他头文件 主要是利用了一个intrins.h文件下的右循环语句”P0=_cror_(P0,1);
一般来说,实现流水灯功能需要以下步骤:首先确定单片机型号和开发环境,并熟悉指令集和寄存器配置。然后确定LED灯的连接方式,并编写程序来控制LED灯的亮灭状态。最后在程序中添加延时函数来实现LED灯的亮灭延迟。在编写程序时
单片机LED流水灯实验怎么设计?
include
设计一个十字路口三色信号灯指示控制程序(带有人行道指示信号灯),用来指示来往车辆及行人的通行,交通信号灯自动循环过程如下表所示1.启动功能:按下启动按钮SB1后,交通灯进入自 设计一个十字路口三色信号灯指示控制程序(带有人行道指示
sbit GREEN_A=P0^2;sbit RED_B=P0^3; //南北向灯 sbit YELLOW_B=P0^4;sbit GREEN_B=P0^5;uchar Flash_Count=0,Operation_Type=1; //闪烁次数,操作类型变量 《单片机C语言程序设计实训100例---基于8051和PROTE
1、设计一个十字路口的交通灯控制电路,要求东西方向车道和南北方向车道两条交叉道路上的车辆交替运行,每次通行时间都设为45秒。时间可设置修改。2、在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道;3、黄灯亮时
以74LS273作为输出口,控制4个双色LED灯(可发红,绿,黄光),模拟交通灯管理。二.实验目的 1.学习在单片机系统中扩展简单I/O接口的方法。2.学习数据输出程序的设计方法。3.学习模拟交通灯控制的方法。4.学习双色灯的
交通信号灯控制程序设计
我用了2年多的MC9S12,比较熟悉,建议你看孙同景编的《FREESCALE S12十六位单片机原理及嵌入式开发技术》,直接从后面的IO接口看起,多练习例程 很快就会熟练的 流水灯的程序何其简单
LJMP MAIN ORG 1000H MAIN:AAA: MOV A,#OFEH MOV R2,#0FFH MOV R1,#7 MOV P2,R2 AGAIN:MOV P1,A RL A LCALL DELAY DJNZ R1,AGAIN MOV A,#0FEH MOV R2,#0FFH MOV R1,#7 LCALL DELAY MOV P1,R2 AGAI
3、如果驱动有过温保护功能,而灯具的材质散热性能不能达到要求,驱动过温保护开始工作也就会有一闪一灭的现象,例如:20W投光灯外壳用来装配30W的灯具,散热工作没有做好就会这样了。4、如果驱动有过温保护功能,而灯具的
可以用外部中断计数,来实现流水灯的正转、暂停、以及反转和爆闪。。这是我前几天写的一个这样的程序,楼主可以结合protues 画图仿真,注意程序中所用到的IO端口就行了。include
改变嵌入式闪烁灯的参数。要实现改变灯状态的时问问隔,只需改变delay_ms这函数的里面的参数即可,例如时间间隔改为0、02秒就将参数改为20.1秒就将参数改为1000,(delay_ms()函数里面参数的单位为ms)其它以此类推。通过
基于二进制数的移位操作。嵌入式流水灯实验的原理基于二进制数的移位操作。在嵌入式系统中,LED灯的亮灭状态通过控制引脚的电平高低来实现。通过不断改变引脚的电平状态,可以使LED灯在不同的位置上亮起,实现流水灯的效果。
设一个标志位flag, 以标志位的5种状态对应发光二极管的5种工作状态,如当flag=1;发光二极管工作在1,当flag=2;发光二极管工作在2,!然后根据定时器定时功能,5秒到,刷新flag的值,程序如下;;;/*程序功能:定时5S到切换
嵌入式流水灯流程图怎么画嵌入式流水灯流程图咋画啊?
MODE1 EQU 76H ;8253的端口地址 MODE2 EQU 14H CONTROL EQU 8003H COUNT0 EQU 8000H COUNT1 EQU 8001H MODE EQU 80H ;8255的端口地址 PORTA EQU 9000H PORTB EQU 9001H PORTC EQU 9002H CADDR EQU 9003H CS8259A EQU 0A000H ;8259的端口地址 CS8259B EQU 0A001H OUTBIT EQU 0B002H ;灯LED的地址 , 位控制口 OUTSEG EQU 0B004H ;段控制口 ICW1 EQU 13H ;8259的控制字 ,单片8259,上升沿中断,要写ICW4 ICW2 EQU 40H ;中断类型号40H ICW4 EQU 01H ;工作在8086/88方式 OCW1 EQU 0FEH ;只响应INT0中断 DATA SEGMENT NUMBER DB ? NUM DB ? LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;八段管显示 ;显示数据 LEDBUF DB 4 DUP(?) ;显示缓冲 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA INETER PROC NEAR PUSH AX CMP NUMBER,0 JZ CHANGE DEC NUMBER JMP OVER CHANGE:CMP NUM,1 JZ CHANGE2 CMP NUM,2 JZ CHANGE3 CMP NUM,3 JZ CHANGE4 CMP NUM,4 JZ CHANGE1 CHANGE1:MOV NUM,1 ;东西黄 南北红 MOV NUMBER,2 MOV DX,PORTA MOV AL,21H OUT DX,AL JMP OVER CHANGE2:MOV NUM,2 ;东西红 南北绿 MOV NUMBER,20 MOV DX,PORTA MOV AL,14H OUT DX,AL JMP OVER CHANGE3:MOV NUM,3 ;东西红 南北黄 MOV NUMBER,2 MOV DX,PORTA MOV AL,12H OUT DX,AL JMP OVER CHANGE4:MOV NUM,4 ;东西绿 南北红 MOV NUMBER,20 MOV DX,PORTA MOV AL,41H OUT DX,AL JMP OVER OVER: MOV AL,20H MOV DX,CS8259A OUT DX,AL POP AX IRET INETER ENDP START PROC NEAR MOV AL,MODE1 ;8253 的初始化 MOV DX,CONTROL OUT DX,AL MOV DX,COUNT1 MOV AL,0A0H OUT DX,AL MOV AL,086H ;50000 OUT DX,AL MOV AL,MODE2 MOV DX,CONTROL OUT DX,AL MOV DX,COUNT0 MOV AL,10 OUT DX,AL MOV AL,MODE ;5255的初始化 MOV DX,CADDR OUT DX,AL MOV DX,CS8259A ;8259的初始化 MOV AL,ICW1 OUT DX,AL MOV DX,CS8259B MOV AL,ICW2 OUT DX,AL MOV AL,ICW4 OUT DX,AL MOV AL,OCW1 OUT DX,AL CLI MOV AX,0 MOV DS,AX MOV BX,ICW2*4 ;中断号 MOV AX,CODE SHL AX,4 ADD AX,OFFSET INETER ;中断入口地址(端地址为0) MOV [BX],AX MOV AX,0 INC BX INC BX MOV [BX],AX ;代码段地址为0 MOV AX,DATA MOV DS,AX MOV NUMBER,20 MOV NUM,1 ;计数值初值为1 MOV AL,11H MOV DX,PORTA OUT DX,AL STI MLOOP: ;等待中断,并计数 NOP JMP MLOOP START ENDP CODE ENDS END START//看看用AT89s52行不? //制作:晓军 #include #define ON 1 #define OFF 0 unsigned int t,t_Light; unsigned char flag; sbit SN_Green=P1^0; sbit SN_Yellow=P1^1; sbit SN_Red=P1^2; sbit EW_Green=P1^3; sbit EW_Yellow=P1^4; sbit EW_Red=P1^5; void init(void) { TMOD=0x01; EA=1; ET0=1; TR0=1; TH0=(65536-50000)/256; TL0=(65536-50000)%256; } void main(void) { init(); while(1) { switch(flag) { case 1: SN_Green=ON; SN_Yellow=OFF; SN_Red=OFF; EW_Green=OFF; EW_Yellow=OFF; EW_Red=ON; break; case 2: SN_Green=OFF; SN_Yellow=ON; SN_Red=OFF; EW_Green=OFF; EW_Yellow=ON; EW_Red=OFF; break; case 3: SN_Green=OFF; SN_Yellow=OFF; SN_Red=ON; EW_Green=ON; EW_Yellow=OFF; EW_Red=OFF; break; } } } void timer(void) interrupt 1 using 0 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; t++; if(t==18) { t=0; t_Light++; if(t_Light<=30) { flag=1; } else if(t_Light<=34) { flag=2; } else if(t_Light<88) { flag=3; if(t_Light==88) t_Light=0; } } }
1、创建项目,如图所示。 2、创建延迟函数。 3、创建C语言主函数。设计unsigned char k=0;变量。 4、添加循环效果。 5、点亮灯,通过k++,改变效果。 6、添加延迟效果,单片机就可以控制8个灯依次亮,全亮了,然后再依次灭。