第二个实验,这个实验是基于第一个实验上在编译函数中稍加改变而成,
1 #include //也有其他的编译方法,比如第二行可以也成 #define u16 unsigned int / typedef unsigned u16
2 sbit led = P2^0;
3 void delay(unsigned int num) //延时函数
4 {
5 unsigned int x,y;
6 for(x=num;x>0;x--)
7 for(y=110;y>0;y--)
8 {
9 ;
10 }
11 }
12 void main(void)
13 {
14 led = 1;
15 while(1)
16 {
17 led = 0; 低电平此时亮
18 delay(70); 间隔70毫秒 此时灯会闪烁
19 led = 1; 高电平此时不亮
20 delay(70);
21 }
22 }
这个代码中3-11行是一个delay函数,它的作用是延时功能,通过函数的赋值,可以调节灯闪烁灯频率,
另外在看视频的过程中,“晶振”词上网查了一下,晶振也称晶体振荡器。
晶振在单片机中起到很大的作用,它可以结合单片机内部的电路产生单片机所需的时钟频率,单片机一切指令的执行
都是建立在这个基础上的,也就是说晶振提供的时钟频率越高,单片机工作地效率就越快。
时钟频率就是在1秒钟的标准时间内,0和1的电压脉冲变化了多少次。
关键字:延时函数 灯闪烁
引用地址:
延时函数--让灯闪烁
推荐阅读最新更新时间:2024-03-16 15:25
让led灯闪烁
#include reg51.h #define uint unsigned int #define uchar unsigned char sbit en=P1^0; void delay(uint x ) { uint i,j; for(i=x;i 0;i--) for(j=110;j 0;j--); } void main() { while(1) { en=~en; delay(15); } }
[单片机]
51单片机控制led灯闪烁程序
Keil 写程序的过程,建立工程-- 保存工程-- 建立文件-- 添加文件到工程-- 编写程序-- 编译-- 下载程序。 #include sbit LED = P0^0; sbit ADDR0 = P1^0; sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4; void main(){ //void 即函数类型 //以下为声明语句部分 unsigned int i = 0; //定义一个无符号整型变量 i,并赋初值 0 //以下为执行语句部分 ENLED = 0; //U3、U4 两片
[单片机]
1.13.2_高精度延时函数_P
在使用某些设备时,对延时时间的精度有很高的要求,这时候,就可以使用高精度的延时函数来实现精准延时。 实现方法 实现高精度的延时函数的方法主要有以下两种。 使用for循环 在for循环中循环自减,为0跳出,以此来实现延时;这种方法实现难度较高,需要不断测试才能确定一个比较精确的值,且移植性能很差(同样程序,比如在Nor和SDRAM上运行,花费的时间将不同,不同款的SDRAM设备,花费的时间又会不同)。 使用定时器 使用芯片内部的定时器可以实现微秒级的精准计时。 假设有一个定时器,设置一个初始值,每来一个CLK计数值就减一,减到0则重新计数。 假设Tclk = 0.1us,也就是每0.1us来一个时钟脉冲,那么我们
[单片机]
怎样令我的LED灯调光而不闪烁?
了解怎样使用安森美半导体NSIC2050JBT3G恒流LED驱动器来为LED灯调光且无闪烁。我们的应用专家热忱回答您有关LED照明设计的问题。理解LED照明调光的基本方法以及造成LED照明闪烁的原因。
[电源管理]
STC89C52单片机 使用定时器使LED灯闪烁
#include reg52.h #include intrins.h #define uint unsigned int #define uchar unsigned char sbit LED1 = P1^0;//LED1 //定时器1初始化 void timer1Init() { TR1 = 1; //启动定时器1 TMOD |= 0X10; //定时器1工作模式1,16位定时模式 TH1 = 0x4b; TL1 = 0xfd; //定时50ms } void main()//main函数自身会循环 { uchar mSec;//毫秒储存变量 timer1In
[单片机]
51例程---闪烁灯
#include reg51.h void delay(void) { unsigned char i = 100; unsigned char j = 100; while(i--) { while(j--); } } //延时函数 void main(void) { P0 = 0xff; //灯亮 delay(); //延时 P0 = 0x0; //灯灭 delay(); //延时 } 主要是要学会用for语句学会写延时函数
[单片机]
STM32延时函数的四种方法
STM32延时函数的三种方法:普通延时、SysTick 定时器延时(1.中断方式;2.非中断方式) 单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us( )和毫秒级delay_ms( )。 1.普通延时法 (1)普通延时法1 这个比较简单,让单片机做一些无关紧要的工作来打发时间,经常用循环来实现,不过要做的比较精准还是要下一番功夫。下面的代码是在网上搜到的,经测试延时比较精准。 //粗延时函数,微秒 void delay_us(u16 time) { u16 i=0; while(time--) { i=10; //自己定义 while(i--) ;
[单片机]
单片机PWM技术实现呼吸灯和KTV等娱乐场所的灯光闪烁效果
程序是在51hei单片机开发板上面做的,电路很简单,最小系统+P0的八个led即可.ADDR0和ENLED那是开发板上的led使能电路控制端,如果是你自己做的电路 可以删掉这几个语句.或者不用管他,不会影响程序的运行. /** ************************************************************************************************************ * @file : main.c * @author : xr * @date : 2014年4月15日20:34:05 - 2014年4月15日22:28:08 * @version: V
[单片机]