如何用3个按键控制流水灯方向和流速同时使用数码管显示当前时间间隔?
有3个按键,一个控制流水灯速度增,一个控制流水灯速度减,一个控制流水方向流水灯有5种时间间隔,分别是0.1s,0.5s,1s,1.5s,2s。用数码管实时显示当前的速度间...
有3个按键,一个控制流水灯速度增,一个控制流水灯速度减,一个控制流水方向
流水灯有5种时间间隔,分别是0.1s,0.5s,1s,1.5s,2s。
用数码管实时显示当前的速度间隔
求哪位好心人帮帮我,给我一个c语言程序,我才初学51单片机。。。就接到这样一个课题。。 展开
流水灯有5种时间间隔,分别是0.1s,0.5s,1s,1.5s,2s。
用数码管实时显示当前的速度间隔
求哪位好心人帮帮我,给我一个c语言程序,我才初学51单片机。。。就接到这样一个课题。。 展开
1个回答
展开全部
有这么好的动手机会,就自己做吧。对以后非常有用(过来人的建议。)。
分享下我思路:
1、将你控制用的单片机datasheet下载下来,不用全看,挑需要的看,其他的以后研究。
2、这个项目只是控制单片机的流水灯而已,由于你未提供原理图,我就假设一个IO口控制一盏灯,程序设计流程如下:
初始化单片机(设置定时器的定时时间为0.1s,控制灯,数码管的IO口设置为输出模式,检测按键的IO口设置为输入模式)
-----> 写三个函数模块(按键检测函数模块keyscan(char times);,流水灯控制模块LED_Ctrl(char times,char direction)(times为间隔时间,dir为流水灯方向);间隔时间显示函数Display(););
-----> 在定时中断函数里分别设置0.1s,0.5s,1s,1.5s,2s的中断标志(即在里面计数,进中断1次,5次,10次,15次,20次。);
-----> 主循环重复跑这几个函数模块
以下为伪代码:
int main(void)
{
Initialize();
while(1)
{
keyscan();
Display(times);
LED_Ctrl(times, dir);//times在keyscan()函数里更改.
}
}
分享下我思路:
1、将你控制用的单片机datasheet下载下来,不用全看,挑需要的看,其他的以后研究。
2、这个项目只是控制单片机的流水灯而已,由于你未提供原理图,我就假设一个IO口控制一盏灯,程序设计流程如下:
初始化单片机(设置定时器的定时时间为0.1s,控制灯,数码管的IO口设置为输出模式,检测按键的IO口设置为输入模式)
-----> 写三个函数模块(按键检测函数模块keyscan(char times);,流水灯控制模块LED_Ctrl(char times,char direction)(times为间隔时间,dir为流水灯方向);间隔时间显示函数Display(););
-----> 在定时中断函数里分别设置0.1s,0.5s,1s,1.5s,2s的中断标志(即在里面计数,进中断1次,5次,10次,15次,20次。);
-----> 主循环重复跑这几个函数模块
以下为伪代码:
int main(void)
{
Initialize();
while(1)
{
keyscan();
Display(times);
LED_Ctrl(times, dir);//times在keyscan()函数里更改.
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询