;******************************************************************** ;* 7SEGM1.ASM: Count up one 7-segm LED display directly on PORTB ;* ;* Copyright ©2002 RES® ;* ;* NOTE: Connect a TDSL5160 Common Cathode 7-segm LED display: ;* ;* D0 -> pin 7 (a) ;* D1 -> pin 6 (b) ;* D2 -> pin 4 (c) ;* D3 -> pin 2 (d) ;* D4 -> pin 1 (e) ;* D5 -> pin 9 (f) ;* D6 -> pin 10 (g) ;* D7 -> pin 5 (dp) ;* ;* Connect 7 resistors of 1k from PORTB to the display (see diagram) ;* ;* RES® can be reached by email: at90s2313@europe.com ;* or visit the website: http://www.attiny.com ;* ;* Version :1.0 ;* Date :03/21/2002 ;* Author :Rob's ElectroSoft® ;* Target MCU :AT90S1200-12PI@8MHz ;******************************************************************** .include "1200def.inc" rjmp RESET ;reset handle ;* Long delay ;* Register variables .def T1 = r1 .def T2 = r2 .def temp = r16 ;* Code longDelay: clr T1 ;T1 used as delay 2nd count clr T2 ;T2 used as delay 3d count delay_1: dec T2 brne delay_1 dec T1 brne delay_1 dec temp ;temp must be preset as brne delay_1 ; delay master count ret ;* Count display upwards repeatingly (0 -> 9 ->) ;* Register variables .def bitCount = r17 .def data = r18 .def reset = r19 ;* Code RESET: ser reset out DDRB, reset out PORTB, reset ;all 7 segments ON (lamp test) ldi temp, 150 rcall longDelay ;for a second clr reset out PORTB, reset ;first all segments OFF next_Count: ldi bitCount, 0 ;reset up-counter count_Up: out EEAR, bitCount ;bitCount sets eeprom address sbi EECR, 0 ;set eeprom read strobe in data, EEDR ;get segments data from eeprom out PORTB, data ;display the data for a sec ldi temp, 20 ; (upcount speed) rcall longDelay clr reset ;blank display out PORTB, reset inc bitCount cpi bitCount, 10 ;if 10 then again, else continue breq next_Count rjmp count_Up ;keep counting up ;* Segments data table ;* segments g|f|e|d|c|b|a .ESEG table: .db 0b00111111 ;data 0 .db 0b00000110 ;data 1 .db 0b01011011 ;data 2 .db 0b01001111 ;data 3 .db 0b01100110 ;data 4 .db 0b01101101 ;data 5 .db 0b01111100 ;data 6 .db 0b00000111 ;data 7 .db 0b01111111 ;data 8 .db 0b01100111 ;data 9