随笔分类 -  51单片机

关于51单片机的一些东西
51单片机(STC89C52RC) keil软件精确定时 浅析
摘要:这里主要是对使用keil环境下,提高51单片机软件精度的问题给出自己的一点小看法,参阅了文章利用 Keil Cx51实现T0的精确定时,使用文章中的方法的确是可以提高软件精度,可是一碰到中断函数中语句较多,且main函数其它任务的时候,总是觉得力不从心,因为要计算中断执行时间就够我受的了。我可是很懒的,研究之下发现了一些东西。51误差主要是来自两个方面:晶振和单片机中断系统的误差晶振:我们的晶振一般误差都是20PPM的,百万分之二十。想提高精度,只能选择误差更小的晶振,但它毕竟不是为精确定时设计的,很难达到时钟芯片晶振的精度。中断系统的误差:定时器产生中断请求以后,并不一定能马上响应这个中.. 阅读全文

posted @ 2011-08-24 02:05 9号 阅读(958) 评论(0) 推荐(0)

51单片机(STC89C52RC) lcd1602 4线接法+经典IO扩展综合实验
摘要:前面已经说过做过了经典IO扩展的实验了,遵循做过才有发言权的理念,整合原来的做过的lcd1602实验,eeprom实验,看看程序的实时性是否能够有比较大的变化,当然是变慢咯. 在实验的过程当中,碰到了lcd乱码的问题,google大神告诉我,原因是多方面的-延时什么的,可是我在另一片身上已经做过实验了,lcd1602的4线接法的操作是可行的,并没有什么初始化不正常等原因,我在检查电路发现也是正常的.经过与另一片进行比对实验发现,lcd1602上的乱码只有一格,难道是坏了?专门写入某个数也是正常的,并没有损坏,后来突然想到,在另一片上的由于做过了eeprom实验,对某个扇区已经进行过擦除工作了. 阅读全文

posted @ 2011-05-26 21:20 9号 阅读(1409) 评论(0) 推荐(0)

51单片机(STC89C52RC) IO扩展实验
摘要:最近碰到了需要扩展IO口的情况了,正在想办法从lcd1602身上挤出几个IO口,另一种可行的方法是添加专用IC,google之发现可以有更好的方法,网上流传经典IO接按键法,可以用5个IO口实现5X5矩阵键盘.参考这里: 我参照着实验了一番,并用protues仿真看看;用上面的例子,如图: 原理还是采用的是查询的方法进行扫描的,请看其描述: 用3个IO口作行扫描,2个IO作列检测(为方便描述,我们约定:设置某一IO口输出为“0”――称其 为“扫某IO口”)。用行线输出扫键码,列线检测是否有按键的查询方法进行扫键。扫键流程:在行线依次输出011,101,110扫键值,行线每输出一个 扫键值,列. 阅读全文

posted @ 2011-05-24 13:21 9号 阅读(695) 评论(0) 推荐(0)

电路板制作
摘要:电路板得制作在网上能够找到一大堆的教程,我就不详细介绍了,我采用的是热转印法,EDA采用protel 99 se来制作. 首先碰到的问题就是打印问题,网上介绍说是采用激光打印机来进行打印,可是我没有激光打印机,只有一台喷墨的打印机,网上教程上并没有说明能否使用,于是我采用喷墨打印机加专业的转印纸来进行实验,结果失败了,我的打印机(型号:EPSON 141)打印出来后,墨迹很薄,而且很容易污染,猜想可能是由于温度不够的原因或者是纸张不行,于是尝试更换转印纸,网上说那种蜡纸很不错,于是又尝试,发现还是不行,现象与之前的相同,于是肯定是由于打印机的缘故,温度不够还是墨水不行?没有仔细追究,于是自己. 阅读全文

posted @ 2011-05-24 12:58 9号 阅读(233) 评论(0) 推荐(0)

51单片机(STC89C52RC) lcd1602实验小结
摘要:lcd1602是自带控制器的液晶显示模块,能够显示两行点阵数据,其引脚参数请google之. 在实际使用的时候碰到的现象: 第1行黑块,第2行空白,是1602本身上电复位成功的标志。意味着单片机根本没有进行初始化,需要检查电路. 如果碰到两行都是现实黑块,那么就是意味着初始化不正常,需要尝试使用更长的延时功能,确保数据不丢失. 仿真的时候是可以写入并显示数据的,并且检查电路连线没有问题,开始的时候碰到上述两种任意一种,但是写入数据后屏幕什么也米有了. 能够碰到上述的现象的任意一种的时候,就需要调节对比度端口,数据有可能已经写入了,只是没有显示出来,经实验证实,带背光的1602 lcd在上电复. 阅读全文

posted @ 2011-05-24 12:58 9号 阅读(885) 评论(0) 推荐(0)

51单片机(STC89C52RC)小综合实验(续2)
摘要:在上一次实验后的电路,拿到实际当中去测试,发现还是出现问题的,主要是电压的回落时间变得很慢,仔细检查电路发现,原因主要是由于变更了电容的容量大小,原来的采用了10uf的滤波电容,变更后采用了3300uf的滤波电容,按理来说滤波电容大点也是没有问题的.更有助于平滑波形不是吗?可是在这个电路当中,主要是希望lm393的电压变化作为信号,在上次实验的时候,采用的是初始电压为0,也就是相当于能够关闭供电电压的,实际是持续供给,初始电压不为0,于是采用大电容后,放电时间延迟严重. 得到的教训:滤波电容并不是越大越好的,需要根据电路的需求进行相应的调整. 阅读全文

posted @ 2011-05-18 21:07 9号 阅读(232) 评论(0) 推荐(0)

