⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 new61.asm

📁 使用单片机开发数据采集卡
💻 ASM
字号:
ORG 0000H
LJMP MAIN
ORG 0013H
LJMP LJBY
ORG 0050H
SCLK EQU P1.2
DATOUT EQU P1.3
DATIN EQU P1.4
DRDY EQU P1.5
RESETP EQU P1.6

MAIN:

LCALL INIT7705   ;AD7705初始化
LCALL INIT_COM   ;串口初始化
MOV IE ,#84H     ;中断初始化
SJMP $

INIT7705:       ;AD7705初始化
CLR RESETP
MOV R7,#15
DJNZ R7,$
SETB RESETP    ;复位7705
MOV A,#20H       ;选择设置寄存器
LCALL WRITE7705
;MOV A,#0CH ; 50hz ,FCLK=4.9152    ;
MOV A,#0EH ;    0E 250HZ,0F 500hz
LCALL WRITE7705
MOV A,#10H       ;选择设置寄存器
LCALL WRITE7705
MOV A,#40H       ;自校正模式,增益1,双极模式
LCALL WRITE7705
RET

WRITE7705:
CLR SCLK
MOV R7,#7
W7705_1:

RLC A
MOV DATOUT,C
NOP
SETB SCLK
NOP
NOP   ;DUO JIA JI GE NOP!

CLR SCLK
DJNZ R7,W7705_1
RLC A
MOV DATOUT,C
NOP
SETB SCLK
SETB DATOUT
RET


READ7705:      ;读AD7705子程序
LJOK:  MOV C,DRDY
JC LJOK         ;若CY=1则转移到LJOK,查询DRDY
MOV A,#38H     ;选择ad7705数据寄存器
LCALL WRITE7705
MOV R7,#8      ;读取高字节,设置读取次数
R7705_1:
NOP
NOP
CLR SCLK
NOP
NOP
SETB SCLK
NOP
MOV C,DATIN
RLC A
DJNZ R7,R7705_1 ;循环读8次
MOV 33H,A       ;保存高字节;32H中保存高字节的低四位
ANL 33H,#0FH    ;去掉32H的高四位
;MOV 33H,#42H    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RR A            ;右移四位
RR A
RR A
RR A
MOV 34H,A
ANL 34H,#0FH    ;保存高字节;32H中保存高字节高四位
;MOV 34H,#42H    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV R7,#8       ;读取低字节
R7705_2:
NOP
NOP
CLR SCLK
NOP
NOP
SETB SCLK
NOP
MOV C,DATIN
RLC A
DJNZ R7,R7705_2
MOV 31H,A
ANL 31H,#0FH    ;保存低字节;32H中保存低字节高四位
;MOV 31H,#42H     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RR A
RR A
RR A
RR A
MOV 32H,A
ANL 32H,#0FH
;MOV 32H,#42H   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RET


INIT_COM:       ;串口初始化子程序
MOV SCON,#50H   ;串口方式1,8位有效数据位,无校验
                 ;MOV PCON,#80H      ;SMOD=1
MOV TMOD,#20H   ;选择定时计数器1,工作方式2,自动装载初值
MOV TH1,# 0FDH  ; 0FDH IS 9600[11.0592],0E6H IS  1200 ; 0F9H IS 9600 ;0F3H IS 2400
MOV TL1,# 0FDH  ;                 00H
SETB TR1
RET


RS232:            ;串口通信子程序
MOV 35H,#41H      ;A ---- 41h
MOV R0,#35H       ;帧头输入 ;数据发送低字节低四位在前-->高字节高四位
MOV R5,#5         ;上位机程序中先判断帧头
LOOP:
MOV A,@R0
MOV SBUF,A
WAIT:
JBC TI,CONT
SJMP WAIT
CONT:
DEC R0
DJNZ R5,LOOP
RET



LJBY:          ;中断服务程序
PUSH PSW
PUSH ACC
LCALL READ7705
LCALL RS232
POP ACC
POP PSW
RETI
END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -