一、51单片机的P0口很特别。
二、对51单片机的操做本质上就是对寄存器的操做,对其余单片机也是如此。库只是一个接口,方便使用者使用而已。算法
在这里给你们分享一下学习51单片机心得体会:
一、我从不说51是基础,若是我这么说,也请把这句话理解为微机原理是基础。框架
二、对51单片机的操做本质上就是对寄存器的操做,对其余单片机也是如此。库只是一个接口,方便使用者使用而已。函数
三、汇编语言在工做中不多用到,了解就好。学习
四、51单片机的P0口很特别。spa
五、C语言就是C语言,51单片机就是51单片机,算法就是算法,外围电路就是外围电路,传感器就是传感器,通讯器件就是通讯器件,电路图就是电路图,PCB图就是PCB图,仿真就是仿真。设计
当你之后不再使用51了,C语言的知识还在,算法的知识还在,搭建单片机的最小系统的技能还在,传感器和通讯器件的使用方法还在,还会画电路图和PCB图,固然也会仿真。 调试
七、当程序调试不如人意的时候,静下心来好好查资料,51单片机最大的好处就是网上资料很是多,你遇到的问题别人确定也遇到过。做为学习者,问人可能更方便点,但一直这样是培养不出解决问题的能力的。接口
八、有些单片机初学者以为看例程很差,以为就等于看答案同样有罪恶感。其实对初学者来讲,看例程理解例程再看例程的注解是最好的学习途径。作实验作课程设计作参赛做品的时候也是能够移植程序的,不须要本身从新实现。(固然老师布置的做业仍是独立完成好)事件
可是,要清楚,移植程序不等于学习单片机,最重要的是知道例程是怎样的框架及实现方法。初始化了哪些寄存器,作了哪些引脚配置,调用了哪些函数,那些函数又是怎么实现的,设置了哪些中断,用到了哪些片上资源(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是基础,若是我这么说,也请把这句话理解为微机原理是基础。
二、对51单片机的操做本质上就是对寄存器的操做,对其余单片机也是如此。库只是一个接口,方便使用者使用而已。
三、汇编语言在工做中不多用到,了解就好。
四、51单片机的P0口很特别。
五、C语言就是C语言,51单片机就是51单片机,算法就是算法,外围电路就是外围电路,传感器就是传感器,通讯器件就是通讯器件,电路图就是电路图,PCB图就是PCB图,仿真就是仿真。
当你之后不再使用51了,C语言的知识还在,算法的知识还在,搭建单片机的最小系统的技能还在,传感器和通讯器件的使用方法还在,还会画电路图和PCB图,固然也会仿真。