【高手问答】第10期—宋雪松老师手把手教你学51单片机

2019-07-15 18:38发布


宋雪松老师手把手教你学51单片机
高手问答第10期
小编导读:      本期高手问答(9月1日—9月7日)我们请来了大家熟悉的宋雪松老师@Kinst,为大家解读关于51单片机方面的问题。
宋雪松.jpg

简   介:       宋雪松老师,论坛用户名@Kinst。著有《手把手教你学51单片机(C语言版)》。擅长扩频通信、OFDM通信技术、测量仪器相关技术,曾从事过5年的通信算法研究,现在创业中,他的团队开发除了具有独立知识产权的LA5016,LA2016逻辑分析仪。酷爱技术,喜欢追求卓越。 宋雪松老师的书.jpg
       《手把手教你学51单片机(C语言版)》是一本和实际开发相关性很近的工具书,掺入了相当多的实际项目开发的算法和元素在其中,方便随时学习,查阅巩固。对于部分人来说,看书难懂的话,这本书配有详细配套的视频教程,可以给这部分想学电子技术又没有机会的同学提供一个简易学习平台。视频教程对于初学者学习来说,立体感强,可以跟随视频教程操作实验板,可以有一种身临教室听课的感觉。
你有问题吗???
  • 假如你为C语言段里加入汇编不知道怎么处理?
  • 假如你在掌握相序、驱动的脉冲时不知道所云?
  • or more

      和宋雪松老师一起来探讨,聊聊技术问题吧。和以往一样,跟帖+@Kinst宋雪松老师。你的疑惑就可能被解开了。
活动获奖规则:
       为了鼓励踊跃提问,宋雪松老师会在问答结束后从提问者中选取 2 名幸运会员赠予《手把手教你学51单片机(C语言版)》一书。
        Elecfans高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

社区高手招募
     不限专业领域、不限技术方向,只要你是一个有活力并乐于分享的开发者,只要你愿意把自己的经验收获分享给大家,帮助众多从业者共同学习、共同进步,我们就欢迎你来做客社区高手问答。
      联系方式:pengjiali@elecfans.com。快来联系小编吧!
**************************************************************************Elecfans高手问答往期回顾:【高手问答】第12期——韦东山老师VS嵌入式LINUX应用开发完全手册【高手问答】第11期——与张飞老师一起成为硬件电路设计的expert【高手问答】第10期——宋雪松老师l手把手教你学51单片机【高手问答】第9期——张工带你玩转STM32问答【高手问答】第8期——社区之星李工为你的ARM问题解惑【高手问答】第7期——与行工前辈一起畅谈DSP【高手问答】第6期—— 李工解答PCB设计【高手问答】第5期——STM32硬件问答【高手问答】第4期——与社区之星王工聊聊labview设计【高手问答】第3期——走进硬件电路设计【高手问答】第2期——阿东带你走进fpga的逻辑编程设计【高手问答】第1期——朱兆琪在线解答单片机C语言编程宋老师专访:   追求卓越,成功就会在不经意间追上你

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
kinst
1楼-- · 2019-07-16 17:27
putechen 发表于 2014-9-1 14:13
很高兴离宋老师这么近,宋老师的视频我也在学习。
我先请教一个问题吧,很多单片机都自带有看门狗。有的单 ...

你这是还没明白看门狗是干嘛用的。看门狗,从他的名字来看,首先作用是看门的,其次是一条狗。
我从以下几个方面说明一下这个问题。
1、为什么用看门狗:我们程序在flash中运行的时候,有时候遇到强干扰或者一些很特殊的情况,本来应该运行第100行的程序,突然跑到了500行的代码中运行了,跑乱了,而500行要么是错误代码,要么是我们没有写程序的位置。也就是说,不管如何,现在程序运行错乱,不正常,而且将会一直不正常下去,这个情况我们通常称之为跑飞。这个时候,我们希望单片机有一个机制,就是负责看着程序这个大门,一旦程序错乱,立马应对处理。
2、如何看门:我们学单片机,其实都学过定时器这个模块,其实看门狗就是一个定时器而已。我就拿最简单的标准51单片机的T0来说吧,比如定义成模式1的时候,用11.0592M晶振,那么从0加到溢出,一共时间大概是70多ms,我就暂定为70ms吧。我们打开看门狗定时器这个模块后,这个模块是独立于我们的CPU程序之外的一个模块,只要打开了,他就不会受到程序的控制。那么我们程序就运行,运行,突然跑飞了,程序运行不正常了,并且会一直不正常下去。但是由于我们打开了看门狗,这个定时器会一直运行,当运行到70ms的时候,发生溢出,这个时候看门狗会直接把我们的单片机给复位,让程序重新运行,避免跑飞。
3、如何喂狗:由于我们设定了一个70ms的定时,那么及时我们程序正常运行的话,到了70ms,也会自动复位,这是我们不希望的,所以我们要经常性的重新给这个定时器初值重新赋值,比如TH0 = 0,TL0 = 0.经常这样写就可以避免定时器溢出了,既然定时器不溢出了,单片机也就不会复位了。
4、多久喂狗:这个就需要根据我们的程序经验了,比如我们知道我们的程序运行系统,从最开始运行到某一个位置,循环一次最大是10ms,那么循环5次最大也不会超过50ms,我们就50ms给把定时器清零一次,所以只要我们50ms喂一次狗,那么我们的程序永远不会由于看门狗超时而复位。而一旦受到干扰了,我们的喂狗程序就不会起到任何作用,所以这个时候我们就可以通过看门狗的自动复位,来让我们的错乱的系统恢复正常。

    不知道我说这么多你能不能看懂。单片机设置看门狗的主要作用就是防止程序跑飞,如果你的系统很简单,要求不高,那就上来关闭看门狗就可以了,用不到。如果你的系统比较复杂,干扰较强,那么就需要通过这种方式,打开看门狗,定时喂狗。一旦程序跑飞,看门狗可以自动复位,让系统重新正常运行,不会处于无限的死机状态。
kinst
2楼-- · 2019-07-16 23:12
niu!kf 发表于 2014-9-1 15:04
@kinst   我想用单片机做交流伺服电机驱动器的上位机,应选什么牌子的好?谢谢! ...

做上位机选什么牌子是啥意思,没明白你的意思。你是说选电机,还是选单片机,最好先研究一下同类其他产品,别人是如何做的,多找几个,对比优劣后根据实际情况选择。它山之石可以攻玉。
kinst
3楼-- · 2019-07-17 02:46
芒果冰 发表于 2014-9-2 09:31
宋老师一直有关注你,也是看着你的视频一路学过来的,最近碰到一个问题:我用SP200SE编程器和配套WLPRO V2. ...

你这个问题没法确定问题所在,解决思路就是用示波器或者逻辑分析仪测量一下那个波形,根据波形进行判断。
kinst
4楼-- · 2019-07-17 04:05
晴兮晴兮 发表于 2014-9-2 09:42
请教@kinst 我用atmega16,ctc模式产生一定频率的方波,在滤波成正弦波。现在频率固定,怎么用单片机调节电 ...

可以看我教程的第十课,关于PWM,那节课,你只要调整占空比,就可以调整电压了。
kinst
5楼-- · 2019-07-17 04:35
 精彩回答 2  元偷偷看……
gvxiaot
6楼-- · 2019-07-17 08:57
@kinst 宋老师
输入信号频率为0至500khz,电压为0.2至5V的方波信号,应选什么样的模数转换芯片,麻烦推荐几款

一周热门 更多>