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

📄 wrwd4.asm

📁 mcp3421的应用。用于温度采样。温度传感器采用PT100.
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;与MCP3421通讯
;MCP3421的代码为1101
;MCP3421的地址为000-111
;第0位为0,是写,1是读
;***
;启动转换到稳定的送出数据
;18位:230ms
;16位:60ms
;14位:15ms
;12位:4ms
;***
;思路:先用100欧姆精密电阻测出3421的数据,作为基准.
;     然后算出被测温度探头的电阻值,查表计算出温度值
;     被测温度探头的电阻值=100*Y/X
;     Y是被测温度探头的3421数据  X是100欧姆精密电阻测出3421的数据	



#INCLUDE "D:\PROGRAM FILES\MPLAB\P16c77.INC"; 
   __CONFIG _BODEN_OFF  & _CP_ALL  & _PWRTE_OFF  & _WDT_OFF  & _XT_OSC

	CBLOCK	20H
	CNT,COUNT,COUNT1,COUNT2
;读3421过渡寄存器
	ADC_V1,ADC_V2,ADC_V3
;100欧姆的3421值	
	ADC_BZ1,ADC_BZ2,ADC_BZ3
;AD过渡寄存器	
	ADC_GD0,ADC_GD1,ADC_GD2,ADC_GD3	
;查表寄存器	
	TAB,NUMBH,NUMBL,DZZH,DZZL
	DZCZH,DZCZL,TEMPGD
;与3421或24C02通讯用的寄存器	
	FLAG,TXBUF,RXBUF,COUNT3,ADDRL
;乘除用的寄存器
	ACCAH,ACCAL,ACCBH,ACCBL,ACCCH,ACCCL,ACCDH,ACCDL,ACCEH,ACCEL,TEMPCC
;SZBZ为标志位寄存器
;SMGZ为送数码管寄存器	
	SZBZ,SMGZ
;BIN2BCD寄存器	
	DDH,DDL,DBH,DBM,DBL,TEMP
;电阻值	
	BCDZH,BCDZL
;0.5时基寄存器		
	CNTS,CNTYS

	ENDC

	
;#DEFINE	SDA_DIR	PORTC,4
;#DEFINE	SCL_DIR	PORTC,3	

#DEFINE	SDA	PORTA,3
#DEFINE	SCL	PORTA,2
#DEFINE	XA	PORTA,1
#DEFINE	XB	PORTA,0	

#DEFINE	SB1	PORTA,4
#DEFINE	SB2	PORTA,5

#DEFINE	HS4	PORTC,3;最高位数码管总线
#DEFINE	HS3	PORTC,2;第三位数码管总线
#DEFINE	HS2	PORTC,1;第二位数码管总线
#DEFINE	HS1	PORTC,0;最低位数码管总线

;==
#DEFINE	SB1BZ	SZBZ,0
#DEFINE	WDFZ	SZBZ,1;温度负值
#DEFINE	CWBZ	SZBZ,2;出错标志
#DEFINE	BZZC	SZBZ,3;100欧姆的参数值错误
#DEFINE	SB2BZ	SZBZ,4;按SB2切换显示温度
#DEFINE	SB2G	SZBZ,5;SB2高
#DEFINE	XSDZ	SZBZ,6;显示电阻值
#DEFINE	MYS	SZBZ,7;秒标志
;================
;-----------------------------
	ORG	0
	GOTO	 MAIN
;-----------------------------
;电阻值表格
WTAB	MOVLW	HIGH(DZZBZ_0)
	MOVWF	PCLATH
	MOVF	TAB,W
	ADDLW	LOW(DZZBZ_0)
	SKPNC
	INCF	PCLATH,F
	MOVWF	PCL
DZZBZ_0

;	RETLW	7	;-200	1
;	RETLW	3C
	
;	RETLW	8	;-190	2
;	RETLW	0EB
	
;	RETLW	0A	;-180	3
;	RETLW	96
	
;	RETLW	0C	;-170	4
;	RETLW	3E
	
;	RETLW	0D	;-160	5
;	RETLW	0E2
	
;	RETLW	0F	;-150	6
;	RETLW	84
	
