头文件,变量声明,函数声明,子函数,主函数这几部分组成,头文件其实就是一种声明,将单片机中的一些常用的符号变量进行定义声明,对一些特殊功能寄存器进行声明,对一些关健字进行定义,比如我们常用的P0口,在写程序的时候你就不用在去定义这个符号,不用把它的字节地址给这个符号了,直接用就可以
定时,轮流执行,即可。
比如,四个数码管,显示千、百、十、个四位数,每一位,显示1ms。
可用定时器,定时1ms。
每中断一次,就执行一个任务,显示一位数。
人,看起来,四个数码管,就是同时发光。
--------
当然,不用定时中断,也可。
采用轮流查询的方法,也可以实现多任务。
编写程序时加入次数。
单片机想要一个开关,控制两个程序,可以在编写程序时加入命令,按一次控制一个程序,按第二次时控制另外一个程序。
单片机全程单片微型计算机也被称为微控制器,在连接时需要通过,不同的单元命令完成具体指令。
你这个应该是两个功能同时实现,渐亮渐暗是用延时实现的PWM,而灯的闪烁其实就是单片机的输出为矩形波,两个功能同时实现时,就是在矩形波的波峰波谷时期加入了PWM。两个波形的叠加(将两个功能柔和在一起)。在灯渐亮渐暗子程序中,一个for循环for(i=1;i<2000;i=i+100)其实就是一个PWM的周期,是相同的、一定的,那么就可以利用判断是第几个周期来决定该周期是否要闪烁,还是关闭(也就是利用了PWM的周期来确定矩形波的周期)。
这个循环for(j=0;j<1;j++)是不是可以去掉呢。。。。。。。。
修改后的程序:调试过了(灯的端口改为P0了)
#include<reg51h>
sbit green=P0^0;
sbit blue=P0^1;
sbit red=P0^2;
sbit shan=P0^3;
sbit shan2=P0^4;
void delay(int i)
{
while(--i)
{
;
}
}
void bianse1(void)//这个函数程序是控制灯渐亮渐暗
{
int i;
for(i=1;i<2000;i=i+100)
{
if(i%200==0)shan=~shan; /经过200个PWM周期灯的亮灭交替,改变这个参数可以改变灯的闪烁频率/
green=0;
blue=0;
red=0;
delay(i);
green=1;
blue=1;
red=1;
delay(2000-i);//红,绿,蓝一起上升
}
for(i=2000;i>0;i=i-100)
{
if(i%200==0)shan=~shan;
blue=1;
green=1;
red=1;
delay(2001-i);
red=0;
green=0;
blue=0;
delay(i);//红蓝绿下降
}
}
void bianse2(void)//这个函数程序是控制灯渐亮渐暗
{
int i;
for(i=1;i<2000;i=i+100)
{
if(i%200==0)shan2=~shan2;
green=0;
blue=0;
red=0;
delay(i);
green=1;
blue=1;
red=1;
delay(2000-i);//红,绿,蓝一起上升
}
for(i=2000;i>0;i=i-100)
{
if(i%200==0)shan2=~shan2;
blue=1;
green=1;
red=1;
delay(2001-i);
red=0;
green=0;
blue=0;
delay(i);//红蓝绿下降
}
}
void shanshuo(void)//这个函数程序是控制灯闪烁
{
int i,k;
for(k=0;k<10;k++)
{
shan=0;
delay(5000);
shan=1;
delay(4000);
}
for(i=0;i<10;i++)
{
shan2=0;
delay(5000);
shan2=1;
delay(4000);
}
}
void main(void)
{
shan=1;
shan2=1;
while(1)
{
bianse1();
bianse2(); /两个灯的交替闪烁/
green=1;
blue=1;
red=1;
//shanshuo();
}
}
一个单片机只能依次运行程序,不能同时运行程序。单片机运行速度快,比如电机转的时候,蜂鸣器滴滴滴的叫,同时跑马灯,单片机按照程序依次的做这几个事,很快做完,人眼是分辨不出来的,就像在同时进行。现在写的都是{程序1;程序2;程序3;}3个程序依次进行那我要是想要他同时跑怎么搞啊?同时跑,用3个单片机,同时跑3个程序,想干什么,要汇总,主次,用总线,串行,或并行总线,连接好,变好程序,内容多了,得多掌握知识。
以上就是关于单片机程序有哪几部分组成头文件的作用是什么全部的内容,包括:单片机程序有哪几部分组成头文件的作用是什么、单片机怎么样可以同时执行两个任务程序要怎么写把两个程序一块写就好了嘛、单片机一个开关怎么控制两个程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)