Microchip
直播中

张婷婷

7年用户 239经验值
私信 关注
[问答]

如何电子邮件整个ASM文件?

PIC12F683汇编语言帮助我和硬件工程师一起在开源项目上工作-我需要帮助阅读和理解PIC12F683的一些汇编语言-我把它移植到C。我需要知道下面的定时器和CCM(捕获和比较模块)设置?下面是7个小子程序。你能告诉我关于这个代码有助于我把它移植到C吗?01CLRF CCPR1L;CCPR1L 01-04/22/2016 MOVLW 0x04;b’00000100d‘004’04’04/22/2016MOVWF T2CON;04/22/2016 DGA01010101DGA01MOVW0x0C;04/22/2016 D0101010101DGA2016 MOVWCCCCPR1L;CCPR1L 01-04/22/2016 DGA01016 MOVLW 01 01 01 CLRF CCPR1L;ANDWF CCP1CON,F;04/22/2016 DGA 004/22/2016DGA 04 SWAPF CCP1CON,W;04/22/2016DGA040X10;b'00010110 d'022;03MOWCCPR1L;CCPR1L 03-04/22/2016MOVLW 0xCF;b'11001111'd'207ANDWF CCP1CON,F;04/22/2016DGA 04 04 SWAPF LRAM_0X33,WANDLW0X30;b'00110100010001000100010001000000d'048''04048'“0”IOWWWWWWCCP1CCP1CON,F,F;04/22/22/22222222222222220404040404/2222222222222222222016CCP1CON 2016 DGA 05;04MOVWF CCPR1L;CCPR1L 0404/22/2016MOVLW 0xCF;b'11001111 d'207'ANDWF CCP1CON,F;04/22/2016DGA 06 DGA 06 MOVLW 0x64;b'01100100100d'100''d'100';d;;05MOVCCPR1CL05050506-04/2222222016MOVLVLVLVLW0xCF;CCPR11001111111'd'207’ANDWF CCP1CON CCP1CON,F;b'11011011001111111111111111111 d 207’D 207’DGA 207 DGA 08 SWAPF LRAM LRAM_0x2A,04/22/2016DGA206DGA08SWSWSWAPLRAM_030;b'00110000'd'048'“0”IORWF CCP1CON,F;2016DGA 09/22/2016DGA 09;06MORWFCCPR1L;CCPR1L 06-04/22/2016MOVLW 0xCF;b'11001111’和‘207’ANDWF CCP1CON,F;04/22/2016DGA 2016 DGA 10 SWAPF 10 SWAPF LRAM_0x2A,ANDLW0XXX10 SWAPFL10SWAPFLLLRAM_0x2A,WANDLW0XXXX10;b'00110000d’04110000d‘048'0”IOWWWWCCP1CON CCP1CON CCP1CON,F;MOVLW 0xCF;b'11001111'd'207'ANDWF CCP1CON,F;04/22/2016 DGA 12 MOVF CCP1CON,W;04/22/2016 DGA 13 MOVLW 0x83;b'10000011'd'131'我正在与另一位工程师在太阳能微逆变器上的开源项目上与PIC 12F683合作,制造商倒闭是因为软件中的其他缺陷。子板在逆变器与PIC 12F683-它产生一个47khzPWM信号,有时它会改变频率。我们知道,因为我们看到在AsPop-我们也知道占空比和/或频率正在改变一点点。实际上我编写了一个新的C程序来代替它——它工作得很好,但是用新的C代码直流到直流变压器的温度要高出20度——所以我只需要知道原来的程序在做什么。我知道如何获取值并将其插入CCM/timer计算器以获得精确的值——问题是,我无法知道值是什么,因为这是使用一些我不理解的逐位操作——而不是发布整个汇编语言程序,我粘贴了7个不同的子例程。它操纵计时器和CCM。我可能已经把你需要看的东西切掉了。如果你想看更多,告诉我如何电子邮件整个ASM文件。我们非常感谢能够阅读这种汇编语言并能告诉我们所有定时器和CCM设置的一两个人的帮助。丹-圣路易斯,密苏里-

回帖(1)

李维兴

2019-10-14 13:52:07
组装实际上可以很容易地翻译成C:;01CLRF CCPR1L;CCPR1L;CCPR1L;CCPR1L=0;MOVLW 0x04;MOVLW 0x04;MOVWWFT2CON;T2CON;T2CON;T2CON;T2CON;T2VWWWW0x0C;MOVWWWWWCCP1CON;CCP1CON=0x0XC;CLP1CONCCP1CON=0XC;CLRFCCPRCCPRCCPR1L=0;MOVLW 0xCF;CCPR1L=0;CCPR1L=0;MOVLCCW0xCF;ANDWFCCCDWFCCCDWFCCCDWFCCCDWFCCCP1CCP1CCP1CCP1CCP1CCP1CCP1CON,F中国共产党R1L = 0x16; MOVLW 0xCF ; ANDWF CCP1CON,F ; CCP1CON &= 0xCF; SWAPF LRAM_0x33,W ; ANDLW 0x30 ; IORWF CCP1CON,F ; CCP1CON |= ((LRAM_0x33 >> 4) | (LRAM_0x33 << 4)) & 0x30;; 04 MOVWF CCPR1L ; CCPR1L = WREG; MOVLW 0xCF ; ANDWF CCP1CON,F ; CCP1CON &= 0xCF; MOVLW 0x64 ;; 05 MOVWF CCPR1L ; CCPR1L = 0x64; MOVLW 0xCF ; ANDWF CCP1CON,F ; CCP1CON &= 0xCF SWAPF LRAM_0x2A,W ANDLW 0x30 ; IORWF CCP1CON,F ; CCP1CON |= ((LRAM_0x2A >> 4) | (LRAM_0x2A << 4)) & 0x30;; 06 MOVWF CCPR1L ; CCPR1L = WREG; MOVLW 0xCF ; ANDWF CCP1CON,F ; CCP1CON &= 0xCF; SWAPF LRAM_0x2A,W ANDLW 0x30;IORWF CCP1CON,F;CCP1CON|=((LRAM_0x2A>>4)|(LRAM_0x2A<<4)&0x30;基本上,这些片断正在设置PWM的占空比。如数据表中所述,PWM占空比是通过将10位值写入CCPR1L寄存器和CCP1CON<5:4>位来指定的。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分