Path: Home => AVR overview => Applications => DCF77 receivers => Sync RX tn24   Diese Seite in Deutsch: Flag DE
DCF77 receiver logo Applications of
AVR single chip controllers AT90S, ATtiny, ATmega and ATxmega
DCF77 sync serial receiver with an ATtiny24
This project is experimental. I don't know if it really works as planned here.

10 DCF77 AM direct receiver with gain-regulated OpAmps and an ATtiny25

10.6 Sync serial receiver and LCD display with ATtiny24

Receivers with an ATtiny25 controller here output a sync serial signal in a short or long format, if so configured. This receiver here receives this sync signal and displays the received content on an LCD. With that, time, date, weekday as well as status messages from the receiver can be displayed, depending from the size of the attached LCD.

10.6.1 Necessary hardware

LCD-Anzeige mit ATtiny24 The necessary hardware is published here with a detailed description. It is possible to attach the following LCD types to it: To attach the OpAmp receiver to the tn24lcd board you need only a 6-pin parallel cable that fits into the 6-pin male plug on the tn24lcd board.

Plugging the OpAmp receiver to the tn24lcd board That is all. Anything else is done by the software.

10.6.2 The software

The software is written in Assembler, of course. It requires the LCD-Include-Routines to assemble correct. The following entries have to be changed to match with your hardware:

;.equ clock = 1000000 ; Clock frequency of controller in Hz
; LCD size:
  .equ LcdLines = 1 ; Number of lines (1, 2, 4)
  .equ LcdCols = 8 ; Number of characters per line (8..24)
; LCD bus interface
  .equ LcdBits = 4 ; Bus size (4 or 8)
  ; If 4 bit bus:
    .equ Lcd4High = 1 ; Bus nibble (1=Upper, 0=Lower)
  .equ LcdWait = 0 ; Access mode (0 with busy, 1 with delay loops)
; LCD data ports
  .equ pLcdDO = PORTA ; Data output port
  .equ pLcdDD = DDRA ; Data direction port
; LCD control ports und pins
  .equ pLcdCEO = PORTB ; Control E output port
  .equ bLcdCEO = PORTB2 ; Control E output portpin
  .equ pLcdCED = DDRB ; Control E direction port
  .equ bLcdCED = DDB2 ; Control E direction portpin
  ;equ pLcdCRSO = PORTB ; Control RS output port
  .equ bLcdCRSO = PORTB0 ; Control RS output portpin
  .equ pLcdCRSD = DDRB ; Control RS direction port
  .equ bLcdCRSD = DDB0 ; Control RS direction portpin
; If LcdWait = 0:
  .equ pLcdDI = PINA ; Data input port
  .equ pLcdCRWO = PORTB ; Control RW output port
  .equ bLcdCRWO = PORTB1 ; Control RW output portpin
  .equ pLcdCRWD = DDRB ; Control RW direction port
  .equ bLcdCRWD = DDB1 ; Control RW direction portpin
; If you need binary to decimal conversion:
  ;.equ LcdDecimal = 1 ; If defined: include those routines
; If you need binary to hexadecimal conversion:
  ;.equ LcdHex = 1 ; If defined: include those routines
; If simulation in the SRAM is desired:
  ;.equ avr_sim = 1 ; 1=Simulate, 0 or undefined=Do not simulate

Further properties to be adjusted in the source code are:

Top of page Hardware Software

©2021 by