[ZLG-MCU] 请教LPC903编程

[复制链接]
3700|10
 楼主| PIC008 发表于 2008-8-4 08:53 | 显示全部楼层 |阅读模式
小第初学LPC900系例单片片,现在发现程序烧进去,芯片没有反应,用的烧写器是&nbsp;周立功的&nbsp;Mini&nbsp;PRO&nbsp;烧的,&nbsp;现在不知道是&nbsp;程序问题&nbsp;还是芯片问题?<br />程序是最简单的让LED&nbsp;亮一下!<br /><br />还请各位达人帮忙看一下!小第先谢了!<br /><br />#include&nbsp;&ltReg903.h&gt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Keil&nbsp;header&nbsp;file&nbsp;name<br /><br />sbit&nbsp;led1=P0^2;<br />sbit&nbsp;led2=P1^1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />void&nbsp;main(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;P0M1&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;P0M2&nbsp;=&nbsp;0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;P1M1&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;P1M2&nbsp;=&nbsp;0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;led1&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//LED的接法是灌电流的。<br />&nbsp;&nbsp;&nbsp;&nbsp;led2&nbsp;=&nbsp;0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}
kenand 发表于 2008-8-4 09:31 | 显示全部楼层

在zlgmcu.com搜索“详细开发流程”,然后按照那篇文档操作

  
 楼主| PIC008 发表于 2008-8-4 12:38 | 显示全部楼层

LPC903

&nbsp;谢谢kenand的回复,我就是按&nbsp;详细开发流程&nbsp;操作的,&nbsp;现在就是不知道是芯片问题还是程序问题,我想芯片应该没问题,因为程序都可以烧进去的!<br />但是程序也是最简单的程序啊!
liujigan 发表于 2008-8-4 14:16 | 显示全部楼层

烧写前的配置可能存在问题

烧写前的配置可能存在问题,用内部RC,内部复位、引导向量去掉”对钩“。
 楼主| PIC008 发表于 2008-8-5 15:31 | 显示全部楼层

LPC903

谢谢&nbsp;&nbsp;liujigan&nbsp;解答,&nbsp;&nbsp;烧写配置我设置的都是对的。<br /><br />用内部RC,内部复位、引导向量去掉”对钩“。&nbsp;&nbsp;是这样的。<br /><br />由于以前一直用&nbsp;PIC的单片机,没用过&nbsp;51的。现在刚开始学习&nbsp;51的。<br /><br />这个问题&nbsp;我花了一个星期&nbsp;还不知道是哪里问题,真是头大啊!&nbsp;
小熊猫 发表于 2008-8-6 08:55 | 显示全部楼层

[转帖]

对LPC900系列单片机烧写程序的办法有很多,如ISP,IAP,ICP,并行编程器。<br /><br />如果ISP想用得爽的话,需要了解较多的相关原理才能用得得心应手,在这里对于初次使用者,建议用ICP或者商用编程器方式烧写程序。<br /><br />ICP,即在电路编程,由上机位软件MiniICP&nbsp;for&nbsp;LPC900&nbsp;+&nbsp;专用ICP下载器(需要购买)&nbsp;+&nbsp;LPC900单片机的ICP接口(VDD、VSS、P04、P05、P15)+&nbsp;单片机芯片构成编程系统。<br />特点:适用于研发,它无需把单片机从用户的电路板上取下来,只要预留上述的五根线即可实现程序的更新。<br />注意事项一:烧写程序时外部无需给单片机供电,因为专用ICP下载器的VDD、VSS已经和单片机相连。<br />注意事项二:烧写程序时P04、P05、P15引脚上不能接有小电容,否则会影响专用ICP下载器产生的时序,从而引起【通信出错】的提示。<br /><br />商用编程器,即通用编程器,由上机位软件&nbsp;+&nbsp;编程器&nbsp;+&nbsp;单片机芯片构成编程系统。<br />特点:合适用于量产,把单片机直接放到编程器的适配座上进行程序的烧写。<br /><br />ISP预备知识:<br />刚购买的芯片配置字是0x63,0x00,0x1F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00。<br />0x63&nbsp;--&nbsp;UCFG1&nbsp;:WDT禁止,外部复位,掉电检测使能,WDSE禁止,内部RC;<br />0x00&nbsp;--&nbsp;UCFG2&nbsp;:(不常用,不必关心这个配置字);<br />0x1F&nbsp;--&nbsp;引导向量,这个配置相当重要,ISP代码所在地址的高位;<br />0x01&nbsp;--&nbsp;引导状态字,在这里表明引导向量使能;<br />0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00&nbsp;--&nbsp;加密位,在这里表明芯片不加密(因为单片机意外跑飞的话有可能通过IAP来修改内部程序,加密则可以防止这种情况)。<br />这些配置字可以从编程器软件的文件缓冲区的地址FF00H这个地方看到。<br />因为已经使能了引导状态字,所以给单片机上电芯片自动就进入了ISP状态(直接转跳就是基于这个原理),可以进行程序的烧写。对于初次使LPC900单片机的用户,通常会反映单片机重新上电后不跑用户程序,由这里我们明白,如果要跑用户程序的话,要去掉引导状态字(即把STATUS&nbsp;BYTE修改成00H)。<br />但是这就存在一个问题,下次上电后单片机是在跑用户的程序了,那么,我怎样再次进入ISP状态呢?在这里,有两种办法激活ISP。一是三个脉冲,二是使用帧间隔。<br /><br />ISP(LPC920以上才支持这种方式),常用的有两种方式,三个脉冲和帧间隔。<br />首先,它们对应的硬件电路是不一样的。硬件推荐用三个脉冲方式,软件推荐用Zlgisp_900,网址为http://www.zlgmcu.com/download/downs.asp?ID=1438<br />(把这个软件安装后,到安装目录找这个文件:LPC900_ISP_ICP.pdf,该文档对硬件电路怎样做,和烧写方法有仔细说明)。<br /><br />关于三个脉冲ISP下载:<br />1在芯片工作的过程中任何时刻都可以用三个脉冲的办法进入ISP<br />2使用了串口的五根线,硬件电路相对于经典的MAX232电路略有差别<br />3对应的上机位软件有两个,Zlgisp_900或者ZLGISP(即Philips&nbsp;ISP下载器)<br /><br />关于帧间隔ISP下载:<br />1要在您写的程序中加入帧间隔初始化代码,每一次烧写程序时都是这样<br />2TXD,RXD两个端口最好自始至终配置成双向口<br />3注意上机位软件的波特率设置要与程序中设置的波特率相一致<br />4硬件电路就是经典的MAX232电路<br />5对应的上机位软件有两个,Zlgisp_900或者Flashmagic<br />6波特率一般是7200或者9600<br /><br />使用ISP下载注意事项:<br />1注意上一次能进入ISP方式时,如果上一次是使用了外部晶振的话,这一次也是需要使用晶振才能进入ISP方式<br />2最重要一点,用ISP的话,不要改引导向量和不要擦除ISP代码,否则只有用ICP或者编程器恢复其代码了。<br /><br />补充说明,关于引导状态字和引导向量:<br />引入引导向量这个功能目的是提供一种灵活的方式,让编程人员方便使单片机上电时可以执行非0000H开始的程序代码,从而实现一些特殊的功能,如ISP等。<br />但是,为了顺从51标准单片机的习惯,让单片机上电就从0000H的地方开始执行程序,则可以把引导状态字勾掉,即配置成00H。<br /><br /><br />
寒雨飞扬 发表于 2008-8-11 23:56 | 显示全部楼层

