[PIC®/AVR®/dsPIC®产品] 天梯 之 从零开始玩转PIC

[复制链接]
43489|177
 楼主| 程序匠人 发表于 2007-12-21 22:01 | 显示全部楼层

匠人的调试板

 楼主| 程序匠人 发表于 2007-12-21 22:39 | 显示全部楼层

第2个调试程序

#include&nbsp;&nbsp;&nbsp;&nbsp;&ltpic.h&gt<br /><br /><br />//定义芯片工作时的配置位<br />//__CONFIG(HS&nbsp;&&nbsp;WDTDIS&nbsp;&&nbsp;PWRTEN&nbsp;&&nbsp;BOREN&nbsp;&&nbsp;DP&nbsp;&&nbsp;LVPDIS&nbsp;&&nbsp;DUNPROT&nbsp;&&nbsp;WRTDIS&nbsp;&&nbsp;DEBUGEN&nbsp;&&nbsp;UNPROTECT);<br />__CONFIG(HS&nbsp;&&nbsp;WDTDIS&nbsp;&nbsp;&&nbsp;LVPDIS&nbsp;);<br /><br />//声明函数类型<br /><br /><br />//定义变量<br />unsigned&nbsp;char&nbsp;i,&nbsp;j&nbsp;,k;<br />bit&nbsp;flag1,flag2&nbsp;;<br /><br /><br />//函数<br />void&nbsp;main(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;i=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;j=0;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;k=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;TRISA=0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORTA=0x01;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(&nbsp;i=255;&nbsp;i!=0&nbsp;;&nbsp;i--&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(j=255&nbsp;;&nbsp;j!=0&nbsp;;&nbsp;j--)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//for&nbsp;(k=255&nbsp;;&nbsp;k!=0&nbsp;;&nbsp;k--)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORTA=0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(&nbsp;i=255;&nbsp;i!=0&nbsp;;&nbsp;i--&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(j=255&nbsp;;&nbsp;j!=0&nbsp;;&nbsp;j--)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//for&nbsp;(k=255&nbsp;;&nbsp;k!=0&nbsp;;&nbsp;k--)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />---------------------------------------------------<br />说明:这个程序只有一个功能,就是PA0不断翻转,控制LED闪烁。<br />通过这个程序,匠人完成了对开发工具和开发环境的初步学习。包括:<br />1、如何连接目标板和ICD2、注意事项;<br />2、如何选择DEBUG、如何设置参数;<br />3、如何下载程序到芯片;<br />4、如何调试,包括断点、单步、全速;<br />5、如何在调试过程中,观察RAM、io口、堆栈的状态;<br />6、如何烧芯片,并且让芯片脱离ICD2后单独工作;<br />7、进一步增强学习的信心。<br />

评论

@狼烟客 :那个还是时灵时不灵,简直要命  发表于 2019-9-3 15:23
@huster89 :读取状态用PORT,写电平用LATx,血的教训  发表于 2019-7-10 15:32
PIC的电平控制,用LATA比较好,当时驱动直流电机时,找了一周的bug  发表于 2019-4-16 16:31
幸福DE饭团 发表于 2007-12-22 09:05 | 显示全部楼层

程序中应该设置下ADCON1

  
machunshui 发表于 2007-12-25 11:30 | 显示全部楼层

如果会一种单片机

如果会一种单片机,<br />学另一种,proteus就可以了.<br /><br />proteus对pic的支持不错,而且和maplab联调非常稳定,比和keil,IAR联调都要稳定.<br /><br />实际项目程序完全可以先仿真差不多,再上实际硬件.
 楼主| 程序匠人 发表于 2007-12-25 13:15 | 显示全部楼层

谢谢各位指点,目前正在想拿这颗芯片做个什么东西玩

  
hotpower 发表于 2007-12-25 13:16 | 显示全部楼层

看来菜鸟毕业了~~~恭喜~~~

  
fsaok 发表于 2007-12-25 14:27 | 显示全部楼层

proteus对pic的支持

根本就不用联调,直接用cof文件就可以仿真了
yewuyi 发表于 2007-12-25 14:28 | 显示全部楼层

做个电动车控制器~~

俺想看连载^^
韦广远 发表于 2007-12-25 17:09 | 显示全部楼层

LS说的有理

可惜我们是代理商,不能参赛。
 楼主| 程序匠人 发表于 2007-12-25 19:40 | 显示全部楼层

电动车控制器已经做过了,不好玩

