.include "C:\avr\avrasm\appnotes\2313def.inc"


.def	Temp=R16
.def	Temp1=R17
.def	Temp2=R18
.def	Temp3=R19
.def	Temp4=R20

.cseg
.org 0


;************************  Инициализация стека

          ldi Temp,RamEnd          
          out SPL,Temp

 ;************************ Настройка порта

          ldi Temp,0b11111111  
          out DDRD,Temp

;**************************************
;*                                                      *
;*           Тело программы               *
;*                                                      *
;**************************************

	rcall Display	



	rcall Zero
	rcall C1
	rcall C2
	rcall C3
	rcall C4
	rcall C5
	rcall C6
	rcall C7
	rcall C8
	rcall C9

   
Cikl:	rjmp Cikl

;****************************************
;*                                                          *
;*               Подпрограммы                 *     
;*                                                          *
;****************************************


;*******************  Старт экрана

Display:	ldi Temp, 0x00
	rcall OutPD

	ldi Temp, 0b0111101  ; Начальное состояние
	rcall OutPD

	cbi PortD, 0
	sbi PortD, 1
	rcall Delay

	cbi PortD, 1
	rcall Delay

	ldi Temp, 0b0111101  ; Снятие блокировки
	rcall OutPD
	sbi PortD, 1
	rcall Delay
	cbi PortD, 1
	rcall Delay

	ldi Temp, 0b0000010  ; Адрес первого разряда
	rcall OutPD
	cbi PortD,1
	rcall Delay

	ret

;******************************
;*                                                        *
;*                   Знаки                           *
;*                                                        *
;******************************


;************** Пробел

Probel:	ldi Temp, 0b0000011
	rcall OutPD
	cbi PortD, 1
	rcall Delay

	ldi Temp, 0b0000011
	rcall OutPD
	cbi PortD, 1
	rcall Delay
	
	ret

;************* Знак температуры

Termo:	ldi Temp, 0b0100111
	rcall OutPD
	cbi PortD, 1
	rcall Delay

	ldi Temp, 0b0010111
	rcall OutPD
	cbi PortD, 1
	rcall Delay
	
	ret

;**************** Цыфры

;**************** 0

Zero:	ldi Temp, 0b0011111
	rcall OutPD
	cbi PortD, 1
	rcall Delay

	ldi Temp, 0b0011111
	rcall OutPD
	cbi PortD, 1
	rcall Delay
	
	ret

;**************** 1

C1:	ldi Temp, 0b0000011
	rcall OutPD
	cbi PortD, 1
	rcall Delay

	ldi Temp, 0b0011011
	rcall OutPD
	cbi PortD, 1
	rcall Delay
	
	ret

;**************** 2

C2:	ldi Temp, 0b0111111
	rcall OutPD
	cbi PortD, 1
	rcall Delay

	ldi Temp, 0b0010011
	rcall OutPD
	cbi PortD, 1
	rcall Delay
	
	ret

;**************** 3

C3:	ldi Temp, 0b0101111
	rcall OutPD
	cbi PortD, 1
	rcall Delay

	ldi Temp, 0b0011011
	rcall OutPD
	cbi PortD, 1
	rcall Delay
	
	ret

;**************** 4

C4:	ldi Temp, 0b0100011
	rcall OutPD
	cbi PortD, 1
	rcall Delay

	ldi Temp, 0b0011111
	rcall OutPD
	cbi PortD, 1
	rcall Delay
	
	ret

;**************** 5

C5:	ldi Temp, 0b0101111
	rcall OutPD
	cbi PortD, 1
	rcall Delay

	ldi Temp, 0b0001111
	rcall OutPD
	cbi PortD, 1
	rcall Delay
	
	ret

;**************** 6

C6:	ldi Temp, 0b0111111
	rcall OutPD
	cbi PortD, 1
	rcall Delay

	ldi Temp, 0b0001111
	rcall OutPD
	cbi PortD, 1
	rcall Delay
	
	ret

;**************** 7

C7:	ldi Temp, 0b0000111
	rcall OutPD
	cbi PortD, 1
	rcall Delay

	ldi Temp, 0b0011011
	rcall OutPD
	cbi PortD, 1
	rcall Delay
	
	ret

;**************** 8

C8:	ldi Temp, 0b0111111
	rcall OutPD
	cbi PortD, 1
	rcall Delay

	ldi Temp, 0b0011111
	rcall OutPD
	cbi PortD, 1
	rcall Delay
	
	ret

;**************** 9

C9:	ldi Temp, 0b0101111
	rcall OutPD
	cbi PortD, 1
	rcall Delay

	ldi Temp, 0b0011111
	rcall OutPD
	cbi PortD, 1
	rcall Delay
	
	ret

;**************** Действия

;**************** Возврат корретки

BSP:	ldi Temp, 0b0000010
	rcall OutPD
	cbi PortD,1
	rcall Delay

	ret

;**************** Вывод в порт

OutPD:
	out PortD, Temp
	rcall Delay


	ret

;***************** Задержка 200 нс

Delay: 

          ldi Temp1,200

Loop:     dec Temp1
          brne Loop



          ret


