汉语大全>电子工作经验>没有仿真器的朋友怎样开发单片机程序

没有仿真器的朋友怎样开发单片机程序

详细内容

名称:没有仿真器的朋友怎样开发单片机程序
我大大小小断断续续也算开发了几年PIC了。除了一开始用了ICD开发了一个之外,后来再也没有用过硬件仿真。说来有些惭愧,到现在我自己掏腰包买的ICD2还没启用,硬件仿真器更是连见都没见到过。这都是因为LB酸的缘故,这就不说了。
先说到现在的单位开发的第一个东东。用的是12C508A,OTP的。先用MPLAB软仿真,软仿真的基本通过了,再"硬仿真",其实就是拿芯片烧了试。谁让LB不肯买N千的仿真器呢?好在当时仓库里有N万片,烧!不过后来我自己有些肉痛,想想一个程序才100多句,烧一次还有300多字空的,怪可惜的,又想了一个一片烧几次的办法,先在这里简单介绍一下。
关键是写程序的时候要当心一点。比如一个芯片打算写3次就这样写:
1.第一次编程的时候在第一句写上 0x03,然后写GOTO START1
2.在后面的程序中紧跟着写程序,每个子程的标号为LABLE1_X
3.烧写。...
4.测试。..
5.第二次编程,在第一次的GOTO START1前面一句写 0x02,然后写GOTO START2
6.紧跟在第一次的程序后面去掉END写第二次程序,每个子程序的标号为LABLE2_X.
7.烧第二次。..校验OK...
8.测试。..
大家明白了吗?还可以举一反三,想想有中断时怎么多次烧写。..
余容后述。.....
后来渐渐开发的程序大了,光靠看波形看不出什么名堂,要看内存,怎么办?只有把那些数值读出来,可又没其它的硬件。..好在现在都有FLASH芯片,程序大一点,多烧几次没关系。..有什么用?!先别急,电脑肯定有,再到网上当一个串口调试软件,再编一个串口通讯程序,使单片机可以和电脑通讯。..明白了吗?
隔一段时间把关键的寄存器值送到电脑上。..16进制看不懂?有BIN2BCD的子程序,还看不明白?有BCD2ASCII的子程序。..
我就这样收啊收,什么地方有问题,就调用一下串口通讯的发哪个寄存器的值。..只要你高兴,增加一个CALL而已。..
端口不够?指示灯总有一个吧?数字输入脚总有一个吧?暂时借来复用一下。..
况且,ICD也要占用两个口,几个寄存器,一段程序空间,总比买一个ICD简单吧?况且实时/实地仿真,再好也没有了?