;	RETLW	11	;-140	7
;	RETLW	24
	
;	RETLW	12	;-130	8
;	RETLW	0C0
	
;	RETLW	14	;-120	9
;	RETLW	5B
	
;	RETLW	15	;-110	10
;	RETLW	0F3
	
	RETLW	17	;-100	1
	RETLW	8A
	
	RETLW	19	;-90	2
	RETLW	1E
	
	RETLW	1A	;-80	3
	RETLW	0B1
	
	RETLW	1C	;-70	4
	RETLW	41
	
	RETLW	1D	;-60	5
	RETLW	0D1
	
	RETLW	1F	;-50	6
	RETLW	5F
	
	RETLW	20	;-40	7
	RETLW	0EB
	
	RETLW	22	;-30	8
	RETLW	76
	
	RETLW	24	;-20	9
	RETLW	00
	
	RETLW	25	;-10	10
	RETLW	89
	
	RETLW	27	;0	11
	RETLW	10
	
	RETLW	28	;10	12
	RETLW	96
	
	RETLW	2A	;20	13
	RETLW	1B
	
	RETLW	2B	;30	14
	RETLW	9F
	
	RETLW	2D	;40	15
	RETLW	22
	
	RETLW	2E	;50	16
	RETLW	0A4
	
	RETLW	30	;60	17	
	RETLW	24
	
	RETLW	31	;70	18
	RETLW	0A4
	
	RETLW	33	;80	19
	RETLW	22
	
	RETLW	34	;90	20
	RETLW	9F
	
	RETLW	36	;100	21
	RETLW	1B
	
	RETLW	37	;110	22
	RETLW	95
	
	RETLW	39	;120	23
	RETLW	0F
	
	RETLW	3A	;130	24
	RETLW	87
	
	RETLW	3B	;140	25
	RETLW	0FE
	
	RETLW	3D	;150	26
	RETLW	75
	
	RETLW	3E	;160	27
	RETLW	0E9
	
	RETLW	40	;170	28
	RETLW	5D
	
	RETLW	41	;180	29
	RETLW	0D0
	
	RETLW	43	;190	30	
	RETLW	41
	
	RETLW	44	;200	31
	RETLW	0B2
	
	RETLW	46	;210	32
	RETLW	21
	
	RETLW	47	;220	33
	RETLW	8F


	RETLW	48	;230	34
	RETLW	0FC
	
	RETLW	4A	;240	35
	RETLW	67
	
	RETLW	4B	;250	36
	RETLW	0D2
	
	RETLW	4D	;260	37
	RETLW	3B
	
	RETLW	4E	;270	38
	RETLW	0A3
	
	RETLW	50	;280	39
	RETLW	0A
	
	RETLW	51	;290	40
	RETLW	70
	
	RETLW	52	;300	41
	RETLW	0D5
	
	RETLW	54	;310	42
	RETLW	39
	
	RETLW	55	;320	43
	RETLW	9B
	
	RETLW	56	;330	44
	RETLW	0FC
	
	RETLW	58	;340	45
	RETLW	5D
	
	RETLW	59	;350	46
	RETLW	0BC
	
	RETLW	5B	;360	47
	RETLW	19
	
	RETLW	5C	;370	48
	RETLW	76
	
	RETLW	5D	;380	49
	RETLW	0D2
	
	RETLW	5F	;390	50
	RETLW	2C
	
	RETLW	60	;400	51
	RETLW	85
	
	RETLW	61	;410	52
	RETLW	0DD
	
	RETLW	63	;420	53
	RETLW	34
	
	RETLW	64	;430	54
	RETLW	8A
	
	RETLW	65	;440	55
	RETLW	0DD
	
	RETLW	67	;450	56
	RETLW	32
	
	RETLW	68	;460	57
	RETLW	84
	
	RETLW	69	;470	58
	RETLW	0D5
	
	RETLW	6B	;480	59
	RETLW	25
	
	RETLW	6C	;490	60
	RETLW	74
	
	RETLW	6D	;500	61
	RETLW	0C2
	
	RETLW	6F	;510	62
	RETLW	0E
	
	RETLW	70	;520	63
	RETLW	5A
	
	RETLW	71	;530	64
	RETLW	0A4
	
	RETLW	72	;540	65
	RETLW	0EC
	
	RETLW	74	;550	66
	RETLW	35
	
	RETLW	75	;560	67
	RETLW	7B
	
	RETLW	76	;570	68
	RETLW	0C1
	
	RETLW	78	;580	69
	RETLW	05
	
	RETLW	79	;590	70	
	RETLW	49
	
	RETLW	7A	;600	71
	RETLW	8A
	
	RETLW	7B	;610	72
	RETLW	0CC
	
	RETLW	7D	;620	73
	RETLW	0C
	
	RETLW	7E	;630	74
	RETLW	4A
	
	RETLW	7F	;640	75
	RETLW	88
	
	RETLW	80	;650	76
	RETLW	0C4
