第一范文网 - 专业文章范例文档资料分享平台

数控电位器与PIC单片机的接口技术

来源:用户分享 时间:2025/11/27 15:25:50 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

3.(03998)《数控电位器与PIC单片机的接口技术》P

程序清单如下:

. STATUS EQU 03H ;PIC16C72内部特殊

C EQU 0 ;功能寄存器及标志位 PORTC EQU 07H TRISC EQU 87H COMMAND EQU 24H ID EQU 25H ; 0 0 0 0 RB RA 0 P0 ADDR_BYTE EQU 26H; 0 1 0 1 A3 A2 A1 A0 DATA_BYTE EQU 27H ; D7D6 D5 D4 D3 D2 D1 D0 PULSES EQU 28H ; D7 D6D5 D4 D3 D2 D1 D0 CASE EQU 29H COUNT EQU 2BH TEMPP EQU 2CH CLOCK MACRO ;时钟

NOP ;LET SDA SET-UP BSF PORTC,6 ;SCL=1 NOP NOP NOP BCF STATUS,C ;0送C BTFSC PORTC,7 ;SDA=0? BSF STATUS,C ;NO,1送C BCF PORTC,6 ;SCL=0 ENDM

SEND_BIT MACRO BCF PORTC, 7 ;0送SDA BTFSC TEMPP, 7 ;TEMPP.7=0? BSF PORTC, 7 ;NO,1送C CLOCK ;时钟 ENDM

START_COND MACRO ;开始条件 BSF PORTC,7 ;SDA=1 BSF PORTC,6 ;SCL=1 NOP NOP NOP NOP

BCF PORTC,7 ;SDA=0

NOP NOP NOP NOP

BCF PORTC,6 ;SCL=0

ENDM

STOP_COND MACRO ;终止条件

BCF PORTC, 7 ;SDA=0 BSF PORTC, 6 ;SCL=1 NOP NOP NOP NOP

BSF PORTC, 7 ;SDA=1 ENDM

ORG 0

GOTO MAIN ;转主程序 INTERPRET: MOVF COMMAND,W; ADDWF 2 FIRST: CALL READ_WCR ;COMMAND ‘0’ RETURN ;读WCR CALL WRITE_WCR;COMMAND’2’ RETURN ;写WCR CALL READ_DR ;COMMAND’4’ RETURN ;读寄存器 CALL WRITE_DR ; COMMAND’6’ RETURN ;写寄存器 CALL XFR_DR ;COMMAND’8’ RETURN ;数据寄存器至WCR(单个) CALL XFR_WCR ; COMMAND’0AH’ RETURN ; WCR至数据寄存器(单个) CALL GXFR_DR ; COMMAND’0CH’ RETURN ;数据寄存器至WCR(全部) CALL GXFR_WCR ; COMMAND’0EH’ RETURN ; WCR至数据寄存器(全部) CALL INC_WIPER ; COMMAND’10H’ RETURN ;增加/减小指定的WCR INSTR_GEN:

START_COND ; 开始条件 MOVF ADDR_BYTE, W ;送地址字节

CALL SEND_BYTE

MOVF ID, W ;送命令字 CALL SEND_BYTE

MOVF CASE, W ;根据CASE值散转 ADDWF 2

GOTO CASE0

GOTO CASE1 GOTO CASE2 GOTO CASE3 GOTO CASE4 GOTO CASE5 READ_WCR:

MOVLW 90H ;高四位为命令与ID组 IORWF ID, 1 ;合成新ID,读WCR CLRF CASE ; CASE=0 CALL INSTR_GEN RETURN WRITE_WCR:

MOVLW 0A0H ;写WCR IORWF ID, 1 MOVLW 1

MOVWF CASE ;CASE=1 CALL INSTR_GEN RETURN

READ_DR: ;读寄存器 MOVLW 0B0H

IORWF ID, 1

MOVLW 0 ;CASE=0 MOVWF CASE

CALL INSTR_GEN RETURN

WRITE_DR: ;写寄存器 MOVLW 0C0H IORWF ID, 1 MOVLW 2

MOVWF CASE CALL INSTR_GEN RETURN XFR_DR: ;传输RB、RA、 P0、指

