单片机/MCUwilliam hill官网
直播中

1563661808

10年用户 1833经验值
擅长:电源/新能源
私信 关注
[问答]

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

``

宋雪松老师手把手教你学51单片机

高手问答第10期

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



简   介:

      宋雪松老师,william hill官网 用户名@Kinst。著有《手把手教你学51单片机(C语言版)》。擅长扩频通信、OFDM通信技术、测量仪器相关技术,曾从事过5年的通信算法研究,现在创业中,他的团队开发除了具有独立知识产权的LA5016,LA2016逻辑分析仪。酷爱技术,喜欢追求卓越。


       《手把手教你学51单片机(C语言版)》是一本和实际开发相关性很近的工具书,掺入了相当多的实际项目开发的算法和元素在其中,方便随时学习,查阅巩固。对于部分人来说,看书难懂的话,这本书配有详细配套的视频教程,可以给这部分想学电子技术又没有机会的同学提供一个简易学习平台。视频教程对于初学者学习来说,立体感强,可以跟随视频教程操作实验板,可以有一种身临教室听课的感觉。
你有问题吗???
  • 假如你为C语言段里加入汇编不知道怎么处理?
  • 假如你在掌握相序、驱动的脉冲时不知道所云?
  • or more

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

社区高手招募
     不限专业领域、不限技术方向,只要你是一个有活力并乐于分享的开发者,只要你愿意把自己的经验收获分享给大家,帮助众多从业者共同学习、共同进步,我们就欢迎你来做客社区高手问答。
      联系方式:pengjiali@elecfans.com。快来联系小编吧!

**************************************************************************
Elecfans高手问答往期回顾:
宋老师专访:   追求卓越,成功就会在不经意间追上你

`` 宋雪松老师的书.jpg 宋雪松.jpg

回帖(36)

putechen

2014-9-1 14:13:38
很高兴离宋老师这么近,宋老师的视频我也在学习。
我先请教一个问题吧,很多单片机都自带有看门狗。有的单片机都默认开启看门狗,但是为什么有的时候必须要把看门狗关闭才能正常实现功能呢?比如我曾经用过silicon lab的C8051F写过一个小程序,不关闭看门狗的时候连内部时钟输出结果都不对,关闭看门狗就正常了。而且看官方例程,一般首先上来就把看门狗关掉。
能简要介绍下看门狗使用方法吗?什么时候使用?如何用?
谢谢!
举报

1563661808

2014-9-1 15:01:50
@hamelate   
可以来这里向@kinst宋雪松老师请教哦
举报

niu!kf

2014-9-1 15:04:38
@kinst   我想用单片机做交流伺服电机驱动器的上位机,应选什么牌子的好?谢谢!
举报

芒果冰

2014-9-2 09:31:19
宋老师一直有关注你,也是看着你的视频一路学过来的,最近碰到一个问题:我用SP200SE编程器和配套WLPRO V2.20软件烧写24C01芯片.烧后的数据和原数据的数据位置不同.不知何故?@kinst 求教了
举报

刀马旦

2014-9-2 09:35:01
mplab +picc18  编译时  uchar x[]="字符串";  这样的地方总是出现 illegal character的错误  只要有汉字 的字符串就会报错 希望宋老师@kinst 能帮我解决一下  小弟 不胜感激
举报

晴兮晴兮

2014-9-2 09:42:19
请教@kinst 我用atmega16,ctc模式产生一定频率的方波,在滤波成正弦波。现在频率固定,怎么用单片机调节电压高低,峰值从0增大到一定高度呢?
举报

宋雪松

2014-9-2 16:39:36
引用: 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喂一次狗,那么我们的程序永远不会由于看门狗超时而复位。而一旦受到干扰了,我们的喂狗程序就不会起到任何作用,所以这个时候我们就可以通过看门狗的自动复位,来让我们的错乱的系统恢复正常。

    不知道我说这么多你能不能看懂。单片机设置看门狗的主要作用就是防止程序跑飞,如果你的系统很简单,要求不高,那就上来关闭看门狗就可以了,用不到。如果你的系统比较复杂,干扰较强,那么就需要通过这种方式,打开看门狗,定时喂狗。一旦程序跑飞,看门狗可以自动复位,让系统重新正常运行,不会处于无限的死机状态。