;----------------------------------
KTAB
	MOVLW	HIGH(XSBZ_0)
	MOVWF	PCLATH
	MOVF	TAB,W
	ADDLW	LOW(XSBZ_0)
	SKPNC
	INCF	PCLATH,F
	MOVWF	PCL
XSBZ_0


;	RETLW	1	;1
;	RETLW	0AF

;	RETLW	1	;2
;	RETLW	0AB

;	RETLW	1	;3
;	RETLW	0A8

;	RETLW	1	;4
;	RETLW	0A4

;	RETLW	1	;5
;	RETLW	0A2

;	RETLW	1	;6
;	RETLW	0A0

;	RETLW	1	;7
;	RETLW	09C

;	RETLW	1	;8
;	RETLW	09B

;	RETLW	1	;9
;	RETLW	098

;	RETLW	1	;10
;	RETLW	097

	RETLW	1	;11
	RETLW	93

	RETLW	1	;12
	RETLW	92

	RETLW	1	;13
	RETLW	91

	RETLW	1	;14
	RETLW	90

	RETLW	1	;15
	RETLW	8E

	RETLW	1	;16
	RETLW	8C

	RETLW	1	;17
	RETLW	8B

	RETLW	1	;18
	RETLW	8A

	RETLW	1	;19
	RETLW	89

	RETLW	1	;20
	RETLW	87

	RETLW	1	;21
	RETLW	86

	RETLW	1	;22
	RETLW	85

	RETLW	1	;23
	RETLW	84

	RETLW	1	;24
	RETLW	83

	RETLW	1	;25
	RETLW	82

	RETLW	1	;26
	RETLW	80

	RETLW	1	;27
	RETLW	7F

	RETLW	1	;28
	RETLW	7E

	RETLW	1	;29
	RETLW	7D

	RETLW	1	;30
	RETLW	7C

	RETLW	1	;31
	RETLW	7B

	RETLW	1	;32
	RETLW	7A

	RETLW	1	;33
	RETLW	78

	RETLW	1	;34
	RETLW	77

	RETLW	1	;35
	RETLW	76

	RETLW	1	;36
	RETLW	75

	RETLW	1	;37
	RETLW	74

	RETLW	1	;38
	RETLW	73

	RETLW	1	;39
	RETLW	71

	RETLW	1	;40
	RETLW	70

	RETLW	1	;41
	RETLW	6F

	RETLW	1	;42
	RETLW	6E



	RETLW	1	;43
	RETLW	6D	

	RETLW	1	;44
	RETLW	6C

	RETLW	1	;45
	RETLW	6B

	RETLW	1	;46
	RETLW	69

	RETLW	1	;47
	RETLW	68

	RETLW	1	;48
	RETLW	67

	RETLW	1	;49
	RETLW	66

	RETLW	1	;50
	RETLW	65

	RETLW	1	;51
	RETLW	64

	RETLW	1	;52
	RETLW	62

	RETLW	1	;53
	RETLW	61

	RETLW	1	;54
	RETLW	60

	RETLW	1	;55
	RETLW	5F

	RETLW	1	;56
	RETLW	5E

	RETLW	1	;57
	RETLW	5D

	RETLW	1	;58
	RETLW	5C

	RETLW	1	;59
	RETLW	5A

	RETLW	1	;60
	RETLW	59

	RETLW	1	;61
	RETLW	58

	RETLW	1	;62
	RETLW	57

	RETLW	1	;63
	RETLW	56

	RETLW	1	;64
	RETLW	54

	RETLW	1	;65
	RETLW	53

	RETLW	1	;66
	RETLW	52

	RETLW	1	;67
	RETLW	51

	RETLW	1	;68
	RETLW	50

	RETLW	1	;69
	RETLW	4F

	RETLW	1	;70
	RETLW	4E

	RETLW	1	;71
	RETLW	4D

	RETLW	1	;72
	RETLW	4C

	RETLW	1	;73
	RETLW	4A

	RETLW	1	;74
	RETLW	49

	RETLW	1	;75
	RETLW	48

	RETLW	1	;76
	RETLW	46

	RETLW	1	;77
	RETLW	46

	RETLW	1	;78
	RETLW	44

	RETLW	1	;79
	RETLW	43

	RETLW	1	;80
	RETLW	42

	RETLW	1	;81
	RETLW	41

	RETLW	1	;82
	RETLW	40

	RETLW	1	;83
	RETLW	3F

	RETLW	1	;84
	RETLW	3E

	RETLW	1	;85
	RETLW	3C
	
