1、设计原理:
NTC热敏电阻为3990K,当温度25摄氏度时对应的阻值为100K。NTC热敏电阻的特性是随着温度升高阻值降低。当温度变化时阻值跟着变化,电压也就跟着变化。S3F9454通过ADC6将检测到的电压值转化为实际的温度值。本例温度检测范围为0~100摄氏度。如需检测其它温度范围可根据实际情况改变电路图中R1的阻值。
2、电路图如下:
3、程序代码如下:
;**************************************************************************
.include "S3C9454.reg"
TEMP_AD_COUNTER EQU 0CH
NTC_TEMP EQU 0FH
NTC_TEMPH EQU 10H
NTC_TEMPL EQU 11H
CODE_DIS EQU 12H ;温度值寄存器
FTS EQU 1EH
TMER EQU 1FH
LED_TEMP3 EQU 2EH
LED_TEMP1 EQU 2FH
LED_TEMP2 EQU 30H
LEDTR1 EQU 31H
LEDTR2 EQU 32H
LEDTR3 EQU 33H
DISP_NUM EQU 34H
TEMP_CHANNEL EQU 67H ;温度检测通道 ADC6
;****************************************************
ORG 0000H
VECTOR 00H, INT_SUB
;****************************************************
INT_SUB:
TM T0CON, #1H
JR NZ, INT_TIMER0
ENDINT: IRET
;---------------------------------------------------
INT_TIMER0: ; 125us定时中断
AND T0CON, #11110110B
INC TMER
CP TMER, #16
JR ULT, ENDTIMER0
CLR TMER
LD FTS, #1H ;2MS
ENDTIMER0:
ENDTINT:
IRET
;******************************************************
ORG 003CH
DB 00H
DB 00H
DB 0C8H ; ENABLE LVR (3.0V)
DB 03H ; INTERNAL RC 3.2MHz
;******************************************************
ORG 0100H
RESET:
DI
LD SP, #0C0H ;指针地址
LD CLKCON, #00011000B
LD BTCON, #10100011B
LD SYM, #0
IO_INI:
LD P0, #00H
LD P1, #00H
LD P2, #00H
LD P0CONH, #11111110B
LD P0CONL, #10101010B
LD P0PND, #00000000B
LD P1CON, #00001010B
LD P2CONH, #01001010B
LD P2CONL, #10101010B
LD P0, #00H
LD P1, #00H
LD P2, #0FFH
LD P0PND, #0H