鱼C论坛

 找回密码
 立即注册
查看: 9551|回复: 97

[技术交流] 从51单片机到电子工程师

[复制链接]
发表于 2014-5-5 23:32:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 沉思的牛 于 2014-5-10 20:04 编辑

如果你有一定的单片机的基础;
并且想上升一个台阶,那么我劝你认真学学这本资料(见附件);


相信大家都看到过类似的代码:
注:  其他函数和宏以及管脚都已经定义
  1. void main(void)
  2. {
  3.       LedInit() ;            
  4.       While(1)
  5.       {
  6.             LED = ON ;       //点亮LED
  7.             DelayMs(500) ;  //延时500ms
  8.             LED = OFF ;       //关闭LED
  9.             DelayMs(500) ;  //延时500ms
  10.       }
  11. }
复制代码
程序很简单对吧?是让LED以1HZ的频率闪烁;

但是众鱼油发现问题所在没有:
1:在延时的时候CPU全部时间花在上面等待,白白浪费500ms的时间;
2:如果你的程序里面还有其他任务,你怎么办?
带着疑问去看资料吧,教你如何解放CPU;


谈谈按键识别程序吧:
  1. if(0 == io_KeyEnter) //如果有键按下了
  2. {
  3.      Delayms(20) ; //先延时20ms避开抖动时间
  4.      if(0 == io_KeyEnter) //然后再检测,如果还是检测到有键按下
  5.      {
  6.             return KeyValue ; //是真的按下了,返回键值
  7.      }
  8.      else
  9.      {
  10.           return KEY_NULL //是抖动,返回空的键值
  11.      }
  12.    while(0 == io_KeyEnter) ; //等待按键释放
  13. }
  14. //乍看上去,确实挺不错
复制代码
其实这样的代码是伪代码~~~;
出现抖动意味着什么?  当然是按键已经按下了;
大家觉得那个延时有没有必要呢?
等待按键释放其他的程序怎么执行呢?
按键的长按功能怎么实现呢?
带着疑问去看资料吧,基于状态转移的按键识别程序,讲得非常详细;

所以此类代码只适合在演示,或简单实验用;
写程序要想到工程性;

资料里面谈到如何模块化编程,我相信只要认真学过甲鱼的C/C++的朋友应该做的比较好;

新手写出来的程序:
QQ截图20140510195930.jpg

老手写出来的程序:
QQ截图20140510200050.jpg
资料里面讲到操作系统的基本知识,多任务程序的基本思想;
所以我推荐大家学习;


附件:
游客,如果您要查看本帖隐藏内容请回复






评分

参与人数 2荣誉 +10 鱼币 +10 贡献 +8 收起 理由
灭·世 + 5 + 5 + 3 谢谢
大黑鱼 + 5 + 5 + 5 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-6 08:37:17 | 显示全部楼层
给力。。。。。。。。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-6 08:39:32 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-6 10:18:45 | 显示全部楼层
沉思的牛 发表于 2014-5-6 08:39
挺早的哦~~~~

上班滴。。。:mad:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-6 12:18:33 | 显示全部楼层
骑着蜗牛狂奔 发表于 2014-5-6 10:18
上班滴。。。

楼主也是天天加班 不爽啊~~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-6 16:06:06 | 显示全部楼层
支持一下,好东西
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-6 18:10:49 | 显示全部楼层
看看。。。。。。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-6 18:24:54 | 显示全部楼层
呼啦啦,看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-6 18:31:13 | 显示全部楼层
感谢分享{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-6 19:10:41 | 显示全部楼层
:lol:感觉不错,下载啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-6 19:13:41 | 显示全部楼层
:lol:感觉不错,下载啦   。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-6 19:56:16 | 显示全部楼层
真想明天回复!今天不给加分了!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-6 20:21:16 | 显示全部楼层
lizi4355 发表于 2014-5-6 19:13
感觉不错,下载啦   。。。。。

谢谢支持啦~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-6 20:26:10 | 显示全部楼层
学习,,,,,,,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-6 20:29:03 | 显示全部楼层
谢谢楼主分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-6 21:00:12 | 显示全部楼层
给力呀~~~~~~~~~~~:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-6 22:09:27 | 显示全部楼层
51单片机到电子工程
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-6 22:34:47 | 显示全部楼层
近日在学51,但一直进步不大,看看别人的经验吧。谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-6 22:40:42 | 显示全部楼层
好东西 收了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-6 22:41:29 | 显示全部楼层
就看看看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-12 22:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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