文档章节

51单片机学习感悟与51单片机上拉电阻心得

muliuhai
 muliuhai
发布于 2017/09/10 15:02
字数 1997
阅读 7
收藏 0
点赞 0
评论 0

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. 内部一路的电路如图,就是一个集电极开路电路。

如果不加上拉电阻是无法高电平驱动其他器件的。因为当三极管截至市没有电流流通的路径,更谈不上驱动了。这个跟单片机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图,当然也会仿真。

© 著作权归作者所有

共有 人打赏支持
muliuhai
粉丝 3
博文 79
码字总数 155337
作品 0
郑州
单片机、CPU、指令集和操作系统的关系

作者:zhongjin616 1> 首先讨论各种单片机与操作系统的关系 说到单片机,大家第一时间想到的应该是51单片机,对吧。不错,更高级一点的AVR,把他称为单片机,我们也还觉得可以接受。那么再高...

xiaogong1688 ⋅ 2017/08/02 ⋅ 0

单片机系列(2)流水灯程序是如何写入单片机的

width="280px" src="https://mmbiz.qpic.cn/mmbizgif/l0YVIUXvgJTNAJTTf4kbHpZfVQgWPN1dc0ghXq8ia9rNkBtXLRneYj8m2G48VpS49ibia6brtN654RTzpJOlv9b4A/0?wxfmt=gif&tp=webp&wxfrom=5&wx_lazy=......

lxq_xsyu ⋅ 2017/10/16 ⋅ 0

图说滤波电容的使用心得,非常详细,不信你还不懂~

简单的电感电路在低阻抗电路中使用时效果很好,衰减超过40dB,但在高阻抗电路中可能一点效果没有。 单个电容器的电路在高阻抗电路中效果很好,但在低阻抗电路中效果很差。 多元件构成的滤波器...

dp29sym41zygndvf ⋅ 05/10 ⋅ 0

单片机C语言编程学习简介与第一个C语言程序

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界 ⋅ 05/26 ⋅ 0

硬件小白名词解释DSP、MCU、FPGA、IC、CPU、MPU、ROM、RAM

作为一个在硬件方面知识为空白的coder,偏偏进了一个硬件公司,感觉好吃力,今天一个大神简单讲了一下dsp、mcu、sensor,顺便在网上搜了一下FPGA等知识,怕忘了所以马上记录下来。 IC:Integ...

lwwl12 ⋅ 02/05 ⋅ 0

单片机学习,如何从菜鸟到高手?!

深圳|广州|郑州单片机、pcb培训!信盈达帮你改变!改变你的现状!成就你的梦想! 深圳信盈达一家集产品开发、单片机、pcb、电子、嵌入式培训于一身的公司。凭多年的产品开发经验和心得,将其...

educn114 ⋅ 2014/06/06 ⋅ 0

单片机基础知识必备

单片机概述 什么是单片机(What is Microcontrollers?) 单片机就是一块集成在硅片上的微处理器、存储器以及各种输入输出接口的芯片,这样一块芯片就具备了计算机的属性,因而被称为单片微计算...

Bony ⋅ 2016/06/30 ⋅ 0

MF干活——C#点灯神话

如同学习每一门编程语言的Hello World!一样,点灯自然成了单片机入门的HelloWorld。因为单片机上的HelloWorld实在是太难了! 在电子上只有电压电流之类的概念,而对于单片机来说,我们可以认...

智能大石头 ⋅ 2012/09/06 ⋅ 0

MPU6050开发 -- 在 C52 单片机上测试

用了三篇文章,从 MPU6050的初识,相关基本概念,到 I2C/SPI通信协议都讲了一下。现在可以上手来测试了。 手头没有什么Arduino的开发板,只有两款,一个是郭天祥的STC89C52单片机,另一个S5P...

qq_29350001 ⋅ 2017/11/23 ⋅ 0

stm32f107的utenux移植

随着国内物联网等电子产业的发展,对嵌入式产品的需求越来越大。当前大多数嵌入设备采用的是国外商业操作系统,而国内嵌入式实时操作系统研发起步较晚,技术积累环节相对薄弱,建立一个完善的...

hotapp ⋅ 2014/06/25 ⋅ 2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

懒惰根本就不存在

简评:芝加哥大学心理学教授,懒惰根本就不存在。(本文表面讲行为心理学实则讲教育) 金句:以好奇而不是判断来回应一个人的无效行为,是非常有帮助的。 本文「我」代表原作者 E Price。 自...

极光推送 ⋅ 24分钟前 ⋅ 0

Excel提取单元格中最后一个“.”后面的数据

java.lang.String ----- String =TRIM((MID(SUBSTITUTE(B2,".",REPT(" ",99)),(LEN(B2)-LEN(SUBSTITUTE(B2,".","")))*99,99)))...

klog ⋅ 26分钟前 ⋅ 0

mac远程桌面

下载安装remote-desktop-mac Mac beta 客户端 mac通过远程桌面访问windows服务器。

亚林瓜子 ⋅ 30分钟前 ⋅ 0

firrtl

动手---sbt(2)之后,再回头看 chisel第一个实验,根据 https://github.com/freechipsproject/firrtl 发现firrtl没有执行sbt assembly命令,重新执行这个命令,结果成功。如下图: joe@joe-As...

whoisliang ⋅ 34分钟前 ⋅ 0

NIO

一、通道(Channel):用于源节点与目标节点的连接。在 Java NIO 中负责缓冲区中数据的传输。Channel 本身不存储数据,因此需要配合缓冲区进行传输。 二、通道的主要实现类 java.nio.channel...

stars永恒 ⋅ 35分钟前 ⋅ 0

Android悬浮窗的实现

0. 前言   现在很多应用都使用到悬浮窗,例如微信在视频的时候,点击Home键,视频小窗口仍然会在屏幕上显示。这个功能在很多情况下都非常有用。那么今天我们就来实现一下Android悬浮窗,以...

猴亮屏 ⋅ 35分钟前 ⋅ 0

日志采集中的关键技术分析

概述 日志从最初面向人类演变到现在的面向机器发生了巨大的变化。最初的日志主要的消费者是软件工程师,他们通过读取日志来排查问题,如今,大量机器日夜处理日志数据以生成可读性的报告以此...

tqyin ⋅ 36分钟前 ⋅ 0

使用Navicat将数据导出为text文本 然后再导入

将数据导出为text文本效率很高 1. 准备工作 1.1 准备表结构 1.2 目标库 执行生成表结构sql 2.将表数据导出为text文本 生成的text文本 3. 目标库 导入text 4.效果...

Lucky_Me ⋅ 42分钟前 ⋅ 0

IntelliJ IDEA 乱码解决方案 (项目代码、控制台等)

文章介绍了idea下,项目乱码、控制台乱码及运行tomcat控制台乱码的解决方案,文章链接:https://www.cnblogs.com/vhua/p/idea_1.html

Funcy1122 ⋅ 45分钟前 ⋅ 0

IDEA使用sonarLint

一、IDEA如何安装SonarLint插件 1.打开 Idea 2.点击【File】 3.点击【Settings】 4.点击【Plugins】 5.在搜索栏中输入“sonarlint”关键字 6.点击【Install】进行安装 7.重启Idea 二、IDEA如...

开源中国成都区源花 ⋅ 50分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部