51单片机(STC89C52RC)小综合实验(续)
摘要:上篇文章已经把碰到的问题说了一下,后来去测试的时候发现又碰到问题了,主要的现象就是中断次数不确定,有时候很多次,有时候一次也没有,俗话说就是"中断振荡",首先想到的就是可能类似按钮一样出现的抖动,尝试添加20ms的延时函数失败.进入的次数还不很不确定.google大神告诉我说,尝试在lm393电压比较器输出端加上一个74hc14,这是一个反相器,内置有施密特触发器.对整形很在行. 一想没有这个IC啊,可是我有555定时器,据说也是可以搭建一个电路实现施密特触发器的.但是我没有心急做,仔细分析原因可能有一下几个:电源电压的波动,因为是从变压器整流出来的,波动在所难免.可能是滤 阅读全文

posted @ 2011-05-16 21:48 9号 阅读(412) 评论(0) 推荐(0)

51单片机(STC89C52RC)小综合实验
摘要:这个实验包含以下几个内容:51单片机最小系统单片机外接继电器整流桥的使用lm393电压比较器的使用 首先先上实验结果图:前面两个继电器,中间是最小系统,最下脚是整流器和lm393电压比较器.好,下面来说这个板子制作过程当中的经验: 一是整流桥输出的电压输入到电压比较器当中,这里牵扯到电压比较器的零点漂移概念,即输入为零的时候,输出不为零,主要原因是温度对电子元件的影响,电子元件一般都不是纯种的.二是稳压直流电压的输出,这里用电稳压电源的一套系统,要求不高的话一般是线性稳压:交流电压->整流器->RC电路滤波->LR滤波(可选)->稳压(三端稳压器)->稳压管.三是 阅读全文

posted @ 2011-05-14 21:50 9号 阅读(781) 评论(0) 推荐(0)

关于KBP206的使用说明
摘要:KBP206是一个桥式整流器,如图:这里接口已经说得很清楚了,可惜我还是犯错了,记一下: 我居然没有分清接口,以为+-是两根线的,AC表示交流,于是就认为是外面两根就是接交流线的,出来的是中间的两根 分别对应正负两极,于是乎接错了.正确的应该是中间两根是接交流的,外面两根是正负.比如下图就好多了:我比较认这个意思~~呵呵,傻不拉叽的. 阅读全文

posted @ 2011-05-04 09:22 9号 阅读(1363) 评论(0) 推荐(0)

51单片机(STC89C52RC)EEPROM操作实验
摘要:查看了文档,EEPROM是一种非易失的存储器,常用当做数据存储器,在程序运行当中所需要的数据,配置等等.在STC当中,把Flash当做EEPROM,并不是真正的EEPROM. 基本操作包括字写入/只读取/块擦除三种,更具体的使用可以查阅手册,需要说明的是, 这些是STC特有的,一般并不能用仿真来实现,一开始犯下了这个错误,以为能够用protel来仿真,或许可以,但是获取不到,得到一条经验,那就是在硬件允许的情况下,应该首先考虑用硬件来验证程序. 阅读全文

posted @ 2011-04-29 22:39 9号 阅读(921) 评论(1) 推荐(1)

51单片机(STC89C52RC)光电耦合控制继电器实验
摘要:单片机控制继电器一般是两种方式:一是单片机-三极管(PNP)-继电器,二是单片机-光电耦合器-三极管(NPN)-继电器,后者由于采用了光电隔离,故起抗干扰能力相对前者要强.前者选用PNP型主要是考虑控制逻辑,采用低电平触发的控制逻辑能够防止单片机复位时候产生的误动作.后者NPN是为了控制的方便,但也是遵循这样的控制逻辑. 本次实验采用材料有: STC89C52RC 51单片机NEC/Ps2002B 晶体管光电耦合器9013 NPN型三极管SRD-06VDC-SL-C 松乐6V继电器 电路图我就不画了,可以google,MCS-51直流继电器接口关键字.在这里主要碰到的问题是驱动电流的选择问题. 阅读全文

posted @ 2011-04-16 12:00 9号 阅读(1759) 评论(0) 推荐(0)

51单片机(STC89C52RC)看门狗设置
摘要:没有用过其他的单片机,网上说是可以外置看门狗来防止干扰的,保障程序运行,看门狗的含义请请教google大神或者baidu大哥. STC单片机当中,内置有一个看门狗,它是使用WDT_CONTR寄存器的,也有采用定时器模拟的方式实现,还是这个内置的方便,手册上给出了预分频的大概时间,用户们可根据需要进行选择,时序要求严格则选择最近的,否则一般选最长的. 在一开始设置 sfr WDT_CONTR = 0xE1; 主要是reg51头文件没有定义,然后WDT_CONTR=0x35,设置开启.以下是程序附件:看门狗 阅读全文

posted @ 2011-04-16 11:29 9号 阅读(1730) 评论(0) 推荐(0)

51单片机扩展protues仿真
摘要:在51单片机当中,一般的at89s51就是两个外部中断源,其它加强型的我想应该会多两个,但是依旧还是不是很多,某些时候需要对其进行扩展,一般用定时器/计数器作外部中断,将其设定为计数器模式,并置初始化数为0xffH,这样只要一次就会计数溢出,产生中断.一般比较实用的就是实用软件中断. 这种方法是:把各个中断源通过硬件“或非”门引入到单片机外部中断源输入端(INT0或INT1),同时再把外部中断源送到单片机的某个输入输出端口,这样 当外部中断时,通过“或非”门引起单片机中断,在中断服务程序中再通过软件查询,进而转相应的中断服务程序。显然,这种方法的中断优先级取决于软件查询的 次序。其硬件连接如. 阅读全文

posted @ 2011-04-10 23:35 9号 阅读(368) 评论(0) 推荐(0)

导航