举报

宋雪松

2014-9-2 16:41:02
引用: niu!kf 发表于 2014-9-1 15:04
@kinst   我想用单片机做交流伺服电机驱动器的上位机,应选什么牌子的好?谢谢! ...

做上位机选什么牌子是啥意思,没明白你的意思。你是说选电机,还是选单片机,最好先研究一下同类其他产品,别人是如何做的,多找几个,对比优劣后根据实际情况选择。它山之石可以攻玉。
举报

宋雪松

2014-9-2 16:41:40
引用: 芒果冰 发表于 2014-9-2 09:31
宋老师一直有关注你,也是看着你的视频一路学过来的,最近碰到一个问题:我用SP200SE编程器和配套WLPRO V2. ...

你这个问题没法确定问题所在,解决思路就是用示波器或者逻辑分析仪测量一下那个波形,根据波形进行判断。
举报

宋雪松

2014-9-2 16:42:14
引用: 晴兮晴兮 发表于 2014-9-2 09:42
请教@kinst 我用atmega16,ctc模式产生一定频率的方波,在滤波成正弦波。现在频率固定,怎么用单片机调节电 ...

可以看我教程的第十课,关于PWM,那节课,你只要调整占空比,就可以调整电压了。
举报

宋雪松

2014-9-2 16:42:57
引用: 刀马旦 发表于 2014-9-2 09:35
mplab +picc18  编译时  uchar x[]="字符串";  这样的地方总是出现 illegal character的错误  只要有汉字  ...

这个编译器不识别中文字符。
举报

gvxiaot

2014-9-2 17:54:01
@kinst 宋老师
输入信号频率为0至500khz,电压为0.2至5V的方波信号,应选什么样的模数转换芯片,麻烦推荐几款
举报

哼小曲

2014-9-2 17:54:50
@kinst D1302芯片的数据手册中,关于突发模式的介绍并不是很详细,以至于我看数据手册时都没搞明白突发模式到底怎么用。想必接触过1302的烧友们都有过那种感觉吧。
       为了方便各位朋友讨论学习,我将我对突发模式的理解总结如下:
(1)数据手册明确指出了在写保护的情况下,突发模式是无法写入数据的。而不论是读还是写都得发送命令字,所以说必须先将写保护关掉!!
(2)关掉写保护后,写入“突发模式”到寄存器中(即发送突发模式命令字)。命令字的格式与其他命令字一样,只是A4~A0为全1,其它位含义不变。
(3)在普通模式下,写入读的命令字便可以进行读取一个字节了,而突发模式时能一直读取数据,但必须保持RST(中文资料的引脚一般为CE)为高,产生相应的时钟即可依次获得各个数据。注意突发模式写入时钟时:必须写满8个寄存器!!!!!!
      以上是个人见解,如有不足敬请宋老师指正。
举报

as493428735

2014-9-2 18:49:49
引用: kinst 发表于 2014-9-2 16:39
你这是还没明白看门狗是干嘛用的。看门狗,从他的名字来看,首先作用是看门的,其次是一条狗。
我从以下 ...

我都看懂了,这么通熟易懂,现实中要是遇上你这么强的高手就好了
举报

hnyou

2014-9-2 21:37:12
想学,不知从何下手。
举报

hnyou

2014-9-2 21:37:46
现在天天逛william hill官网
举报

1563661808

2014-9-3 09:00:21
引用: hnyou 发表于 2014-9-2 21:37
现在天天逛william hill官网

那还不如直接看出动手,系统点的学习。开学了,建议去实验室。
举报

putechen

2014-9-3 10:11:12
引用: kinst 发表于 2014-9-2 16:39
你这是还没明白看门狗是干嘛用的。看门狗,从他的名字来看,首先作用是看门的,其次是一条狗。
我从以下 ...

感谢宋老师的耐心回复,大概明白了。我再仔细研读下你的讲解和datasheet来体会下,非常感谢。
举报

fua_fua

2014-9-3 14:07:11
学习了,好东西~
举报

更多回帖

发帖
×
20
完善资料,
赚取积分