int w[8]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};int i,tt;int temp;void main(){ TMOD=0X01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;tt=0;i=0;temp=0xfe;duan
LED1 BIT P3.7 ; 程序没有改动,为了配合仿真图只改了端口。KEY1 BIT P3.2 LJMP MAIN ORG 0030H MOV R1,#1 ; 亮灯个数 MAIN: MOV P1,#0FFH CHECK: JB KEY1,CHECK MOV P1,#11111111B MOV R2,#8 LO
当两个开关都断开时单片机控制P1口所接的八个LED灯一秒钟亮一秒暗地闪烁,当开关S1合上D1~D4LED灯亮另四个暗,当S2合上D5~D8LED灯亮另四个暗(如果S1、S2同时合上S1有优先控制权),focs=6MHZ,要求定时器完成1秒
点亮子函数:include"reg51.h"include"intrins.h"define uchar unsigned char void dd(){ uchar temp=0xfe,i;for(i=0;i<8;i++){ P1=temp;temp=_crol_(temp,1);//左移函数 delay();} } 然后你要什么中断
1、首先打开编程软件Keil uVision4,新建一个工程文件,在菜单栏中Project—— New uVision Project..。2、然后选择单片机型号是 Atmel 公司的 AT89c52,单击OK。3、再单击工具栏上新建按钮,新建一个文档,然后再点击保存,
思路: 控制吧个LED灯,使用上拉方式控制,引脚高电平灯灭,引脚低电平灯亮。 这吧个LED使用同一P口上的所有引脚,假设为P一口中的P一.0-P一.漆共吧个脚。
零基础 学STM32L053单片机,以及它的编程——用uVision5编出一个让LED灯亮的程序。
1); // 左移一位,点亮下一位LED delay(55); } // 向右循环点亮LED for(i=0; i/ 右移一位,,点亮上一位LED delay(55); } }}// 延时函数,延时a毫秒void delay(uint a){ uint x,y; for(x=a;x>0
1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。2、编写相应的代码:#include
一、简单讲:想要灯亮,就将对应端口置0。反之就是灯灭。二、详细讲:假设用keil编写,新建工程->选择单片机型号->新建源文件->设置output(点魔术棒图标勾选create hex file)。我们用P2^0端口连接一个led(led另一端连
} 单片机驱动LED灯的源程序:include
P3=0xfe;//第一个灯亮 delay();//延时 P3=0xfd;//第二个灯亮 delay();P3=0xfb;//第三个灯亮 delay();P3=0xf7;//第四个灯亮 delay();P3=0xef;//第五个灯亮 delay();P3=0xdf;//第六个灯亮 delay
以下是一个单片机间隔点亮一LED灯的C语言程序,以8051单片机为例:c Copy code include //包含了AT89C51的寄存器定义 void delay(unsigned int xms) //延时函数,xms为要延时的毫秒数 { unsigned int i,j;for(i=xms;i
单片机C语言编程点亮LED灯
可以分10个段,也就是10秒,PWM值从100到0每次减10,这样就可以实现这个效果了。
1、创建项目,如图所示。2、创建延迟函数。3、创建C语言主函数。设计unsigned char k=0;变量。4、添加循环效果。5、点亮灯,通过k++,改变效果。6、添加延迟效果,单片机就可以控制8个灯依次亮,全亮了,然后再依次灭。
include
i0.0为启动按钮,Q0.0为指示灯 按I0.0,当I0.0断开后开始计时,Q0.0亮5秒,熄灭5秒,如此运行5次后停止 网络1 LD I0.0 TOF T101, 5000 网络2 LDW<= 1, T101 AW> 501, T101 LDW<= 1
在上述示例程序中,我们将LED连接到Arduino的13号引脚,并使用digitalWrite()函数控制该引脚的电平。HIGH表示将引脚设置为高电平(点亮LED),LOW表示将引脚设置为低电平(熄灭LED)。通过delay()函数设置LED灯亮灭的时间间隔。
关于stc单片机做LED点亮和灭的时间控制程序问题?
假设高电平点亮LED,LED接在P0口,主要程序语句如下:uchar c=0;uchar i;while(c<3){ for(i=0;i<8;i++} { P0=1<
1 //50毫秒中断一次{ jishi++; if(jishi>10) //中断十次之后 { jishi=0; //重置计时 led=!led; //取反LED状态。 } }
if(order==1) //方式一:全灯逐个点亮,然后逐个灭掉 { for(n=0;n<8;n++){ P2|=0x01<
void timer() interrupt 1 { TH0=(65535-50000)/256;TL0=(65535-50000)%256;num++;} 这个程序是逐个点亮的(思路:由256逐减1,值由LED灯显示)include
说明:单片机控制LED灯间隔时间闪烁 所用程序很简单,实际情况可作相应变化,也有多种方式实现。proteus电路图 所需元件清单:(分别是) 51单片机 电容 瓷片电容(也可用普通电容) 晶振 红色二极管 电阻 (tip:没有给高电
{ P1=0xff; //点亮P1口第0个引脚上的LED灯,0xff为二进制的11111111 delay(1000); //延时1秒 P1=0x00; //将P1口全部置为0,熄灭LED灯 delay(1000); //延时1秒 } } 上述程序的作用是在单片机的P1口上间隔点亮
单片机间隔点亮一led灯的C语言程序
设置一个delay_2s()就是: delay_2s() { for(i=0;i<200;i++) { for(j=0;j<200;j++) } } 具体要看你的晶振大小 然后 void main() { uchar temp = 0x01; while(1) { delay_2s(); P0 = temp delay_2s(); temp <<=1; i++; if(i>=7) { i = 0; temp = 0x01 } } } 很容易理解就是让0X01一直左移赋值给P0口然后循环我再帮你补一课,看了你的标题,我写了一个用定时器0来控制一个LED灯第隔1秒钟亮灭一次的程序,希望对你有用,另外我也写了一个你说的那个程序,一起发上来吧 ****************这个是用定时器0控制一个灯的亮和灭****************************** #include #define uchar unsigned char #define uint unsigned int /**************************************/ uchar num; bit tt; sbit d=P1^0; /******************主程序入口********************/ void main() { TMOD=0x01; TH0=(65535-50000)/256; TL0=(65535-50000)%256; TCON=0x10; EA=1; ET0=1; tt=255; while(1) { if(num==20) { tt=!tt; d=tt; num=0; } } } void timer() interrupt 1 { TH0=(65535-50000)/256; TL0=(65535-50000)%256; num++; } ****************这个程序是逐个点亮的(思路:由256逐减1,值由LED灯显示)*********************** #include #define uchar unsigned char #define uint unsigned int /**************************************/ uchar num,tt; //bit tt; sbit d=P1^0; /******************主程序入口********************/ void main() { TMOD=0x01; TH0=(65535-50000)/256; TL0=(65535-50000)%256; TCON=0x10; EA=1; ET0=1; tt=255; while(1) { if(num==20) { tt--; P1=tt; num=0; } } } void timer() interrupt 1 { TH0=(65535-50000)/256; TL0=(65535-50000)%256; num++; }
如下即可: #includevoid main(){ unsigned int i, j; P1 = 85; while(1) { P1 ^= 255; for(i = 100; i > 0; i--) for(j = 800; j > 0; j--); }}
要求D11~D18八个led从左到右依次单个点亮
今天做回好人,闲着给你写一个做参考。 按键按一次LED灯灭,在按一次按键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; x > 0; x--) for(y = 120; y > 0; y--); } int main(void) { LED1_01 = 1; //打开LED灯点亮 while(1) { if(KEY0_01 == 0) //检测按键是否按下 { Delay_1ms(10); //延时去抖动 if(KEY0_01 == 0) //确定按键按下 { LED1_01 = ~ LED1_01; //取反LED灯 [ 亮 . 灭 ] } while(KEY0_01 == 0); //检测松手 } } } *****************************************************************************************************************/
没有电路图,没法写程序。 比如,按键在P0口与在P3口程序就不一样; 又比如,扫描的键盘与直接连接在Pn口的又不一样。 没有图实在是没法写程序呃 ***************************************************************** 假定CPU是用51系列的单片机; 假定键盘直接连接在Pn口,从Pn0~Pn7分别对应键1~键7; 假设LED直接由Pm口驱动,从Pm0~Pm3分别对应Led1~Led4; 在这个前提下,以上的问题可以编程如下: ***************************************************************** #define KEY1 01h ;定义键1 #define KEY2 02h ;定义键2 #define KEY3 04h ;定义键3 #define KEY4 08h ;定义键4 #define KEY5 10h ;定义键5 #define KEY6 20h ;定义键6 #define KEY7 40h ;定义键7 #define KEY8 80h ;定义键8 #define LED1 Pm0 ;定义灯1 #define LED2 Pm1 ;定义灯2 #define LED3 Pm2 ;定义灯3 #define LED4 Pm3 ;定义灯4 #define LED_ON 1 ;定义亮灯操作 #define LED_OFF 0 ;定义灭灯操作 ;延迟4秒子程序 #define Timer4s 1234h ;延迟4秒的参数自己调整 Dly4s: push acc; mov dptr, #Timer4s; Dly_2: mov a,dpl; Dly_1: mov dpl,a; dec a; jnz a,Dly_1; mov dpl,a; mov a,dph; dec a; mov dph,a; jnz a,Dly_2; pop acc; ret; ;******* 主程序 **************************** main: mov a, Pn; je a,#KEY1, K1_Pressed; je a,#KEY2, K2_Pressed; je a,#KEY3, K3_Pressed; je a,#KEY4, K4_Pressed; je a,#KEY5, K5_Pressed; je a,#KEY6, K6_Pressed; je a,#KEY7, K7_Pressed; je a,#KEY8, K8_Pressed; ljmp main; K1_Pressed: mov LED1, LED_ON; mov LED2, LED_ON; call Dly4s; mov LED1, LED_OFF; mov LED2, LED_OFF; ljmp main; K2_Pressed: mov LED3, LED_ON; mov LED4, LED_ON; call Dly4s; mov LED3, LED_OFF; mov LED4, LED_OFF; ljmp main; K3_Pressed: mov LED1, LED_ON; call Dly4s; mov LED1, LED_OFF; mov LED2, LED_ON; call Dly4s; mov LED2, LED_OFF; ljmp main; K4_Pressed: mov LED3, LED_ON; call Dly4s; mov LED3, LED_OFF; mov LED4, LED_ON; call Dly4s; mov LED4, LED_OFF; ljmp main; K5_Pressed: mov LED1, LED_ON; mov LED2, LED_ON; call Dly4s; mov LED1, LED_OFF; mov LED2, LED_OFF; ljmp main; K6_Pressed: mov LED3, LED_ON; mov LED4, LED_ON; call Dly4s; mov LED3, LED_OFF; mov LED4, LED_OFF; ljmp main; K7_Pressed: mov LED1, LED_ON; call Dly4s; mov LED1, LED_OFF; mov LED2, LED_ON; call Dly4s; mov LED2, LED_OFF; ljmp main; K8_Pressed: mov LED3, LED_ON; call Dly4s; mov LED3, LED_OFF; mov LED4, LED_ON; call Dly4s; mov LED4, LED_OFF; ljmp main;