[PIC®/AVR®/dsPIC®产品] 请教这段汇编的意思用的是PIC16F630

[复制链接]
2639|9
 楼主| JLennon 发表于 2017-10-18 09:59 | 显示全部楼层 |阅读模式
本帖最后由 JLennon 于 2017-10-18 10:54 编辑

MOVLW 0xF               
BSF 0x3, 0x5    ;BSF     STATUS    , RP0 ;选择bank1
MOVWF 0x1      ; 0x01是bank0的地址啊?还是说要从bank1的80H开始加上0x01?     
MOVLW 0x10               
MOVWF 0x15     ;0x15是bank0的地址啊?还是说要从bank1的80H开始加上0x15?
MOVLW 0x33               
MOVWF 0x5        ;这句也是同样疑问        
MOVLW 0x1               
MOVWF 0x7         ;这句也是同样疑问      
BSF 0x16, 0x4       ;0x16是bank0的地址,但是在16F630里是不可用地址     
BCF 0x3, 0x5            
CALL 0x3FF               
BSF 0x3, 0x5            
MOVWF 0x10               
MOVLW 0x7               
BCF 0x3, 0x5            
MOVWF 0x19               
CLRF 0x5                 
CLRF 0x7                 
RETURN   
Latin_newday 发表于 2017-10-18 10:05 | 显示全部楼层
什么功能要看这个调用函数CALL 0x3ff吧
Latin_newday 发表于 2017-10-18 10:15 | 显示全部楼层
CALL 0x3ff貌似是内部振荡器校准用的,芯片出厂时有一个内部振荡器校准值存在此处,之前用676不知道记错了没
 楼主| JLennon 发表于 2017-10-18 10:58 | 显示全部楼层
Latin_newday 发表于 2017-10-18 10:15
CALL 0x3ff貌似是内部振荡器校准用的,芯片出厂时有一个内部振荡器校准值存在此处,之前用676不知道记错了 ...

内部振荡器校准值是保存在此处,不过我的疑问不是这个,谢谢。
Latin_newday 发表于 2017-10-18 11:33 | 显示全部楼层
MOVLW 0xF               
BSF 0x3, 0x5    ;BSF     STATUS    , RP0 ;选择bank1
MOVWF 0x1      ; 0x01是bank0的地址啊?还是说要从bank1的80H开始加上0x01?

这个是要对应bank操作的,仿真查下是TMRO还是OPTION_REG相应改变。
 楼主| JLennon 发表于 2017-10-18 11:38 | 显示全部楼层
Latin_newday 发表于 2017-10-18 11:33
MOVLW 0xF               
BSF 0x3, 0x5    ;BSF     STATUS    , RP0 ;选择bank1
MOVWF 0x1      ; 0x ...

那就是说bank1的话,就是0x81对吧?
Latin_newday 发表于 2017-10-18 11:52 | 显示全部楼层
JLennon 发表于 2017-10-18 11:38
那就是说bank1的话,就是0x81对吧?

刚仿真看了下,确实是这样。
不过我们写代码的时候,一般都是直接用banksel切换bank。
 楼主| JLennon 发表于 2017-10-18 13:57 | 显示全部楼层
Latin_newday 发表于 2017-10-18 11:52
刚仿真看了下,确实是这样。
不过我们写代码的时候,一般都是直接用banksel切换bank。 ...

谢谢指教。
fengrenjie 发表于 2017-10-18 16:29 | 显示全部楼层
bank1 确实要加 80H
您需要登录后才可以回帖 登录 | 注册

本版积分规则

147

主题

695

帖子

8

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