完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
伙计们,我有一个问题,我相信这是因为我的查找表溢出了。基本上,我使用一个锅来改变ADC看到的电压来模拟传感器的输出,并且我使用一个查找表将该值发送给一组4个7段的显示器。然而,当显示器上的值达到42时,显示0,它们都关闭。我怀疑这是因为查找表溢出了。不管怎样,我能绕过这个吗?
以上来自于百度翻译 以下为原文 Guys i'm having an issue and I believe it's because my lookup table is overflowing. Basically i'm using a pot to vary the voltage seen by the ADC to simulate a sensor's output and i'm using a lookup table to send the value to a set of 4 7 segment displays. However when the value reaches 42 on the display it then displays 0 and they all turn off. I suspect it's because the lookup table is overflowing. Is there anyway I can get around this? INCLUDE LIST p=16f877a dig0 EQU 0x20 temp EQU 0x21 bin EQU 0x22 num EQU 0x23 cnt EQU 0x24 dig1 EQU 0x25 dig2 EQU 0x26 count EQU 0x28 tmr_count EQU 0x29 segval EQU 0x30 ORG 0x00 goto init ORG 0x10 init clrf segval clrf count banksel TRISD movlw 0x00 movwf TRISD movwf TRISB bsf TRISA,0 banksel PORTD movlw 0x00 movwf PORTD movwf PORTB movlw 0xFF movwf cnt clrf ADRESH goto main main call config_AD dly call delay_acq bsf ADCON0,GO poll btfsc ADCON0,GO goto poll goto adc_checkval adc_checkval banksel ADRESH movf ADRESH,W call lkup movwf bin movwf num goto num_check num_check movlw 0x0A subwf bin,W btfsc STATUS,C goto step_2 goto disp1_dig disp1_dig bcf PORTD,3 clrf PORTB bsf PORTD,3 bcf PORTD,3 bcf PORTD,2 clrf PORTB bsf PORTD,2 bcf PORTD,2 bcf PORTD,1 clrf PORTB bsf PORTD,1 bcf PORTD,1 bcf PORTD,0 movf bin,W movwf PORTB bsf PORTD,0 bcf PORTD,0 movlw 0xFF movwf cnt goto dly step_2 bcf STATUS,C movlw 0x64 subwf bin,W btfsc STATUS,C goto dly ;goto step_3 goto dig_2 dig_2 movf num,W lp_2dig movwf temp movlw 0x0A subwf temp,W incf cnt,F btfsc STATUS,C goto lp_2dig goto bcd_2dig bcd_2dig movf temp,W movwf dig0 movf cnt,W movwf dig1 bcf PORTD,3 clrf PORTB bsf PORTD,3 bcf PORTD,3 bcf PORTD,2 movf dig1,W movwf PORTB bsf PORTD,2 bcf PORTD,2 bcf PORTD,1 movf dig0,W movwf PORTB bsf PORTD,1 bcf PORTD,1 bcf PORTD,0 clrf PORTB bsf PORTD,0 bcf PORTD,0 movlw 0xFF movwf cnt goto dly step_3 movf num,W lp_3dig movwf temp movlw 0x0A subwf temp,W incf cnt,F btfsc STATUS,C goto lp_3dig goto _3dig _3dig movf temp,W movwf dig0 _3_dig_2 movf cnt,W lp_3dig_2 movwf temp movlw 0x0A subwf temp,W incf cnt,F btfsc STATUS,C goto lp_3dig_2 goto bcd_3dig_dp bcd_3dig_dp movf temp,W movwf dig1 movf cnt,W movwf dig0 bcf PORTD,3 movf dig2,W movwf PORTB bsf PORTD,3 bcf PORTD,3 bcf PORTD,2 movf dig1,W movwf PORTB bsf PORTD,2 bcf PORTD,2 bcf PORTD,1 movf dig0,W movwf PORTB bsf PORTD,1 bcf PORTD,1 movlw 0xFF movwf cnt goto dly lkup addwf PCL,F retlw d'00' ;0 retlw d'00' ;1 retlw d'01' ;2 retlw d'01' ;3 retlw d'02' ;4 retlw d'02' ;5 retlw d'02' ;6 retlw d'03' ;7 retlw d'03' ;8 retlw d'04' ;9 retlw d'04' ;10 retlw d'04' ;11 retlw d'05' ;12 retlw d'05' ;13 retlw d'06' ;14 retlw d'06' ;15 retlw d'06' ;16 retlw d'07' ;17 retlw d'07' ;18 retlw d'08' ;19 retlw d'08' ;20 retlw d'08' ;21 retlw d'09' ;22 retlw d'09' ;23 retlw d'10' ;24 retlw d'10' ;25 retlw d'10' ;26 retlw d'10' ;27 retlw d'11' ;28 retlw d'11' ;29 retlw d'12' ;30 retlw d'12' ;31 retlw d'12' ;32 retlw d'13' ;33 retlw d'13' ;34 retlw d'14' ;35 retlw d'14' ;36 retlw d'14' ;37 retlw d'15' ;38 retlw d'15' ;39 retlw d'16' ;40 retlw d'16' ;41 retlw d'16' ;42 retlw d'17' ;43 retlw d'17' ;44 retlw d'18' ;45 retlw d'18' ;46 retlw d'18' ;47 retlw d'19' ;48 retlw d'19' ;49 retlw d'20' ;50 retlw d'20' ;51 retlw d'20' ;52 retlw d'21' ;53 retlw d'21' ;54 retlw d'22' ;55 retlw d'22' ;56 retlw d'22' ;57 retlw d'23' ;58 retlw d'23' ;59 retlw d'24' ;60 retlw d'24' ;61 retlw d'24' ;62 retlw d'25' ;63 retlw d'25' ;64 retlw d'26' ;65 retlw d'26' ;66 retlw d'26' ;67 retlw d'27' ;68 retlw d'27' ;69 retlw d'28' ;70 retlw d'28' ;71 retlw d'28' ;72 retlw d'29' ;73 retlw d'29' ;74 retlw d'30' ;75 retlw d'30' ;76 retlw d'30' ;77 retlw d'30' ;78 retlw d'31' ;79 retlw d'31' ;80 retlw d'32' ;81 retlw d'32' ;82 retlw d'32' ;83 retlw d'33' ;84 retlw d'33' ;85 retlw d'34' ;86 retlw d'34' ;87 retlw d'34' ;88 retlw d'35' ;89 retlw d'35' ;90 retlw d'36' ;91 retlw d'36' ;92 retlw d'36' ;93 retlw d'37' ;94 retlw d'37' ;95 retlw d'38' ;96 retlw d'38' ;97 retlw d'38' ;98 retlw d'39' ;99 retlw d'39' ;100 retlw d'40' ;101 retlw d'40' ;102 retlw d'40' ;103 retlw d'41' ;104 retlw d'41' ;105 retlw d'42' ;106 retlw d'42' ;107 retlw d'42' ;108 retlw d'43' ;109 retlw d'43' ;110 retlw d'44' ;111 retlw d'44' ;112 retlw d'44' ;113 retlw d'45' ;114 retlw d'45' ;115 retlw d'46' ;116 retlw d'46' ;117 retlw d'46' ;118 retlw d'47' ;119 retlw d'47' ;120 retlw d'48' ;121 retlw d'48' ;122 retlw d'48' ;123 retlw d'49' ;124 retlw d'49' ;125 retlw d'50' ;126 retlw d'50' ;127 retlw d'50' ;128 retlw d'50' ;129 retlw d'51' ;130 retlw d'51' ;131 retlw d'52' ;132 retlw d'52' ;133 retlw d'52' ;134 retlw d'53' ;135 retlw d'53' ;136 retlw d'54' ;137 retlw d'54' ;138 retlw d'54' ;139 retlw d'55' ;140 retlw d'55' ;141 retlw d'56' ;142 retlw d'56' ;143 retlw d'56' ;144 retlw d'57' ;145 retlw d'57' ;146 retlw d'58' ;147 retlw d'58' ;148 retlw d'58' ;149 retlw d'59' ;150 retlw d'59' ;151 retlw d'60' ;152 retlw d'60' ;153 retlw d'60' ;154 retlw d'61' ;155 retlw d'61' ;156 retlw d'62' ;157 retlw d'62' ;158 retlw d'62' ;159 retlw d'63' ;160 retlw d'63' ;161 retlw d'64' ;162 retlw d'64' ;163 retlw d'64' ;164 retlw d'65' ;165 retlw d'65' ;166 retlw d'66' ;167 retlw d'66' ;168 retlw d'66' ;169 retlw d'67' ;170 retlw d'67' ;171 retlw d'68' ;172 retlw d'68' ;173 retlw d'68' ;174 retlw d'69' ;175 retlw d'69' ;176 retlw d'70' ;177 retlw d'70' ;178 retlw d'70' ;179 retlw d'70' ;180 retlw d'71' ;181 retlw d'71' ;182 retlw d'72' ;183 retlw d'72' ;184 retlw d'72' ;185 retlw d'73' ;186 retlw d'73' ;187 retlw d'74' ;188 retlw d'74' ;189 retlw d'74' ;190 retlw d'75' ;191 retlw d'75' ;192 retlw d'76' ;193 retlw d'76' ;194 retlw d'76' ;195 retlw d'77' ;196 retlw d'77' ;197 retlw d'78' ;198 retlw d'78' ;199 retlw d'78' ;200 retlw d'79' ;201 retlw d'79' ;202 retlw d'80' ;203 retlw d'80' ;204 retlw d'80' ;205 retlw d'81' ;206 retlw d'81' ;207 retlw d'82' ;208 retlw d'82' ;209 retlw d'82' ;210 retlw d'83' ;211 retlw d'83' ;212 retlw d'84' ;213 retlw d'84' ;214 retlw d'84' ;215 retlw d'85' ;216 retlw d'85' ;217 retlw d'86' ;218 retlw d'86' ;219 retlw d'86' ;220 retlw d'87' ;221 retlw d'87' ;222 retlw d'88' ;223 retlw d'88' ;224 retlw d'88' ;225 retlw d'89' ;226 retlw d'89' ;227 retlw d'90' ;228 retlw d'90' ;229 retlw d'90' ;230 retlw d'90' ;231 retlw d'91' ;232 retlw d'91' ;233 retlw d'92' ;234 retlw d'92' ;235 retlw d'92' ;236 retlw d'93' ;237 retlw d'93' ;238 retlw d'94' ;239 retlw d'94' ;240 retlw d'94' ;241 retlw d'95' ;242 retlw d'96' ;243 retlw d'96' ;244 retlw d'96' ;245 retlw d'96' ;246 retlw d'97' ;247 retlw d'97' ;248 retlw d'98' ;249 retlw d'98' ;250 retlw d'98' ;251 retlw d'99' ;252 retlw d'99' ;253 retlw d'100' ;254 retlw d'100' ;255 config_AD banksel ADCON1 bcf ADCON1,3 bcf ADCON1,2 bcf ADCON1,1 bcf ADCON1,7 bcf ADCON1,6 banksel ADCON0 bcf ADCON0,5 bcf ADCON0,4 bcf ADCON0,3 bcf ADCON0,7 bsf ADCON0,6 bsf ADCON0,0 return delay_acq movlw 0x06 movwf count loop decfsz count,F goto loop return end |
|
相关推荐
2个回答
|
|
我没有看细节,但是如果你给PCL添加一些东西,它可能会溢出。例如,如果当前PC为0x0c0,并且添加0x50,则PC应该变成0x110。PCH应该从0变为1,但是,“AdWWF”命令不影响PCH,而取而代之的是0x010。
以上来自于百度翻译 以下为原文 I didn't look at the details, but if you add something to PCL, it may overflow. For example, if current PC is 0x0c0 and you add 0x50, the PC should become 0x110. PCH should change from 0 to 1. However, the "addwf" command doesn't affect PCH and you get 0x010 instead. |
|
|
|
此外,PACESEL可能需要从更改PCH的调用返回,否则下一个调用/ GOTO将不起作用。
以上来自于百度翻译 以下为原文 Also, a PAGESEL maybe needed after returning from a CALL that changes PCH, or next CALL's / GOTO's will not work. |
|
|
|
只有小组成员才能发言,加入小组>>
5248 浏览 9 评论
2036 浏览 8 评论
1956 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3217 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2264 浏览 5 评论
781浏览 1评论
676浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
602浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
684浏览 0评论
581浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 12:43 , Processed in 1.308889 second(s), Total 80, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号