1. bread电子发烧友论坛/
  2. 嵌入式论坛/
    1. 电子论坛综合区
    2. 嵌入式论坛
    3. 电源技术论坛
    4. 硬件设计论坛
    5. 测试测量论坛
    6. 检测技术与质量
    7. EDA设计论坛
    8. 综合技术与应用
    9. 开源硬件
    10. IC设计论坛
    11. 消费电子论坛
    12. 无线通信论坛
    13. 个人版区
    14. 厂商专区
    15. 论坛服务区
    16. 高校联盟
    17. 供求信息发布
  3. 单片机/MCU论坛
    1. ARM技术论坛
    2. Android论坛
    3. Linux论坛
    4. FPGA|CPLD|ASIC论坛
    5. DSP论坛
    6. 嵌入式系统论坛
  4. / 51单片机的这些学习心得,你悟出来了吗? ...
    关闭提示
123下一页

[资料] 51单片机的这些学习心得,你悟出来了吗?

  [复制链接]
发表于 2016-9-18 15:25:32   5796 查看 44 回复 只看该作者 倒序浏览
分享
在这里给大家分享一下学习51单片机心得体会:

1、我从不说51是基础,如果我这么说,也请把这句话理解为微机原理是基础。

2、对51单片机的操作本质上就是对寄存器的操作,对其他单片机也是如此。库只是一个接口,方便使用者使用而已。

3、汇编语言在工作中很少用到,了解就好。

4、51单片机的P0口很特别。

5、C语言就是C语言,51单片机就是51单片机,算法就是算法,外围电路就是外围电路,传感器就是传感器,通信器件就是通信器件,电路图就是电路图,PCB图就是PCB图,仿真就是仿真。

当你以后再也不使用51了,C语言的知识还在,算法的知识还在,搭建单片机的最小系统的技能还在,传感器和通信器件的使用方法还在,还会画电路图和PCB图,当然也会仿真。

6、51单片机是这个:


7、当程序调试不如人意的时候,静下心来好好查资料,51单片机最大的好处就是网上资料非常多,你遇到的问题别人肯定也遇到过。作为学习者,问人可能更方便点,但一直这样是培养不出解决问题的能力的。

8、有些单片机初学者觉得看例程不好,觉得就等于看答案一样有罪恶感。其实对初学者来说,看例程、理解例程、再看例程的注解是最好的学习途径。做实验、做课程设计、做参赛作品的时候也是可以移植程序的,不需要自己重新实现(当然老师布置的作业还是独立完成好)。

但是,要清楚,移植程序不等于学习单片机,最重要的是知道例程是怎样的框架及实现方法。初始化了哪些寄存器,做了哪些引脚配置,调用了哪些函数,那些函数又是怎么实现的,设置了哪些中断,用到了哪些片上资源(UART、ADC等),查询了哪些状态,如果状态变化(触发事件)又会做些什么等等。由此整理出一个流程图并知道其实现方式,基本上这个例程就学习得差不多了。

总结51单片机上拉电阻的作用:

1.用于为OC和OD门电路,提供驱动能力

以OC(集电极开路)电路为例:

例如,达林顿管(其实就是复合三级管)集成块ULN2003. 内部一路的电路如图,就是一个集电极开路电路。


如果不加上拉电阻是无法高电平驱动其他器件的。因为当三极管截至市没有电流流通的路径,更谈不上驱动了。这个跟单片机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高低电平的判决电位),单片机接收到后,不会当作低电平,当然也就无法显示了(程序设计的时检测到忙信号,继续检测)。

总结:上拉电阻选择也有要求,既不是越高越好也不是越低越好,得根据需要选择。这可能也叫,阻抗匹配吧。


转自《嵌入式资讯精选》

本帖子中包含更多资源

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

评分

参与人数 1积分 +30 收起 理由
ElecFans处女座 + 30
查看全部评分
标签:单片机
举报
发表于 2016-9-18 15:56:04  
不错 总结的很详细,,学习了
回复 点赞 举报
高级工程师
发表于 2016-9-18 16:34:25  
好久不玩51了呢
回复 举报
等待验证会员
发表于 2016-9-18 16:51:09  
最近用STC89C52做了一个STC15FXX系列的脱机烧录工具,好多年没玩51了,当兴趣爱好挺好的。
回复 点赞 举报
技术员
发表于 2016-9-19 00:32:20   来自发烧友APP
才开始学习!谢谢楼主分享
回复 点赞 举报
发表于 2016-9-19 03:25:15   来自发烧友APP
老大,有没有联系方式,我有一些问请教下
回复 点赞 举报
版主
发表于 2016-9-19 07:58:55  
好误啊,,,,,,,,
回复 举报
实习生
发表于 2016-9-19 21:41:50   来自发烧友APP
高见
回复 点赞 举报
实习生
发表于 2016-9-19 22:44:41  
回复 举报
版主
发表于 2016-9-20 08:08:14  
不错,,,,,,,,,,,,
回复 举报
技术员
发表于 2016-9-21 10:30:29  
液晶部分的总结,很涨姿势
回复 点赞 举报
实习生
发表于 2016-9-21 14:27:40  
感谢楼主分享、学习中
回复 点赞 举报
助理工程师
发表于 2016-9-21 14:59:09  
不错哦
回复 举报
高级工程师
发表于 2016-9-23 10:42:46  
好文章,绝对经典。
回复 举报
助理工程师
发表于 2016-9-24 16:15:24  
写得很好,虽然我才学一个月,但是有些也有同感
回复 点赞 举报
实习生
发表于 2016-9-25 16:50:24   来自发烧友APP
回复 点赞 举报
技术员
发表于 2016-9-25 21:59:55  
不错啊。楼主总结的还是很好的
回复 点赞 举报
技术员
发表于 2016-9-25 22:56:36  
总结的很详细,学习了!
回复 举报
工程师
发表于 2016-9-26 09:51:54  
谢谢分享
回复 举报
技术员
发表于 2016-9-26 11:37:23  
拿来学习学习,谢谢啦
回复 举报
123下一页
高级模式
您需要登录后才可以回帖 登录 | 注册
关闭

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

快速回复 返回顶部 返回列表
  1. time最新主题
  2. recommend推荐主题
  3. hot热门主题
  4. post 我的帖子
-

推荐专区

技术干货集中营

专家问答

用户帮助┃咨询与建议┃版主议事

工程师杂谈

工程师创意

工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Android论坛

Linux论坛

单片机/MCU论坛

FPGA|CPLD|ASIC论坛

DSP论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

参考设计中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

厂商专区

TI论坛

TI Deyisupport社区

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

招聘┃求职发布区

电子展览展会专区

鸿运国际手机版