-
Recent Posts
Recent Comments
- cepark on *** WARNING L15: MULTIPLE CALL TO SEGMENT
- 嚣张 on 由于最近连着做了几个网站,慢慢习惯了用记事本直接用html标记来作网页 …
- liu on zlg7290的烦恼
- 徒弟 on 倍压整流电路
- Kitty on 蓝牙同步找不到activesync服务
Archives
- August 2009
- October 2008
- September 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- September 2007
- August 2007
- July 2007
- May 2007
- March 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- June 2006
- May 2006
- April 2006
- March 2006
- January 2006
- December 2005
- November 2005
- October 2005
- September 2005
- August 2005
- July 2005
- June 2005
- March 2005
- August 2004
- July 2004
- June 2004
- May 2004
Categories
Meta
Category Archives: 单片机
关于51的抗干扰性…
去年做了几个项目,全部都是使用51内核的MCU,其中有2个项目由于使用环境的恶劣,经常出问题..头疼 问题一般都是出现在控制大电流,大电压和野外的环境下出现的,一般是程序跑飞,数据出错量大等等问题.但是拿回到实验室中,连续几天运行又没有问题了.于是决定做干扰试验…衰.. 发现只有被控设备发生大电流下的通断控制时,控制器浮现出类似的死机/程序跑飞等现象.于是试图在程序中进行控制,无论是进行看门狗还是进行保护现场,均无效.最后只好看硬件了,加了DCDC,无效.改进布板,无效.改进电源,无效.加强屏蔽,无效.所有的措施都用上了,效果不能说没有,但1000次的试验中还是有N次,看来应该是MCU的问题了,咨询了厂商的技术,说了一堆废话,看来他们也无能为力,因为他们自己做的开发板也存在此类问题,甚至比我做的还要差. 试验了几种不同品牌的51MCU,情况差不多,有些能好些,但是去掉上述的抗干扰措施后,就没有能顶的下来的了.何况加了一堆东西,成本也上去了,看来得不偿失啊!!! 没办法,看看其他MCU,51准备用在一些对干扰性要求小的地方吧,这些干扰性大的地方只好放弃51了. 进入视线的有AVR,PIC,飞思卡尔 其中飞思卡尔应用在汽车控制中应用很多,但是资料比较少 AVR除了速度快,优势并不明显 只剩下PIC了,考察了几天,无论从成本到抗干扰上还有易用性到我们实际使用的方式综合来看,看来它比较适合. 于是买了几片不同型号的PIC来,没有仿真器,只是编译了段程序,用俺那个老的掉牙的编程器给烧写好了,然后试验,目前还不错,什么措施都没有加,跑了几天,没出什么问题. 前几天咬咬牙买了套开发板和在线调试器,其实我主要是想要一些代码,板子和调试器自己都能做.因为这样的话,能缩短不少前期的时间. 开始学习PIC,看来新一轮的痛苦又要开始了.
Posted in 单片机, 工作
Leave a comment
关于并口转USB转接(线)器
前些天,在淘宝上买了所谓的并口转USB转接线,到手后一看,25针接口居然是打印机的那种专用口,心里暗暗叫苦(不会是只能用打印机吧),接上我的笔记本(以前提到过的联想出品的垃圾),果不其然,系统自动转上了驱动,系统设备中多了个什么USB打印通道,看来此设备非彼设备啊!!!原来想是和那种串口转USB线一样的东西,装上驱动后,在系统里虚拟出端口来,这样在使用的时候,基本就不受限制.不过看看这条并口线打的牌子是SONY,拆开看看做工也不错,价格20大洋,如果退货的话,邮费就白扔了,正好手头上有台标签打印机,给它用吧!接上试试,还不错,能用…原本打算用在编程器上的想法落空了,在找找吧!! 在网上又找了找,好像基本上没有我想要的那种虚拟成并口的那种USB线,又开始找对应的芯片,如果有的话,自己可以做一条,有颗FT245系列的好像是,但是仔细看看它的文档,也不是,关键是没有对应的虚拟程序,而且它输出的端口也没有说明是并口的电气协议,只是对应的有8个数据线,而没有并口中的控制线,看来只是把USB变成了8位的数据总线….看来这东西应该是有某种关键地方没有解决,看来目前还没有这种能够完美虚拟成并口的东西!! …我的编程器啊!老掉牙的编程器啊!只好用家里的老掉牙的台式机了,麻烦!
Posted in 一些废话, 单片机, 工作, 生活
4 Comments
51定时器初始值计算
适用于SiLabs的C8051F系列51单片机,当然其他类型的也可使用!只做了16位的计算,因为我平时基本都用这种模式~~—————-这个东西其实很早就做好了,一直没上传,因为相同功能的东西实在太多了,不过既然有朋友要,那就共享了~~ http://www.chuangyeedu.com/xmnetstone/showpic.asp?pic_id=24
Posted in 单片机, 工作, 编程
Leave a comment
keil c51 v8.12 发布!
keil再次升级,距离上次才一个月! C51 Version 8.12 Release [Device Simulation] Added: device support and simulation for SiLABS C8051T600/1/2/3/4/5 and C8051T610/1/2/3/4/5/6/7. [Cx51 Compiler]Corrected: nested call with struct pointer arguments where incorrectly processed. [LX51 Linker/Locater]Corrected: sfr16 definitions in assembly code and C source file may … Continue reading
单片机仿真的怪问题
今天调试一个程序,本来这个程序中的子程序是调好的,可是今天用仿真器仿真的时候,出来的数据就是不对,而且有时候每次还不一样? 怪了,检查了半天程序,程序应该是没有问题的,在看看硬件电路吧,去耦也加了,上拉也加了,还是不行… 这时,忽然看到了仿真器上连着的长长的到仿真头的电缆上,因为我这段程序是读一个外部的存储器,写入基本没什么问题,就是读取的时候有毛病,想是不是这根线有问题啊?用万用表量了N次,没有问题?干脆!用粗而短的线,将外部存储器输出口到仿真头直接连了起来….居然好了!….为了进一步验证,烧了芯片,将芯片插上,不用仿真了,也没问题….真是无话可说了,原来原因在这里了,看来是因为仿真头的线太长了,要不就是太细,所以导致数据的不正确!!看来新的那种用JTAG非侵入式在线系统调试仿真还是很有道理的!至少这种问题是不存在的! …还是老话,如果不是成本的问题,传统的51(89C51一类的)不论从芯片到仿真系统真的都该下岗了,不过还是老话,既然存在就有存在的道理~~~嘿嘿~~~
Posted in 一些废话, 单片机
Leave a comment
如何使用89s(c)52的高128ram 续
上次说了那个使用52的时候,如果想使用高128ram,需要使用idata 今天在写一个芯片的驱动的时候,发现如果在延时的子程序中,使用idata的时候,会造成延时时间的不准确,具体原因我没有去找 可能是间接寻址和直接寻址的时间不一样.有时间在找找吧!
Posted in 单片机
Leave a comment
红外解码
本来打算写个能学习的解码程序,不过发现每次采样的值都有点差别,可能是程序那个地方还需要调整…. 刚刚算了算,才发现,我用的93C46(图便宜呀!图便宜!)根本放不下采来的数据…我晕 算了 还是写个专门的吧…首先要知道我的遥控器用的那个型号的编码芯片,找把螺丝刀…开翘…掩膜芯片(一大块黑乎乎的塑胶封装的那种)..靠 ! 没办法,只好用数据分析了,网上搜了一下,还真有位朋友做了个红外数据分析的东东,懒的搭电路了,找个最小系统(躺在垃圾里N久了),还不错,查了一下,数据有42位,继续搜,哦 原来是7461的编码芯片,顺便找到了它的数据格式. 开写…. 23点,现在差不多了,有时间在试试它的抗干扰能力如何…睡觉!
Posted in 单片机
2 Comments
*** WARNING L15: MULTIPLE CALL TO SEGMENT
说说几个小问题吧,一般我们在用KEIL的时候,只要编译器报 - 0 Error(s) 一般我们都不去管多少个 Warning(s).了,一般这样程序基本都能运行,但是其实仔细想想,这里还是有问题的,否则编译器没事吃饱了撑得,报什么警告啊~~~ 今天来说说*** WARNING L15: MULTIPLE CALL TO SEGMENT这个问题! 其实这个问题应该是引起注意的,有可能引起程序冲突,但是一般时候程序运行不会有问题,但是如果出来问题,那将会是很讨厌的问题. 分析一下 产生这一警告的一个根源是:例如在主循环里调用了一个函数,而在中断服务中,你又一次调用了同样的函数。这样当主循环运行到该函数中时,一旦产生中断,则在中断里又再次调用该函数!而使得该子函数发生了重入,这时,经管概率很低,但是很可能出错!这样,编译器就给出了警告!告诉你*** WARNING L15: MULTIPLE CALL TO SEGMENT ,表达的意思是发生了重入!字面意思自己理解去吧~~~ 想要避免这种情况的方法 一.用reentrant使函数重入 关于reentrant的说明: 1,重入函数不能传递bit类型的参数和变量; 2,重入函数建立的是模拟堆栈区,所以不使用一般函数位于存储模式默认空间的可覆盖式堆栈,而是在同一空间从顶端另行分配一个非覆盖式的重入堆栈。 small 默认空间是 data; compact 默认空间是 pdata; largr 默认空间是 xdata; 3,由于要保存参数和局部变量,所以会消耗很大的栈空间;尽量少用这种模式; … Continue reading
Posted in 单片机, 工作, 编程
10 Comments
keilc51v8.11a
到网上闲逛,看到keil又TM升级了! 下载 安装 运行 还不错,没看出改进了啥地方 看看升级说明 C51 Version 8.11a Release [Device Support] Added: support for Ramtron VRS51L3072 and VRS51L3174. Added: support for Nordic Semiconductor nRF24LU1. [Device Simulation] Added: device support and simulation for SiLABS C8051F336, C8051F337, C8051F338, and C8051F339. Corrected: … Continue reading
Posted in 单片机, 工作
3 Comments