爱板网论坛

查看: 199|回复: 1

[经验] 51单片机学习感悟与51单片机上拉电阻心得

[复制链接]

10

主题

0

好友

98

积分

童生

Rank: 2

  • TA的每日心情
    开心
    2017-9-10 14:49
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2017-9-10 15:00:40 |显示全部楼层
    1、51单片机的P0口很特别。
    2、对51单片机的操作本质上就是对寄存器的操作,对其他单片机也是如此。库只是一个接口,方便使用者使用而已。
           
       在这里给大家分享一下学习51单片机心得体会:

        1、我从不说51是基础,如果我这么说,也请把这句话理解为微机原理是基础。
      2、对51单片机的操作本质上就是对寄存器的操作,对其他单片机也是如此。库只是一个接口,方便使用者使用而已。
      3、汇编语言在工作中很少用到,了解就好。
      4、51单片机的P0口很特别。
      5、C语言就是C语言,51单片机就是51单片机,算法就是算法,外围电路就是外围电路,传感器就是传感器,通信器件就是通信器件,电路图就是电路图,PCB图就是PCB图,仿真就是仿真。
      当你以后再也不使用51了,C语言的知识还在,算法的知识还在,搭建单片机的最小系统的技能还在,传感器和通信器件的使用方法还在,还会画电路图和PCB图,当然也会仿真。  
      7、当程序调试不如人意的时候,静下心来好好查资料,51单片机最大的好处就是网上资料非常多,你遇到的问题别人肯定也遇到过。作为学习者,问人可能更方便点,但一直这样是培养不出解决问题的能力的。
      8、有些单片机初学者觉得看例程不好,觉得就等于看答案一样有罪恶感。其实对初学者来说,看例程理解例程再看例程的注解是最好的学习途径。做实验做课程设计做参赛作品的时候也是可以移植程序的,不需要自己重新实现。(当然老师布置的作业还是独立完成好)
      但是,要清楚,移植程序不等于学习单片机,最重要的是知道例程是怎样的框架及实现方法。初始化了哪些寄存器,做了哪些引脚配置,调用了哪些函数,那些函数又是怎么实现的,设置了哪些中断,用到了哪些片上资源(UART、ADC等),查询了哪些状态,如果状态变化(触发事件)又会做些什么等等。由此整理出一个流程图并知道其实现方式,基本上这个例程就学习得差不多了信盈达嵌入式企鹅要妖气呜呜吧久零就要。
    总结51单片机之上拉电阻

    (1) 用于为OC和OD门电路,提供驱动能力。
    OC(集电极开路)电路为例:
    例如,达林顿管(其实就是复合三级管)集成块ULN2003. 内部一路的电路如图,就是一个集电极开路电路。
    file:///C:\Users\郭晓娟\AppData\Local\Temp\ksohtml\wpsA03B.tmp.png
    如果不加上拉电阻是无法高电平驱动其他器件的。因为当三极管截至市没有电流流通的路径,更谈不上驱动了。这个跟单片机P0口加上拉电阻的原理一样。
    (2)提高高电平电位:
    单片机P1口外接4×4矩阵键盘。另外复用P1.0~P1.3外接ULN2003控制驱动步进电机。
    实验中遇到的问题:当接入ULN2003时键盘无法工作,去掉ULN2003后键盘工作正常。ULN2003工作正常。(注,两个部分不同时工作)
    问题分析:由于键盘的结构,无非就是两个金属片的接通或断开。但是接入ULN2003 后无法正常工作,说明是接入ULN2003影响到了P1口电平的变化。用万用表测的电压,当单片机输出高电平时,P1.0~P1.3电压1V左右,P1.4~P1.7电压4.3V左右,于是测AT89s52高低电平的判决电位,在1.3V左右。这样P1.0~P1.3始终是低电平,键盘根本无法实现扫描功能。
    解决方法,只要抬高P1口高电平时的电位,就可以正常工作,
    1. 在P1口到ULN2003上串接电阻,起到分压的作用,就可以抬高电平。
    2. 给P1口接上拉电阻,跟P1口内部电阻并联,减小上拉电阻阻值,减小分得的电压,从而抬高P0口高电平电位。
    采用第二种方案可以抬高电平到2.5V左右。键盘工作正常。
    另外:我在做液晶显示实验的时候,数据线用的P0口,无法正常工作,不显示字符。但是乱动一下数据线就可以完成显示,但是显示现象并不正常,字符不是一次写入,而是乱动几次才能写完全部内容,正常应该一次全部显示 。原因是由于,我的P0口中有六个端口都外接并联三个发光二极管。,因为从资料上查到,P0口每一个端口最大可以吸收10MA电流,总电流不能超过26MA电流。这样算我的总电流已经到了40MA,呵呵。见笑了。所以怀疑是驱动的问题。于是去掉了几个二极管。显示一切正常。似乎问题已经解决,但总觉得还是有点问题,于是又经过几次试验,发现只有当P0.7端口的并联二极管去掉一个,再在其他端口接上一个发光二极管。此时也可以正常显示。但是这样P0口吸收电流在38MA,也超过了26MA不少。所以不是吸收电流太大的问题。仔细分析当端口并联外接三个二极管的时候等效于加了一个700欧左右的电阻,于是把二极管去掉换成一个1k电阻,液晶也无法显示。
    经过仔细分析,我认为,由于P0.7是液晶忙信号的返回线路当这个端口返回高电平时说明,液晶正在处理数据,无法接收新的数据,返回0时说明空闲,可以接收新数据。
    这样当上拉电阻太小了,液晶返回低电平时就有可能高过1.3V(AT89s52高低电平的判决电位),单片机接收到后,不会当作低电平,当然也就无法显示了。(程序设计的时检测到忙信号,继续检测)
    总结:上拉电阻选择也有要求,呵呵。既不是越高越好也不是越低越好。根据需要选择。
    这可能也叫,阻抗匹配吧。51单片机的这些学习心得,你悟出来了吗?
    在这里给大家分享一下学习51单片机心得体会:
    1、我从不说51是基础,如果我这么说,也请把这句话理解为微机原理是基础。
    2、对51单片机的操作本质上就是对寄存器的操作,对其他单片机也是如此。库只是一个接口,方便使用者使用而已。
    3、汇编语言在工作中很少用到,了解就好。
    4、51单片机的P0口很特别。
    5、C语言就是C语言,51单片机就是51单片机,算法就是算法,外围电路就是外围电路,传感器就是传感器,通信器件就是通信器件,电路图就是电路图,PCB图就是PCB图,仿真就是仿真。
    当你以后再也不使用51了,C语言的知识还在,算法的知识还在,搭建单片机的最小系统的技能还在,传感器和通信器件的使用方法还在,还会画电路图和PCB图,当然也会仿真。

    回复

    使用道具 举报

    2

    主题

    0

    好友

    1195

    积分

    进士

    Rank: 5Rank: 5

  • TA的每日心情
    郁闷
    4 小时前
  • 签到天数: 312 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2017-9-10 19:35:50 |显示全部楼层
    写的不错,学习了
    回复

    使用道具 举报

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

    关闭

    站长推荐上一条 /2 下一条

    手机版|爱板网 |网站地图  

    GMT+8, 2017-11-24 17:25 , Processed in 0.143806 second(s), 9 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部