Автор работы: Пользователь скрыл имя, 19 Апреля 2011 в 10:18, курсовая работа
Разрешить проблему сочетания точности и быстродействия позволили цифровые приборы. Цифровыми измерительными приборами называются приборы, осуществляющие автоматически в процессе измерения операции квантования измеряемой величины, ее цифровое кодирование и представление результатов измерения в цифровой форме непосредственно в виде числа или кода.
Введение……………………………... .…………………………………….... 4
1 Обзор аналогичных устройств........................................................................ 6
2 Обоснование выбранного варианта технического решения……………… 10
3 Разработка принципиальной схемы устройства…………………………… 12
4 Разработка алгоритма и программы функционирования устройства……. 19
5 Результаты эмуляции программы в пакете Proteus 7 professional…........... 26
6 Анализ временных соотношений и оценка погрешностей………...... 28
Выводы…………………………………………………………………………. 31
Литература…………………………………………………...............................
ORG 4 ; start at location 0
goto main ; jump over to main routine
ClearVar
clrf LED1
clrf LED2
clrf LED3
clrf LED4
clrf LED5
clrf NumH
clrf NumL
clrf Tens
clrf Ones
clrf Thou
clrf TenK
clrf Hund
clrf SelFr
return
;--------------------------
; Инициализация портов и таймера 1
;--------------------------
init:
clrf PORTA
movlw 0x07
movwf CMCON
bsf STATUS,RP0
movlw 0x00 ;порт А все выходы
movwf TRISA
movlw 0x40 ;порт В все выходы
movwf TRISB
bcf STATUS,RP0
clrf PORTA
clrf PORTB
movlw B'00000110'
movwf T1CON
bcf T1CON,0
return
;--------------------------
;
Инициализация LCD
;--------------------------
initlcd:
movlw D'40'
call nmsec ; Wait 40 msecs before Reset
bcf RS ; send an 8 bit instruction
movlw 0x03 ; Reset Command
call NybbleOut ; Send the Nybble
call Dlay5 ; Wait 5 msecs before Sending Again
EStrobe
call Dlay160 ; Wait 160 usecs before Sending 2nd Time
EStrobe
call Dlay160 ; Wait 160 usecs before Sending 3rd Time
bcf RS ; send an 8 bit instruction
movlw 0x02 ; Set 4 Bit Mode
call NybbleOut
call Dlay160
movlw 0x028 ; 4 bit, 2 Line, 5x7 font
call SendINS
movlw 0x010 ; display shift off
call SendINS
movlw 0x001 ; Clear the Display RAM
call SendINS
call Dlay5 ; Note, Can take up to 4.1 msecs
return
;--------------------------
; установка свойств LCD ;
;--------------------------
SendASCII
movwf Temp ; Save the Temporary Value
swapf Temp, w ; Send the High Nybble
bsf RS ; RS = 1
call NybbleOut
movf Temp, w ; Send the Low Nybble
bsf RS
call NybbleOut
return
;--------------------------
; передача инструкций на LCD ;
;--------------------------
SendINS ; Send the Instruction to the LCD
movwf Temp ; Save the Temporary Value
swapf Temp, w ; Send the High Nybble
bcf RS ; RS = 0
call NybbleOut
movf Temp, w ; Send the Low Nybble
bcf RS
call NybbleOut
return
NybbleOut
andlw B'00001111'
movwf
PORTB
EStrobe ; Strobe out the LCD Data
call Dlay160 ; delay for 160 usec
return
;--------------------------
;
Задержка 200uS
;--------------------------
Delay200
movlw D'100'
movwf Temp2
decfsz Temp2,1
goto $-1
return
;--------------------------
;
;--------------------------
Line1
movlw 0x080
call SendINS
movlw 0x00C
call SendINS
return
Line2
movlw " "
call SendASCII
movlw " "
call SendASCII
movlw " "
call SendASCII
movlw " "
call SendASCII
movlw " "
call SendASCII
movlw " "
call SendASCII
movlw " "
call SendASCII
movlw " "
call SendASCII
movlw 0x0C0
call SendINS
movlw 0x00C
call SendINS
return
;--------------------------
; Вывод на LCD freq xxxxx Hz ;
;--------------------------
FreqHz
movf LED1,0
addlw "0"
call SendASCII
movf LED2,0
addlw "0"
call SendASCII
movf LED3,0
addlw "0"
call SendASCII
call Line2
movf LED4,0
addlw "0"
call SendASCII
movf LED5,0
addlw "0"
call SendASCII
movlw " "
call SendASCII
movlw " "
call SendASCII
movlw "H"
call SendASCII
movlw "z"
call SendASCII
movlw " "
call SendASCII
return
;--------------------------
; Конвертация битов в десятичный код ;
;--------------------------
Convert
movf NumH,0
swapf NumH,w
andlw 0x0F
addlw 0xF0
movwf Thou
addwf Thou,f
addlw 0xE2
movwf Hund
addlw 0x32
movwf Ones
movf NumH,w
andlw 0x0F
addwf Hund,f
addwf Hund,f
addwf Ones,f
addlw 0xE9
movwf Tens
addwf Tens,f
addwf Tens,f
swapf NumL,w
andlw 0x0F
addwf Tens,f
addwf Ones,f
rlf Tens,f
rlf Ones,f
comf Ones,f
rlf Ones,f
movf NumL,w
andlw 0x0F
addwf Ones,f
rlf Thou,f
movlw 0x07
movwf TenK
movlw 0A
Lb1:
addwf Ones,f
decf Tens,f
btfss 3,0
goto Lb1
Lb2:
addwf Tens,f
decf Hund,f
btfss 3,0
goto Lb2
Lb3:
addwf Hund,f
decf Thou,f
btfss 3,0
goto Lb3
Lb4:
addwf Thou,f
decf TenK,f
btfss 3,0
goto Lb4
retlw
00
;--------------------------
; Передача данных на выводы D4-D7 LCD ;
;--------------------------
OutFrDis
movf FrHig,0
movwf NumH
movf FrLow,0
movwf NumL
call Convert
movf TenK,0
Информация о работе Разработка измерителя частот для сетей переменного тока