7세그먼트 LED 응용 프로그램
본 자료는 7페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
해당 자료는 7페이지 까지만 미리보기를 제공합니다.
7페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

본문내용

play in HEX
CALLLCD_COMMAND
DDRAM의 41번지(1010 0001)에 해당하는 둘째 줄 둘째 칸에 A/D변환한 결과를 4자리의 16진수로 표시한다.
MOVAH,BH
MOVAL,BL
CALLLCD_4HEX
LDILCD_BUFFER,0xC9; display in temperature(XX.X)
DDRAM의 49(1010 1001)번지에 해당하는 둘째 줄 아홉 번째 칸에 A/D변환한 결과를 XX.X의 형태로 출력한다.
CALLLCD_COMMAND
LDIAH,high(500); Temp = ADC1*50/512
LDIAL,low(500)
CALLMUL16
AH,AL과 BH,BL의 값을 곱하고 32비트 값의 결과로 저장하게 하기 위한 명령
LDIDH,high(512)
LDIDL,low(512)
CALLDIV16
LDIBL,100
32비트의 BH:BL:AH:AL을 DH:DL로 나누어서 AH:AL 몫, BH:BL 나머지로 설정한다.
CALLDIV8
몫 AH:AL을 BL로 나누어서 몫은 AL, 나머지 AH로 설정
MOVR5,AL; for 7-segment LED
MOVLCD_BUFFER,AL
ORILCD_BUFFER,'0'
CALLLCD_DATA
R5에 컨버젼한 결과의 몫(10^1자리의 수)를 옮겨놓고 LCD에 출력한다.
MOVAL,AH
CLRAH
LDIBL,10
CALLDIV8
연산을 수행한 나머지를 다시 10으로 나누어 몫과 나머지를 분리한다.
MOVR6,AL; for 7-segment LED
MOVLCD_BUFFER,AL
ORILCD_BUFFER,'0'
CALLLCD_DATA
R6에 컨버젼한 결과의 몫(10^0자리의 수)를 옮겨놓고 LCD에 출력한다.
LDILCD_BUFFER,'.'
CALLLCD_DATA
MOVR7,AH; for 7-segment LED
MOVLCD_BUFFER,AH
ORILCD_BUFFER,'0'
CALLLCD_DATA
나머지는 R7에 저장하고 LCD에 표시한다.
A/D 변환의 결과가 0~5V의 입력전압에 대응한다. 대응되는 온도는 A/D 컨버터로 읽어들인 값으로 설정된다.
;------------------------------------------------
;Display Temperature on 7-Segment LED
;------------------------------------------------
LDICL,100; display for 500 ms
LOOP3:MOVAL,R5; ?X.X 'C
CALLBIN2LED
STSLCD_DATABUS,AL
LDIAL,0b01000000
STSDIG_SELECT,AL
CALLD1MS
10의 자리수를 표시한다.
MOVAL,R6; X?.X 'C
CALLBIN2LED
ORIAL,0b00000001
STSLCD_DATABUS,AL
LDIAL,0b00100000
STSDIG_SELECT,AL
CALLD1MS
1의 자리를 표시하고 00000001과 ORI하여 점을 찍는다.
MOVAL,R7; XX.? 'C
CALLBIN2LED
STSLCD_DATABUS,AL
LDIAL,0b00010000
STSDIG_SELECT,AL
CALLD1MS
나머지를 표시한다.
LDIAL,0b01000000; '
STSLCD_DATABUS,AL
LDIAL,0b00001000
STSDIG_SELECT,AL
CALLD1MS
‘ 표시를 출력한다.
LDIAL,0x0C; C
CALLBIN2LED
STSLCD_DATABUS,AL
LDIAL,0b00000100
STSDIG_SELECT,AL
CALLD1MS
C 문자를 출력한다.
LED에 표시할 문자의 모양을 결정하고, 어느 위치의 7세그먼트 LED에 출력할 것인지 결정하고 출력한다.
DECCL
BRNELOOP3
LDIAL,0b00000000; clear 7-segment LED
STSDIG_SELECT,AL
JMPLOOP
;------------------------------------------------
;Convert Binary to 7-segment LED Pattern
;------------------------------------------------
; Input : AL = 8-bit binary(from 0b00000000 to 0b00001111), "-", "."
; Output : AL = 7-segment LED pattern data
BIN2LED:PUSHZH
PUSHZL
CPIAL,'-'; if AL="-", AL=0x10
BRNEBIN2L1
LDIAL,0x10
RJMPBIN2L2
BIN2L1:CPIAL,'.'; if AL=".",AL=0x11
BRNEBIN2L2
LDIAL,0x11
BIN2L2:LDIZH,high(LED_TABLE << 1); Z = start address of LED data
LDIZL,low(LED_TABLE << 1)
ADDZL,AL; Z = Z + AL
CLRAL
ADCZH,AL
LPMAL,Z; read LED data from Z address
POPZL
POPZH
RET
LED_TABLE:; 7-segment LED data table
.db0b11111100,0b01100000; 0,1
.db0b11011010,0b11110010; 2,3
.db0b01100110,0b10110110; 4,5
.db0b10111110,0b11100100; 6,7
.db0b11111110,0b11110110; 8,9
.db0b11101110,0b00111110; A,b
.db0b10011100,0b01111010; C,d
.db0b10011110,0b10001110; E,F
.db0b00000010,0b00000001; -,.
;===================================================================
;Include User Subroutine File
;===================================================================
.include "OK128SUB.INC"; include OK-128 subroutine file
②순서도

키워드

  • 가격3,000
  • 페이지수22페이지
  • 등록일2009.02.23
  • 저작시기2008.8
  • 파일형식한글(hwp)
  • 자료번호#520064
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니