MOVLW 0D0H ;定的寄存器中的内容至 IORWF ID, 1 ;与之相关的WCR MOVLW 3 MOVWF CASE

CALL INSTR_GEN RETURN

XFR_WCR: ;传输由P0指定的

MOVLW 0E0H ;WCR中的内容至RB、 IORWF ID, 1 ;RA指定的寄存器中 MOVLW 4

MOVWF CASE

CALL INSTR_GEN RETURN GXFR_DR: ;传输由RB、RA指定的所

MOVLW 10H ;有的四个数据寄存器的内 IORWF ID, 1 ;容至与它们相应的WCR中 MOVLW 3

MOVWF CASE

CALL INSTR_GEN RETURN

GXFR_WCR: ;传输所有WCR中的内

MOVLW 80H ;容至与它们相应的由RB, IORWF ID, 1 ;RA指定的数据寄存器中 MOVLW 4

MOVWF CASE

CALL INSTR_GEN RETURN

INC_WIPER: ;使能增加/减小由

MOVLW 20H ;P0指定的WCR IORWF ID, 1 MOVLW 5

MOVWF CASE

CALL INSTR_GEN RETURN

CASE0:CALL GET_BYTE ; 接收一字节

GOTO CASE3

CASE1:MOVF DATA_BYTE, W

CALL SEND_BYTE ;发送数据字节 GOTO CASE3

CASE2:MOVF DATA_BYTE,W

CALL SEND_BYTE CASE4:STOP_COND

CALL POLLING ;轮询 CASE3:STOP_COND

RETURN

CASE5:RRF ID ;取出ID最低位到C上 RRF TEMPP ;C中内容放到TEMPP.7上 WIPER_LOOP:SEND_BIT ;发送TEMPP.7至SDA并

DECFSZ PULSES;产生PULSES个脉冲于SCL GOTO WIPER_LOOP STOP_COND ;停止条件

RETURN

SEN_BYTE: 将TEMPP的内容发送出去

MOVWF TEMPP; MOVLW 8 ; 共发送八位

MOVWF COUNT BIT_LOOP:SEND_BIT NEXT_BIT:RLF TEMPP

DECFSZ COUNT GOTO BIT_LOOP

BSF PORTC, 7 ;八位发送完毕 NOP ;释放SDA NOP NOP CLOCK RETURN GET_BYTE: ;接收一字节,SDA=1

BSF PORTC, 7 MOVLW 8

MOVWF COUNT GET_LOOP:

CLOCK ;SDA送C并在SCL上产生一脉冲 RLF DATA_BYTE ;C移位至DATA_BYTE DECFSZ COUNT GOTO GET_LOOP

BCF TEMPP, 7 ; 发应答位 SEND_BIT RETURN POLLING:

START_COND ;开始条件 MOVF ADDR_BYTE, W ;送地址 AGAIN: CALL SEND_BYTE

BTFSC STATUS,C ;SDA=0?(有应答吗?) GOTO POLLING ;NO RETURN ;YES

MAIN:CALL INI ;初始化子程序

MOVLW B’01010000’ ; 装载从器件地址字节 MOVWF ADDR_BYTE

MOVLW B’00000001’ ;装在识别字节,对 MOVWF ID ;EEPOT #2操作 MOVLW 2 ;写入WCR命令 MOVWF COMMAND

MOVLW B’00101000’;设置

;D7D6D5D4D3D2D1D0

MOVWF DATA_BYTE ;=0 01 0 1 0 0 0 B,即为40 CALL INTERPRET

MOVLW B’00000001’ ;重新装载识别字节

MOVWF ID

MOVLW B’00001111’ ;减少15个脉冲 MOVWF PULSES MOVLW 10H ;增加/减少滑动端 MOVWF COMMAND CALL INTERPRET etc ......

INI:CLRF PORTC ;使C口为输出

BSF STATUS ,5 CLRF TRISC etc ...... END

.

搜索更多关于: 数控电位器与PIC单片机的接口技术 的文档
数控电位器与PIC单片机的接口技术.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4i1vg2t2zp1jxus0hkxz44s0w0d4ij00w51_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top