yewuyi&nbsp;发表于&nbsp;2007-12-25&nbsp;14:28&nbsp;PIC&nbsp;单片机&nbsp;←返回版面&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />48楼:&nbsp;做个电动车控制器~~&nbsp;<br /><br />俺想看连载^^&nbsp;<br />&nbsp;<br />
machunshui 发表于 2007-12-25 23:32 | 显示全部楼层

proteus

&quot;根本就不用联调,直接用cof文件就可以仿真了&quot;<br /><br />用cof文件运行那是最基本的功能,但只是能看到程序的运行效果.<br /><br />但是联调功能更强大,把proteus当作maplab的仿真插件用,可以实现单步,断点,全速运行,和实际的硬件仿真调试一摸一样.<br /><br />关键是proteus对maplab的支持非常好,非常稳定,仿真时比ICD2要稳定的多!<br /><br />而且仿真PIC对计算机的cpu要求不高,不像仿真lpc2000经常不能处于实时状态,<br />proteus仿真pic基本上都能处于实时状态.
兰天白云 发表于 2007-12-26 08:28 | 显示全部楼层

还没用过proteus,落后了

  
yewuyi 发表于 2007-12-26 08:37 | 显示全部楼层

~~,俺用过PROTEUS,但用来仿真模拟电路的

仿真MCU嘛只是稍微试了一下就放弃了,呵呵,不喜欢用那东西,还是脑袋仿的快~~
fsaok 发表于 2007-12-26 08:47 | 显示全部楼层

cof文件

用cof文件运行,同样可以实现单步,断点,全速运行,用暂停键就可以看源程序了,再点&nbsp;ctrl-d&nbsp;还可以看机器码。<br /><br />proteus&nbsp;好处有很多,可以监视ic,可以直接接示波器,可以和pc的串口联调等。<br /><br />和实际的硬件仿真调试一摸一样?这事情从来就没有过,只能做到大致一样,<br /><br />简单举例:键盘抖动能模拟吗?发热丝能加热吗?18b20&nbsp;能连续变化吗?<br /><br />俺的大脑不太好,所以很多东西还是靠计算机帮忙。而计算机的确帮了不少忙。如此而已<br /><br /><br /><br />
zhaoyu2005 发表于 2007-12-26 09:13 | 显示全部楼层

proteus仿真PIC单片机确实爽

主要是不用花钱买元件和修改电路方便,不行了可以撤销,实际硬件一旦改了一个地方,想恢复很麻烦的,但是在Proteus里就很方便了。<br />Proteus对PIC的支持是比keil&nbsp;c好,但是有时也会出现错误,造成MPLAB非法退出,还有就是有时会出现莫名其妙的问题。<br />俺最近遇到了一个问题,就是仿真电路里有交流220V(把电压源设置一下)、可控硅、光隔离可控硅驱动器(MOC3043)、电压比较器、光耦、单片机,结果proteus报错,不能仿真,不知道问题出在哪里?也不知道怎么弄
machunshui 发表于 2007-12-26 11:40 | 显示全部楼层

proteus很好

&quot;和实际的硬件仿真调试一摸一样?&quot;<br /><br />我说的是和ICD2硬件调试一样的操作模式.<br />非得扣字眼,没有意思.<br /><br />proteus不可能代替硬件,但是可以从程序逻辑上省去了相当大的一部分硬件的调试工作.<br /><br />18B20用proteus测到温度,就说明了程序驱动的逻辑正确性,在没有硬件的情况下,就完成了硬件的驱动的绝大部分工作,岂不快哉!!<br />
machunshui 发表于 2007-12-26 11:55 | 显示全部楼层

proteus可以节省很大精力

proteus的最大的作用还在于程序逻辑仿真,而不是电路仿真.<br /><br />一般仿真是外部器件过多,速度就会慢,做程序仿真时也没有必要.<br /><br />我一般把数字输入输出就直接简化为开关输入和驱动led显示输出,这样也不影响程序的正确性.象光耦一类用proteus仿真程序时,加入好像意义不大.<br /><br />用protesu仿真程序,直接把具体输入输出用模型代替是一个好办法.<br /><br />proteus可以节省很大精力.
machunshui 发表于 2007-12-27 20:06 | 显示全部楼层

喧宾夺主了

喧宾夺主了,不好意思!<br /><br />匠人继续!
hotpower 发表于 2007-12-28 00:06 | 显示全部楼层

哈哈~~~PIC还用仿真???真服了匠人了~~~俺PIC24三天就毕业~~~

  
handerson 发表于 2007-12-28 12:43 | 显示全部楼层

强!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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