程序很简单

这时候建议你想办法证实一下你的单片机有没有工作起来。<br />首先确认一下晶振有没有振,通过测试外部引脚看看芯片有没有工作(没有用过LPC的单片机,一般芯片只要运行起来都会有一个引脚输出一定频率的信号,查查书册)。有条件的话仿真一下最好。<br />周立功公司有很好的仿真器啊,仿真的芯片种类也很多,价格也不贵,你可以考虑一下。
kanerier 发表于 2008-8-12 08:16 | 显示全部楼层

re

搞个通用烧写器试一下,有可能是烧写器的问题,以前我有个EasyPRO&nbsp;100B烧了程序怎么都运行不了的,后来寄回去升了一下级就OK了
 楼主| PIC008 发表于 2008-8-13 21:21 | 显示全部楼层

903

非常感谢各位热心帮助!前段时间一直搞不定所以放在一边了!<br /><br />由于偶是第一次用51的片子,&nbsp;keil&nbsp;c&nbsp;也是第一次用!<br /><br />而MiniPRO&nbsp;ICP烧写器也是刚买来的。所以无形中增加了调试难度。<br /><br />周工网站上关于LPC900的资料我全部都看了。<br /><br />LPC903,没有信号输出脚,所以无法测单片机有没有工作。<br /><br />而晶体也是内部RC,没有引脚出来。所以也测不出来。<br /><br />小第关于&nbsp;keil&nbsp;的使用&nbsp;有几点问题问一下!<br /><br />1.&nbsp;那个A51启动文件要不要,周工的资料里建议取消A51启动文件。<br /><br />2.&nbsp;在&nbsp;artget&nbsp;里&nbsp;&nbsp;&nbsp;memory&nbsp;model&nbsp;&nbsp;我选&nbsp;&nbsp;small对不对,&nbsp;903内部RAM是&nbsp;256B<br /><br />code&nbsp;rom&nbsp;zize&nbsp;:&nbsp;我也是选&nbsp;small&nbsp;&nbsp;903&nbsp;ROM&nbsp;是&nbsp;1K&nbsp;。<br /><br />Use&nbsp;On-chip&nbsp;ROM&nbsp;要不要选。&nbsp;&nbsp;我之前都是不选的。这个的意思是&nbsp;使用片上&nbsp;ROM,&nbsp;&nbsp;我想这人要选吧。<br /><br />但是这个一选择,程序就编译不过。提示代码&nbsp;溢出。<br /><br />还有我的LPC903是电子城买的,有没有可能是假的?<br /><br />我的想法是程序能烧入进去,芯片坏的可能性就比较小,应该是程序问题的。
kanerier 发表于 2008-8-14 09:26 | 显示全部楼层

re

A51可以不要,我一般都不用,<br />keil设置,只要选对了芯片,另外什么都不要动了,当然输出HEX得勾。<br />LPC903假可能不大
 楼主| PIC008 发表于 2008-8-25 07:52 | 显示全部楼层

问题解决了

问题解决了,原来是编译器的问题,换了个编译器就可以了!<br />感谢周工的FAE,和在座的各位,一直都没怀疑编译器会出现问题,大家用keil&nbsp;V3的时候小心一点,如果发现怪怪的问题,不防换个keil&nbsp;V2&nbsp;try
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部