;---------------------------------		
TX
	PAGESEL	TX

	MOVLW	8
	MOVWF	COUNT3
TXLP
	BCF	FLAG,0
	BTFSC	TXBUF,7
	BSF	FLAG,0
	BSF	3,5
;	BCF	SDA
	BCF	SCL
	BCF	3,5
	BTFSS	FLAG,0
	GOTO	TX0
	BSF	3,5	
	BSF	SDA
	BCF	3,5
	GOTO	TX1
TX0

	BCF	SDA
	BSF	3,5
	BCF	SDA
	BCF	3,5	
TX1	CLRWDT
	BSF	3,5
	BSF	SCL
	BCF	3,5
	BCF	SCL
	BSF	3,5
	BCF	SCL
	BCF	3,5
	NOP
	NOP
	RLF	TXBUF,1
	DECFSZ	COUNT3,1
	GOTO	TXLP
	BSF	3,5
	BSF	SDA
	BCF	3,5

	NOP
	BCF	FLAG,1
	BSF	3,5
	BSF	SCL
	BCF	3,5
B2	BTFSC	SDA
	GOTO	B1
	BCF	SCL
	BSF	3,5
	BCF	SCL
	BCF	3,5
	RETLW	0
B1	BSF	FLAG,1
	RETURN
;-----------------------------
BSTOP	BSF	3,5
	BCF	3,6
	BCF	SDA
	BCF	SCL
	BCF	3,5
	BCF	SCL
	BCF	SDA
	NOP
	BSF	3,5
	BSF	SCL
	NOP
	BSF	SDA
	
	NOP
	BCF	SCL	
	BSF	3,5
	BCF	SCL
	BCF	3,5
	
	RETLW	0
;-----------------------------
RX
	PAGESEL	RX
	MOVLW	8
	MOVWF	COUNT3
	CLRF	RXBUF
	BSF	3,5
	BSF	SDA
RXLP
	BSF	3,5
	BCF	3,6
	BSF	SCL
	BCF	3,5
	BCF	3,0
	RLF	RXBUF,1
	BTFSC	SDA
	BSF	RXBUF,0
	BCF	SCL
	BSF	3,5
	BCF	SCL
	BCF	3,5
	DECFSZ	COUNT3,1
	GOTO	RXLP
	RETLW	0
;----------------------------
BSTART
	BSF	3,5
	BCF	3,6
	BSF	SDA
	BSF	SCL
	BCF	3,5
	BSF	SDA
	BSF	SCL
	NOP
	BSF	3,5
	BCF	SDA
	NOP
	BCF	SCL
	BCF	3,5
	BCF	SDA
	NOP
	BCF	SCL
	RETLW	0
;----------------------------
WRBYTE_3421
	PAGESEL	WRBYTE_3421
	BCF	3,5
	BCF	3,6
