求大神帮我写一个单片机延时程序怎么写程序

还没有帐号? 赶紧
用户版块帖子
跪求大神帮忙编写一51单片机的小程序。
UID:1437856
在线时间1032小时
M币2563专家1
此帖悬赏结束最佳答案:200&M币,最佳答案获得者:elecfun
前几天参加了一个焊接比赛,谁知道焊接完以后要求写程序。我参加的是焊接比赛啊,我不会写程序啊。自己看来几本书,但是还是不会,眼看晚上12点就要交了,只好求助各位大神帮忙了。原理图如图所示想要实现按下p2.3的微动开始显示 p2.2 结束 p2.1 暂停 p2.0 重新显示数码管显示内容为 “Love CDUT ”如果可以的话,加上一点注释,不胜感激!
UID:38583
在线时间958小时
M币507专家11
最佳答案奖励:+200&M币
之前重装了系统,刚专门装了Proteus和Keil写了个,仿真可以用,不知道是不是你要的效果。有问题的话提出来再帮你改。
注: 00:22:38重新编辑,1、50行添加注释。2、删除原82行无用变量state。3、更新111行的错误,逻辑与为“||”//For /read.php?tid=1908778//想要实现按下p2.3的微动开始显示 p2.2 结束 p2.1 暂停 p2.0 重新显示//数码管显示内容为 “Love CDUT ”//elecfun @
00:22:07#include &AT89x51.h&#define PORT_KEY&&&&&&&&P2&&&&&&//按键端口#define KEY_START&&&&&& 0x08&&&&//开始显示#define KEY_STOP&&&&&&&&0x04&&&&//结束#define KEY_PAUSE&&&&&& 0x02&&&&//暂停#define KEY_RESET&&&&&& 0x01&&&&//重新显示#define KEY_MASK&&&&&&&&(KEY_START | KEY_STOP | KEY_PAUSE | KEY_RESET)//共阳显示数组unsigned char code SEG[]={&&&&0xC0, /*0*/&&&&0xF9, /*1*/&&&&0xA4, /*2*/&&&&0xB0, /*3*/&&&&0x99, /*4*/&&&&0x92, /*5*/&&&&0x82, /*6*/&&&&0xF8, /*7*/&&&&0x80, /*8*/&&&&0x90, /*9*/&&&&0x88, /*A 10*/&&&&0x83, /*b 11*/&&&&0xC6, /*C 12*/&&&&0xA1, /*d 13*/&&&&0x86, /*E 14*/&&&&0x8E, /*F 15*/&&&&0xC7, /*L 16*/&&&&0xC0, /*O 17*/&&&&0xCE, /*T 18*/&&&&0xC1, /*U 19*/&&&&0xE3, /*v 20*/&&&&0xFF, /*&&21*/};//字符串数组,21表示空格,不需要可删除//&&&&&&&&&&&&&&&&&&&&&&&&L&&o&&v&&e&&&& C&&D&&U&&T&&&& 1 9 5 6&&&&2 0 1 6unsigned char code Str[]={16,17,20,14,21,12,13,19,18,21,1,9,5,6,21,2,0,1,6,21,21};//全局状态枚举enum STATE{&&&&STOP = 0,&&&&PAUSE,&&&&START,}gS //状态机,指示当前状态//用于按键检测全局变量unsigned char KeyOne=0,KeyAll=0;//短延时void Delay(unsigned int t){&&&&unsigned int a,b;&&&&for (a=0; a&t; a++)&&&&{&&&&&&&&for (b=0; b&123; b++)&&&&&&&&{&&&&&&&&&&&&;&&&&&&&&}&&&&}}/* 读取按键值 */void GetKey(void){&&&&unsigned char ReadD&&&&PORT_KEY |= KEY_MASK;&&&&&&&&&& //如果按键无上拉电阻,则读按键前必须先写1&&&&ReadData = PORT_KEY ^ 0xFF;&&&& //读数据&&&&ReadData &= KEY_MASK;&&&&&&&&&& //保留有效位&&&&KeyOne = ReadData & (ReadData ^ KeyAll);&&&&KeyAll = ReadD}void main(void){&&&&unsigned char&&&&&&&&&&&&&&&&//当前显示的字符指针&&&&unsigned int&&&&&&&&&&&& //字符流动速度控制&&&&&&&&gState = STOP;&&&&&&&&&&&&&&&&&&//默认为停止状态&&&&p = 0;&&&&&&&&&&&&&&&&&&&&&&&&&&//默认显示第一个字符&&&&while(1)&&&&{&&&&&&&&GetKey();&&&&&&&&&&&&&&&&&& //读取按键状态,非阻塞模式&&&&&&&&if (KeyOne & KEY_START)&&&& //开始按键&&&&&&&&{&&&&&&&&&&&&gState = START;&&&&&&&& //更新当前状态为开始状态&&&&&&&&}&&&&&&&&if (KeyOne & KEY_STOP)&&&&&&//停止按键&&&&&&&&{&&&&&&&&&&&&gState = STOP;&&&&&&&&&&//更新当前状态为停止状态&&&&&&&&&&&&p = 0;&&&&&&&&&&&&&&&&&&//字符指针复位&&&&&&&&&&&&count = 0;&&&&&&&&&&&&&&//流速计数清零&&&&&&&&}&&&&&&&&if (KeyOne & KEY_PAUSE)&&&& //暂停按键&&&&&&&&{&&&&&&&&&&&&if (gState == START)&&&&//如果当前是开始状态,则更改为暂停状态&&&&&&&&&&&&{&&&&&&&&&&&&&&&&gState = PAUSE;&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&}&&&&&&&&if (KeyOne & KEY_RESET)&&&& //重新显示按键&&&&&&&&{&&&&&&&&&&&&if ( (gState == START) || (gState == PAUSE)) //开始或停止状态下才可以重新显示&&&&&&&&&&&&{&&&&&&&&&&&&&&&&gState = START;&&&& //更新当前状态为开始状态&&&&&&&&&&&&&&&&p = 0;&&&&&&&&&&&&&&//字符指针复位&&&&&&&&&&&&&&&&count = 0;&&&&&&&&&&//流速计数清零&&&&&&&&&&&&}&&&&&&&&}&&&&&&&&&&&&&&&&switch (gState)&&&&&&&&&&&& //状态机,根据当前不同状态进行不同的处理&&&&&&&&{&&&&&&&&case STOP:&&&&&&&&&&&&&&&&&&//停止状态&&&&&&&&&&&&P0 = SEG[21];&&&&&&&&&& //显示空白&&&&&&&&&&&&break;&&&&&&&&case PAUSE:&&&&&&&&&&&&&&&& //暂停状态&&&&&&&&&&&&P0 = SEG[Str[p]];&&&&&& //一直显示当前的字符&&&&&&&&&&&&break;&&&&&&&&case START:&&&&&&&&&&&&&&&& //开始状态&&&&&&&&&&&&if (++count & 100)&&&&&&//字符流速控制,更改数字大小可控制字符流动速度&&&&&&&&&&&&{&&&&&&&&&&&&&&&&count = 0;&&&&&&&&&&//计满后清零以便重新计数&&&&&&&&&&&&&&&&if (++p &= sizeof(Str)) //指向字符串数组中的下一个字符,到头重新开始&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&p = 0;&&&&&&&&&&&&&&&&}&&&&&&&&&&&&}&&&&&&&&&&&&P0 = SEG[Str[p]];&&&&&& //显示当前当前指针指向的字符&&&&&&&&&&&&break;&&&&&&&&}&&&&&&&&&&&&&&&&Delay(10);&&&&&&&&&&&&&&&&&&//短延时调整时序,可防止按键误检测,count过大&&&&}} [ 此帖被elecfun在 00:24重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请
后查看;或者
成为会员获得更多权限
程序代码编写得非常规范,看着就赏心悦目
UID:1229025
在线时间792小时
M币133专家5
热心助人奖励:+1&M币
数码管那么多吗?
UID:1575778
在线时间50小时
M币1011专家-1
热心助人奖励:+1&M币
哪估计不行,你在执行显示函数的时候,是不能扫描按键的,也就不可能实现你说的暂停或者其他,除非你接中断引脚。
UID:1575778
在线时间50小时
M币1011专家-1
回 wu 的帖子
热心助人奖励:+1&M币
:大写吧 o可以和d一样 v就写成 f b d显示 T就写成7就可以了 是那么个意思就好。谢谢啦! ( 21:22) 额。。。我还在写论文,明天早上赶着交。我尽力而为,要是哪位大神有空先帮他写下。我只能说尽量不敢保证。
还是谢谢啦!
UID:38583
在线时间958小时
M币507专家11
热心助人奖励:+1&M币
百度盘下载
UID:1437856
在线时间1032小时
M币2563专家1
占楼 字数补丁原理图
本文内容包含图片或附件,获取更多资讯,请
后查看;或者
成为会员获得更多权限
UID:1437856
在线时间1032小时
M币2563专家1
回 xxdz12345 的帖子
:数码管那么多吗?&( 19:55)&只有一个数码管 一个一个字符的循环显示
UID:1437856
在线时间1032小时
M币2563专家1
回 256 的帖子
:哪估计不行,你在执行显示函数的时候,是不能扫描按键的,也就不可能实现你说的暂停或者其他,除非你接中断引脚。&( 20:42)&那就按p2.3 开始 其他没功能,这样呢?
UID:1575778
在线时间50小时
M币1011专家-1
回 wu 的帖子
:那就按p2.3 开始 其他没功能,这样呢? ( 20:48) 还有就是你这字母要大写还是、大写的话,O跟D,U跟V要怎么处理?
访问内容超出本站范围,不能确定是否安全
“新手上路”发帖需审核后才能显示(请认真发帖),达到数码9级后取消此限制
您目前还是游客,请
&回复后跳转到最后一页
Code by , Time now is:11-03 23:42, Total 0.151847(s) query 12,
Gzip enabled&页面已拦截
无锡网警提示您:
该网址被大量用户举报,可能含有恶意信息。求助大神给编写个洗衣机程序 - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
求助大神给编写个洗衣机程序
22:04:08  
QQ截图54.png (54.51 KB, 下载次数: 1)
全自动洗衣机
21:55 上传
先按“程序选择键”选择“标准、经济、自编”,如果是标准或经济,则直接按“运行”键洗衣,如果是自编,则按“过程”键选择“转数、洗涤、漂洗、脱水”四项,分别按“设置”键设置相关参数,再按“运行”键洗衣。数码管显示自编里洗涤、漂洗、脱水的时间,按一下设置键增加5秒,转数分别为50,70,,90,按一下设置键为50,两下70,三下90.
助理工程师
22:08:13  
依我看别人不会没事儿给你编写的
12:50:31  
PCB在线计价下单
板子大小:
板子数量:
PCB 在线计价
依我看别人不会没事儿给你编写的
碰碰运气&&没准大神闲着无聊呢
助理工程师
13:10:26  
碰碰运气&&没准大神闲着无聊呢
电路你都画了自己编写一个就好
13:54:04  
电路图都画得这么漂亮,程序还不自己动手写写?我喜欢你的说法,碰碰运气,没准大神闲着无聊呢。
16:25:44  
支持你碰运气,但是不看好你碰运气!
Powered by
供应链服务
商务及广告合作
Jeffery Guo
关注我们的微信
供应链服务 PCB/IC/PCBA
下载发烧友APP
版权所有 (C) 深圳华强聚丰电子科技有限公司后使用快捷导航没有帐号?
请完成以下验证码
查看: 1119|回复: 11
一个复杂又有趣的单片机程序设计。跪求大神。
在线时间11 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 26, 距离下一级还需 174 积分
一粒金砂(中级), 积分 26, 距离下一级还需 174 积分
(1)开机,8位LED数码管显示考生学号的后8位;
(2)1S后,8位LED数码管循环依次显示“”、 “”、……、 “”等10个数码,显示时间间隔为500mS;
(3)采用外部中断0,可增加显示时间间隔,增加的步长为100 mS,显示时间间隔的上限值为2000mS;
(4)采用外部中断1,可减小显示时间间隔,减小的步长为100 mS,显示时间间隔的下限值为200mS;
(5)当循环显示工作时间超过60S时,单片机软件复位,单片机重新运行程序。
在线时间2211 小时
威望4754分
芯币36866枚
TA的帖子TA的资源
看来又到了毕业设计时间了
是作业,已经问老师了。谢谢回复。&
在线时间410 小时
芯币1184枚
TA的帖子TA的资源
纯净的硅(中级), 积分 984, 距离下一级还需 216 积分
纯净的硅(中级), 积分 984, 距离下一级还需 216 积分
好复杂,好有趣,我能拿来踩踩这玩意儿吗?这是来干嘛来的?寻求毕设啊还是课程设计啊?看着应该是课程设计吧,兄弟,你该重修了。
就一作业,已在老师指导下完成。谢了。&
在线时间363 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 136, 距离下一级还需 64 积分
一粒金砂(中级), 积分 136, 距离下一级还需 64 积分
这明显是课程设计啊,毕业设计哪有这么简单。。。要是毕业设计,这做出来来又有啥用?可惜没有踩啊?
如果是毕业设计,这做出来根本没用。就一普通作业,已完成。
本人一意识到自己的错误,并在内心做了深刻的反省。拒绝伸手党。望见谅。&
在线时间11 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 26, 距离下一级还需 174 积分
一粒金砂(中级), 积分 26, 距离下一级还需 174 积分
看来又到了毕业设计时间了
是作业,已经问老师了。谢谢回复。
没关系,有问题大家一起讨论。&
在线时间11 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 26, 距离下一级还需 174 积分
一粒金砂(中级), 积分 26, 距离下一级还需 174 积分
既不复杂,也不有趣。
好吧,我只是为了吸引眼球。问题已解决。
在线时间2211 小时
威望4754分
芯币36866枚
TA的帖子TA的资源
是作业,已经问老师了。谢谢回复。
没关系,有问题大家一起讨论。
在线时间11 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 26, 距离下一级还需 174 积分
一粒金砂(中级), 积分 26, 距离下一级还需 174 积分
好复杂,好有趣,我能拿来踩踩这玩意儿吗?这是来干嘛来的?寻求毕设啊还是课程设计啊?看着应该是课程设计 ...
在线时间11 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 26, 距离下一级还需 174 积分
一粒金砂(中级), 积分 26, 距离下一级还需 174 积分
好复杂,好有趣,我能拿来踩踩这玩意儿吗?这是来干嘛来的?寻求毕设啊还是课程设计啊?看着应该是课程设计 ...
就一作业,已在老师指导下完成。谢了。
能动手的还是尽量不要说话。嘿嘿,这也是个经历,以后你就有体会了。&
在线时间11 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 26, 距离下一级还需 174 积分
一粒金砂(中级), 积分 26, 距离下一级还需 174 积分
这明显是课程设计啊,毕业设计哪有这么简单。。。要是毕业设计,这做出来来又有啥用?可惜没有踩啊?
如果是毕业设计,这做出来根本没用。就一普通作业,已完成。
本人一意识到自己的错误,并在内心做了深刻的反省。拒绝伸手党。望见谅。
在线时间410 小时
芯币1184枚
TA的帖子TA的资源
纯净的硅(中级), 积分 984, 距离下一级还需 216 积分
纯净的硅(中级), 积分 984, 距离下一级还需 216 积分
就一作业,已在老师指导下完成。谢了。
能动手的还是尽量不要说话。嘿嘿,这也是个经历,以后你就有体会了。
谢谢劝告。&
在线时间11 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 26, 距离下一级还需 174 积分
一粒金砂(中级), 积分 26, 距离下一级还需 174 积分
能动手的还是尽量不要说话。嘿嘿,这也是个经历,以后你就有体会了。
谢谢劝告。
论坛测评队员
EEWORLD 官方微信
Powered by}

我要回帖

更多关于 单片机程序代写 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信