帮忙看一下~!

[复制链接]
3253|5
 楼主| ethunter 发表于 2007-8-18 16:13 | 显示全部楼层 |阅读模式
ov, TI, IO, go
我用的片子是16F505,想让C口的1,2位输出一个脉冲信号,程序如下:<br />&nbsp;&nbsp;&nbsp;&nbsp;list&nbsp;p=16F505<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;#include&nbsp;&quot;p16F505.inc&quot;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;org&nbsp;&nbsp;&nbsp;&nbsp;0x000<br />&nbsp;&nbsp;&nbsp;&nbsp;goto&nbsp;&nbsp;MAIN<br />;&nbsp;'__CONFIG'&nbsp;directive&nbsp;is&nbsp;used&nbsp;to&nbsp;embed&nbsp;configuration&nbsp;word&nbsp;within&nbsp;.asm&nbsp;file.<br />;&nbsp;The&nbsp;lables&nbsp;following&nbsp;the&nbsp;directive&nbsp;are&nbsp;located&nbsp;in&nbsp;the&nbsp;respective&nbsp;.inc&nbsp;file.&nbsp;<br />;&nbsp;See&nbsp;respective&nbsp;data&nbsp;sheet&nbsp;for&nbsp;additional&nbsp;information&nbsp;on&nbsp;configuration&nbsp;word.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />MAIN&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;&nbsp;STATUS,PA0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;0x00<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;OSCCAL&nbsp;&nbsp;;;内部RC晶振校准<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLRWDT<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLRF&nbsp;&nbsp;TMR0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;STATUS,PA0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;b'00000000'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OPTION<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;STATUS,PA0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;b'00001111'&nbsp;&nbsp;&nbsp;;;;;;;;;;;;;;;;;;;端口B<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRIS&nbsp;PORTB<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;b'00000000'&nbsp;&nbsp;&nbsp;;;;;;;;;;;;;;;;;;;端口C<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRIS&nbsp;PORTC<br />START<br />&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;PORTC,1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;PORTC,2<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;0x59<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;0x55<br />&nbsp;&nbsp;&nbsp;&nbsp;DECFSZ&nbsp;0x55,1<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;$-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;0X00<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;PORTC<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;0x10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;50us&nbsp;&nbsp;jinzhoukexin<br />&nbsp;&nbsp;&nbsp;&nbsp;;MOVWF&nbsp;AA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;CHAO&nbsp;&nbsp;SHENG&nbsp;&nbsp;MAI&nbsp;KUAN&nbsp;81uS<br />&nbsp;&nbsp;&nbsp;&nbsp;;DECFSZ&nbsp;&nbsp;&nbsp;AA,1&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;0x59<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;0x56<br />&nbsp;&nbsp;&nbsp;&nbsp;DECFSZ&nbsp;0x56,1<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;$-1<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;START<br />;&nbsp;remaining&nbsp;code&nbsp;goes&nbsp;here<br />&nbsp;&nbsp;&nbsp;&nbsp;END&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;directive&nbsp;'end&nbsp;of&nbsp;program'<br /><br />但写完单片不知道为什么不出,是不是程序上的毛病?硬件也看了,没有那错了,请高手赐教,谢谢~!
 楼主| ethunter 发表于 2007-8-18 16:22 | 显示全部楼层

再求~!

以前用51单片机,刚开始学pic,对pic写程序时初始片子都需要那些工作,比如初始STATUS寄存器之类的,那些寄存器不初始就不好用这类问题,请高手赐教~
xieyuanbin 发表于 2007-8-19 08:59 | 显示全部楼层

程序错的地方较多。

&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;&nbsp;STATUS,PA0<br />应为BSF&nbsp;&nbsp;STATUS,RP0<br />另外置一个端口为高或为低时,不能使用BSF&nbsp;PORTC,x这样的指令,因有读-修改-写的过程,会导致端口逻辑混乱。
 楼主| ethunter 发表于 2007-8-20 08:01 | 显示全部楼层

请帮忙写清楚~!

不是BSF&nbsp;PORTC,x那应该怎么写,读-修改-写我在手册也看到了,但不知道怎么用程序实现,麻烦高手了~!
jan_coco 发表于 2007-8-20 16:00 | 显示全部楼层

可以考虑,仿真一下

在mplab中仿真一下,程序不多,跟踪一下寄存器,设置几个断点,试试看?
 楼主| ethunter 发表于 2007-8-21 16:07 | 显示全部楼层

谢谢各位,己经搞好~

最后找到了,是写片子时对烧写器的配置问题,呵呵,不好意思,没有用过,范了很低级的错误
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

266

帖子

0

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