WRLC_3421
	MOVLW	B'11010110';1101为MCP3421代码,011为地址,0为写
	MOVWF	TXBUF
	CALL	BSTART
	CALL	TX
	BTFSC	FLAG,1
	GOTO	WRLC_3421
;	MOVLW	B'10000000

;	CALL	TX
WRLC_3421_1	
	MOVLW	B'10001100';BIT,4为0,单次转换,BIT,7为1,启动单次转换,BIT.3,2为转换位数
	MOVWF	TXBUF

	CALL	TX
	BTFSC	FLAG,1
	GOTO	WRLC_3421
	
;	MOVLW	B'10000000'
;	MOVWF	TXBUF

;	CALL	TX
	
;	MOVLW	B'00010011'
;	MOVWF	TXBUF

;	CALL	TX
;	MOVLW	B'00010011'
;	MOVWF	TXBUF

;	CALL	TX		

	CALL	BSTOP
	RETLW	0
;----------------------------	
WRBYTE_02
	PAGESEL	WRBYTE_02
	BCF	3,5
	BCF	3,6
WRLC02	MOVLW	B'10100000'
	MOVWF	TXBUF
	CALL	BSTART
	CALL	TX
	BTFSC	FLAG,1
	GOTO	WRLC02	
;	MOVF	ADDRH,W
;	MOVWF	TXBUF
;	CALL	TX
;	BTFSC	FLAG,1
;	GOTO	WRLC02		
	MOVF	ADDRL,W
	MOVWF	TXBUF
	CALL	TX
	BTFSC	FLAG,1
	GOTO	WRLC02		
WRLOOP	CLRWDT
	MOVF	0,W
	MOVWF	TXBUF
	CALL	TX
	BTFSC	FLAG,1
	GOTO	WRLC02		
	INCF	4,1
	DECFSZ	COUNT1,1
	GOTO	WRLOOP
	CALL	BSTOP
	RETLW	0
	
	
;----------------------------
RDBYTE_02
	BCF	3,5
	BCF	3,6
	CLRF	FLAG
RDLC02	MOVLW	B'10100000'
	MOVWF	TXBUF
	CALL	BSTART
	CALL	TX
	BTFSC	FLAG,1
	GOTO	RDLC02	
;	MOVF	ADDRH,W
;	MOVWF	TXBUF
;	CALL	TX
	MOVF	ADDRL,W
	MOVWF	TXBUF
	CALL	TX
	BTFSC	FLAG,1
	GOTO	RDLC02	
	CALL	BSTART
	MOVLW	B'10100001'
	MOVWF	TXBUF
	CALL	TX
	BTFSC	FLAG,1
	GOTO	RDLC02		
	GOTO	RDLOOP
	
	
;--------------------------
RDBYTE_3421
	PAGESEL	RDBYTE_3421
	BCF	3,5
	BCF	3,6
	CLRF	FLAG
RDLC_3421
	MOVLW	B'11010111';1101为MCP3421代码,011为地址,1为读
	MOVWF	TXBUF
	CALL	BSTART
	CALL	TX
	BTFSC	FLAG,1
	GOTO	RDLC_3421
RDLOOP
	CLRWDT
	CALL	RX
	MOVF	RXBUF,W
	MOVWF	0
	INCF	4,1
	DECFSZ	COUNT1,1
	GOTO	LOWACK
	BSF	3,5
	BSF	SDA
	BSF	SCL
	BCF	3,5
;	BSF	SDA
;	BSF	SCL
	NOP
	NOP
	BSF	3,5
	BCF	SCL
	BCF	3,5
	BCF	SCL
	CALL	BSTOP
	RETLW	0
LOWACK
	BSF	3,5
	BCF	SDA
	BCF	SCL
	BCF	3,5
	BCF	SDA
	NOP
	BSF	3,5
	BSF	SCL
	NOP
	BCF	SCL
	BCF	3,5
	BCF	SCL
	GOTO	RDLOOP
;-------------------------

	
;=======
T100MS
	MOVLW	.100
	MOVWF	COUNT1
	GOTO	T1MS_1
;-----------------------------
T200MS

	MOVLW	.70

⌨️ 快捷键说明

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