概述
目录
实现方法
程序设计
延时程序分析
振荡周期
机器周期
指令周期
实现方法
P1.0输出低电平时,使D1正向偏置,就会点亮发光二极管LED;P1.0输出高电平时,LED熄灭。如果P1.0输出电平在高低电平之间不停转换,则LED灯会产生闪烁。也就是说,先点亮LED灯一段时间之后,再熄灭LED灯,再延时一段时间后点亮LED灯,如此反复(可用循环语句实现)。
程序设计
用单片机控制一个灯闪烁,认识单片机的工作频率
#include<reg51.h>
//包含单片机寄存器的头文件
/****************************************
函数功能:延时一段时间
*****************************************/
void delay(void)
//两个void分别表示无需返回值和没有参数传递
{
unsigned int i;
//定义无符号整数,最大取值范围为0~65535
for(i=0;i<20000;i++);
//做20000次空循环
//什么也不做,等待一个机器周期
}
/*******************************************************
函数功能:主函数 (C语言规定必须有且只能有1个主函数)
********************************************************/
void main(void)
{
while(1)
//无限循环
{
P1=0xfe;
//P1=1111 1110B, P1.0输出低电平
delay();
//延时一段时间
P1=0xff;
//P1=1111 1111B, P1.0输出高电平
delay();
//延时一段时间
}
}
P1=0xfe; //P1=1111 1110B, P1.0输出低电平
delay(); //延时一段时间
P1=0xff; //P1=1111 1111B, P1.0输出高电平
delay(); //延时一段时间
延时程序分析
单片机需要一个时钟信号送给内部各电路,才能使它们有节拍地工作。时钟信号的频率由外部振荡电路的晶振频率决定。如果外接晶振的频率是12MHz,则外部振荡电路送给单片机时钟信号的频率也是12MHz。此时,我们说单片机的工作频率就是12MHz。以下是与工作频率相关的几个重要概念。
振荡周期
振荡周期:为单片机提供时钟脉冲信号的振荡源的周期。例如,单片机外接晶振频率是12MHz时,则振荡周期就是(1/12MHz)=(1/12)μs。
机器周期
机器周期:51系列单片机的一个机器周期由12个振荡周期组成。如果一个单片机的工作频率是12MHz,那么它的工作周期就是(1/12)μs,其机器周期就是12×(1/12)μs= 1μs;如果单片机的外接晶振频率为11.0592MHz,其机器周期就是12×(1/11.0592)μs= 1.085μs。
指令周期
指令周期:单片机执行一条指令所用的时间。一般来说,单片机执行1个简单指令需要一个机器周期,执行复杂指令需要两个机器周期。因为一个机器周期非常短,一般只有1~2μs,所以单片机工作速度非常快。
最后
以上就是听话玫瑰为你收集整理的单片机——用单片机控制一个灯闪烁实现方法程序设计延时程序分析的全部内容,希望文章能够帮你解决单片机——用单片机控制一个灯闪烁实现方法程序设计延时程序分析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复