找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1449|回复: 10
收起左侧

求一个c程序,我自己弄过一个,不符合要求,想了很久都不知道怎么弄,跪求大佬大佬

[复制链接]
ID:563314 发表于 2019-6-16 15:18 | 显示全部楼层 |阅读模式
一个4缸发动机,分别用P1.0、P1.1、P1.2、P1.3所接LED代表1,2,3,4缸的喷油器,LED灯亮代表喷油。当按键S1被按下后,喷油器按1-3-4-2缸的顺序不断循环喷油。当按键S2被按下后,喷油器停止喷油。


回复

使用道具 举报

ID:332444 发表于 2019-6-17 15:47 | 显示全部楼层
一个4缸发动机,分别用P1.0、P1.1、P1.2、P1.3所接LED代表1,2,3,4缸的喷油器,LED灯亮代表喷油。当按键S1被按下后,喷油器按1-3-4-2缸的顺序不断循环喷油。当按键S2被按下后,喷油器停止喷油。就是流水灯顺序变了而已,最简单程序就是几个互连判断或分支:void main(){int a;while(1){if(p1==253)p1=254;if(p1==254)p1=251;if(p1==251)p1=247;if(p1==247)p1=253;if(!s2)p1=255;if(!s1)p1=254;a=44444;while(s1&&s2&&a--);}}
回复

使用道具 举报

ID:96682 发表于 2019-6-17 14:14 | 显示全部楼层
得懂得喷油器工作原理及如何检测,S1相当于启动发动机,S2则关闭发动机,LED灯亮取决于所接的4缸发动机工作顺序,这货只在低速时看得出顺序。
回复

使用道具 举报

ID:123289 发表于 2019-6-17 14:37 | 显示全部楼层
劝楼主改学CEO或MBA。
回复

使用道具 举报

ID:564605 发表于 2019-6-17 15:04 | 显示全部楼层
这个好像有点难  或许你可以用JAVa试试
回复

使用道具 举报

ID:564631 发表于 2019-6-17 15:26 | 显示全部楼层
按下按键首先要用变量记录按键按下的状态,然后用switch case  语句这行就可以了
回复

使用道具 举报

ID:332444 发表于 2019-6-17 15:40 | 显示全部楼层
就是流水灯顺序变了而已,最简单程序就是几个互连判断或分支:void main(){int a;while(1){if(p1==253)p1=254;if(p1==254)p1=251;if(p1==251)p1=247;if(p1==247)p1=253;if(!s2)p1=255;if(!s1)p1=254;a=44444;while(a--);}}
回复

使用道具 举报

ID:552614 发表于 2019-6-17 15:44 | 显示全部楼层
我不知道发动机啥原理,但是你说用led灯表示,可以用whilel语句加4个循环,每一个led之间加个延时,然后用外部中断s1s2不是可以吗?
回复

使用道具 举报

ID:332444 发表于 2019-6-17 16:01 | 显示全部楼层
                if(P1==253)P1=254;
回复

使用道具 举报

ID:332444 发表于 2019-6-17 16:07 | 显示全部楼层

录像12_转.gif
回复

使用道具 举报

ID:332444 发表于 2019-6-17 21:16 | 显示全部楼层
修正一下:
void main()
{
int a;
while(1)
{
if(p1==253)p1=254;
else if(p1==254)p1=251;
else if(p1==251)p1=247;
else if(p1==247)p1=253;
if(!s2)p1=255;
if(!s1)p1=254;
a=44444;
while(s1&&s2&&a--);
}}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表