Full Version : Beginner's Clock V1.0 (CVC+ASM)
avr >>BEGINNER PROJECTS >>Beginner's Clock V1.0 (CVC+ASM)


AVR_Admin- 04-16-2006
BEGINNER'S CLOCK V1.0

CODE
Clock/*********************************************
This program was produced by the
CodeWizardAVR V1.0.2.1b Evaluation
Automatic Program Generator
© Copyright 1998-2001
Pavel Haiduc, HP InfoTech S.R.L.
http://infotech.ir.ro
e-mail:dhptechn@ir.ro , hpinfotech@xnet.ro

Project : Clock
Version :
Date : 7/20/2005
Author : Freeware
Company :
Comments:


Chip type : AT90S8515
Clock frequency : 8.000000 MHz
Memory model : Small
Internal SRAM size : 512
External SRAM size : 0
Data Stack size : 128
*********************************************/

#include <90s8515.h>
#include
// Declare your global variables here
/* void delay() {
unsigned char ch1,ch2;
for(ch1=0;ch1=255;ch1++)
for(ch2=0;ch2=255;ch2++);
} */
void main(void)
{
// Declare your local variables here
unsigned char sec=0,min=0,hour=12,d;
// Input/Output Ports initialization
// Port A
PORTA=0x00;
DDRA=0xFF;

// Port B
PORTB=0x00;
DDRB=0xFF;

// Port C
PORTC=0x00;
DDRC=0xFF;

// Port D
PORTD=0x00;
DDRD=0xFF;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Output Compare
// OC0 output: Disconnected
TCCR0=0x05;
TCNT0=0xFF;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Output Compare
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x1E;
TCNT1L=0x84;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
GIMSK=0x00;
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;

while (1)
{
// Place your code here

again:
delay_us(1000);

if(sec>=59)
{ min++; sec=0; }
else
sec++;
if(min>=59)
{ hour++; min=0;
}
if(hour>=23) hour=0;
PORTA=sec;
PORTB=min;
PORTC=hour;
goto again;
};
}



CODE
;CodeVisionAVR C Compiler V1.0.2.1b Evaluation
;(C) Copyright 1998-2001 Pavel Haiduc, HP InfoTech S.R.L.
;http://infotech.ir.ro
;e-mail:dhptechn@ir.ro , hpinfotech@xnet.ro

;Chip type           : AT90S8515
;Clock frequency     : 8.000000 MHz
;Memory model        : Small
;Optimize for        : Size
;Internal SRAM size  : 512
;External SRAM size  : 0
;Data Stack size     : 128
;Promote char to int : No
;char is unsigned    : Yes
;Global #define      : No
;Automatic register allocation : On
;Use AVR Studio Terminal I/O   : No

.DEVICE AT90S8515
.LISTMAC
.EQU UDRE=0x5
.EQU RXC=0x7
.EQU UBRR=0x9
.EQU UCR=0xA
.EQU USR=0xB
.EQU UDR=0xC
.EQU EERE=0x0
.EQU EEWE=0x1
.EQU EEMWE=0x2
.EQU SPSR=0xE
.EQU SPDR=0xF
.EQU EECR=0x1C
.EQU EEDR=0x1D
.EQU EEARL=0x1E
.EQU EEARH=0x1F
.EQU WDTCR=0x21
.EQU MCUCR=0x35
.EQU RAMPZ=0x3B
.EQU SPL=0x3D
.EQU SPH=0x3E
.EQU SREG=0x3F
.DEF R0X2=R2
.DEF R0X3=R3
.DEF R0X4=R4
.DEF R0X5=R5
.DEF R0X6=R6
.DEF R0X7=R7
.DEF R0X8=R8
.DEF R0X9=R9
.DEF R0XA=R10
.DEF R0XB=R11
.DEF R0XC=R12
.DEF R0XD=R13
.DEF R0XE=R14
.DEF R0XF=R15
.DEF R0X10=R16
.DEF R0X11=R17
.DEF R0X12=R18
.DEF R0X13=R19
.DEF R0X14=R20
.DEF R0X15=R21
.DEF R0X1A=R26
.DEF R0X1B=R27
.DEF R0X1C=R28
.DEF R0X1D=R29
.DEF R0X1E=R30
.DEF R0X1F=R31
.EQU __se_bit=0x20
.EQU __sm_mask=0x10

.MACRO __CPD1N
CPI  R30,LOW(@0)
LDI  R26,HIGH(@0)
CPC  R31,R26
LDI  R26,BYTE3(@0)
CPC  R22,R26
LDI  R26,BYTE4(@0)
CPC  R23,R26
.ENDM

.MACRO __CPD2N
CPI  R26,LOW(@0)
LDI  R30,HIGH(@0)
CPC  R27,R30
LDI  R30,BYTE3(@0)
CPC  R24,R30
LDI  R30,BYTE4(@0)
CPC  R25,R30
.ENDM

.MACRO __CPWRR
CP   R@0,R@2
CPC  R@1,R@3
.ENDM

.MACRO __CPWRN
CPI  R@0,LOW(@2)
LDI  R30,HIGH(@2)
CPC  R@1,R30
.ENDM

.MACRO __ADDD1N
SUBI R30,LOW(-@0)
SBCI R31,HIGH(-@0)
SBCI R22,BYTE3(-@0)
SBCI R23,BYTE4(-@0)
.ENDM

.MACRO __ADDD2N
SUBI R26,LOW(-@0)
SBCI R27,HIGH(-@0)
SBCI R24,BYTE3(-@0)
SBCI R25,BYTE4(-@0)
.ENDM

.MACRO __SUBD1N
SUBI R30,LOW(@0)
SBCI R31,HIGH(@0)
SBCI R22,BYTE3(@0)
SBCI R23,BYTE4(@0)
.ENDM

.MACRO __SUBD2N
SUBI R26,LOW(@0)
SBCI R27,HIGH(@0)
SBCI R24,BYTE3(@0)
SBCI R25,BYTE4(@0)
.ENDM

.MACRO __ANDD1N
ANDI R30,LOW(@0)
ANDI R31,HIGH(@0)
ANDI R22,BYTE3(@0)
ANDI R23,BYTE4(@0)
.ENDM

.MACRO __ORD1N
ORI  R30,LOW(@0)
ORI  R31,HIGH(@0)
ORI  R22,BYTE3(@0)
ORI  R23,BYTE4(@0)
.ENDM

.MACRO __DELAY_USB
LDI  R24,LOW(@0)
__DELAY_USB_LOOP:
DEC  R24
BRNE __DELAY_USB_LOOP
.ENDM

.MACRO __DELAY_USW
LDI  R24,LOW(@0)
LDI  R25,HIGH(@0)
__DELAY_USW_LOOP:
SBIW R24,1
BRNE __DELAY_USW_LOOP
.ENDM

.MACRO __CLRD1S
CLR  R30
STD  Y+@0,R30
STD  Y+@0+1,R30
STD  Y+@0+2,R30
STD  Y+@0+3,R30
.ENDM

.MACRO __GETD1S
LDD  R30,Y+@0
LDD  R31,Y+@0+1
LDD  R22,Y+@0+2
LDD  R23,Y+@0+3
.ENDM

.MACRO __PUTD1S
STD  Y+@0,R30
STD  Y+@0+1,R31
STD  Y+@0+2,R22
STD  Y+@0+3,R23
.ENDM

.MACRO __POINTB1MN
LDI  R30,LOW(@0+@1)
.ENDM

.MACRO __POINTW1MN
LDI  R30,LOW(@0+@1)
LDI  R31,HIGH(@0+@1)
.ENDM

.MACRO __POINTW1FN
LDI  R30,LOW(2*@0+@1)
LDI  R31,HIGH(2*@0+@1)
.ENDM

.MACRO __POINTB2MN
LDI  R26,LOW(@0+@1)
.ENDM

.MACRO __POINTW2MN
LDI  R26,LOW(@0+@1)
LDI  R27,HIGH(@0+@1)
.ENDM

.MACRO __GETD1N
LDI  R30,LOW(@0)
LDI  R31,HIGH(@0)
LDI  R22,BYTE3(@0)
LDI  R23,BYTE4(@0)
.ENDM

.MACRO __GETD2N
LDI  R26,LOW(@0)
LDI  R27,HIGH(@0)
LDI  R24,BYTE3(@0)
LDI  R25,BYTE4(@0)
.ENDM

.MACRO __GETD2S
LDD  R26,Y+@0
LDD  R27,Y+@0+1
LDD  R24,Y+@0+2
LDD  R25,Y+@0+3
.ENDM

.MACRO __GETB1MN
LDS  R30,@0+@1
.ENDM

.MACRO __GETW1MN
LDS  R30,@0+@1
LDS  R31,@0+@1+1
.ENDM

.MACRO __GETD1MN
LDS  R30,@0+@1
LDS  R31,@0+@1+1
LDS  R22,@0+@1+2
LDS  R23,@0+@1+3
.ENDM

.MACRO __GETBRMN
LDS  R@2,@0+@1
.ENDM

.MACRO __GETWRMN
LDS  R@2,@0+@1
LDS  R@3,@0+@1+1
.ENDM

.MACRO __GETB2MN
LDS  R26,@0+@1
.ENDM

.MACRO __GETW2MN
LDS  R26,@0+@1
LDS  R27,@0+@1+1
.ENDM

.MACRO __GETD2MN
LDS  R26,@0+@1
LDS  R27,@0+@1+1
LDS  R24,@0+@1+2
LDS  R25,@0+@1+3
.ENDM

.MACRO __PUTB1MN
STS  @0+@1,R30
.ENDM

.MACRO __PUTW1MN
STS  @0+@1,R30
STS  @0+@1+1,R31
.ENDM

.MACRO __PUTD1MN
STS  @0+@1,R30
STS  @0+@1+1,R31
STS  @0+@1+2,R22
STS  @0+@1+3,R23
.ENDM

.MACRO __PUTBMRN
STS  @0+@1,R@2
.ENDM

.MACRO __PUTWMRN
STS  @0+@1,R@2
STS  @0+@1+1,R@3
.ENDM

.MACRO __GETW1R
MOV  R30,R@0
MOV  R31,R@1
.ENDM

.MACRO __GETW2R
MOV  R26,R@0
MOV  R27,R@1
.ENDM

.MACRO __GETWRN
LDI  R@0,LOW(@2)
LDI  R@1,HIGH(@2)
.ENDM

.MACRO __PUTW1R
MOV  R@0,R30
MOV  R@1,R31
.ENDM

.MACRO __ADDWRN
SUBI R@0,LOW(-@2)
SBCI R@1,HIGH(-@2)
.ENDM

.MACRO __ADDWRR
ADD  R@0,R@2
ADC  R@1,R@3
.ENDM

.MACRO __SUBWRN
SUBI R@0,LOW(@2)
SBCI R@1,HIGH(@2)
.ENDM

.MACRO __SUBWRR
SUB  R@0,R@2
SBC  R@1,R@3
.ENDM

.MACRO __ANDWRN
ANDI R@0,LOW(@2)
ANDI R@1,HIGH(@2)
.ENDM

.MACRO __ANDWRR
AND  R@0,R@2
AND  R@1,R@3
.ENDM

.MACRO __ORWRN
ORI  R@0,LOW(@2)
ORI  R@1,HIGH(@2)
.ENDM

.MACRO __ORWRR
OR   R@0,R@2
OR   R@1,R@3
.ENDM

.MACRO __EORWRR
EOR  R@0,R@2
EOR  R@1,R@3
.ENDM

.MACRO __GETWRS
LDD  R@0,Y+@2
LDD  R@1,Y+@2+1
.ENDM

.MACRO __PUTWSR
STD  Y+@2,R@0
STD  Y+@2+1,R@1
.ENDM

.MACRO __MOVEWRR
MOV  R@0,R@2
MOV  R@1,R@3
.ENDM

.MACRO __INWR
IN   R@0,@2
IN   R@1,@2+1
.ENDM

.MACRO __OUTWR
OUT  @2+1,R@1
OUT  @2,R@0
.ENDM

.MACRO __CALL1MN
LDS  R30,@0+@1
LDS  R31,@0+@1+1
ICALL
.ENDM

.MACRO __NBST
BST  R@0,@1
IN   R30,SREG
LDI  R31,0x40
EOR  R30,R31
OUT  SREG,R30
.ENDM


.MACRO __PUTB1SN
LDD  R26,Y+@0
LDD  R27,Y+@0+1
SUBI R26,LOW(-@1)
SBCI R27,HIGH(-@1)
ST   X,R30
.ENDM

.MACRO __PUTW1SN
LDD  R26,Y+@0
LDD  R27,Y+@0+1
SUBI R26,LOW(-@1)
SBCI R27,HIGH(-@1)
ST   X+,R30
ST   X,R31
.ENDM

.MACRO __PUTD1SN
LDD  R26,Y+@0
LDD  R27,Y+@0+1
SUBI R26,LOW(-@1)
SBCI R27,HIGH(-@1)
RCALL __PUTDP1
.ENDM

.MACRO __PUTB1SNS
LDD  R26,Y+@0
LDD  R27,Y+@0+1
ADIW R26,@1
ST   X,R30
.ENDM

.MACRO __PUTW1SNS
LDD  R26,Y+@0
LDD  R27,Y+@0+1
ADIW R26,@1
ST   X+,R30
ST   X,R31
.ENDM

.MACRO __PUTD1SNS
LDD  R26,Y+@0
LDD  R27,Y+@0+1
ADIW R26,@1
RCALL __PUTDP1
.ENDM

.MACRO __PUTB1PMN
LDS  R26,@0
LDS  R27,@0+1
SUBI R26,LOW(-@1)
SBCI R27,HIGH(-@1)
ST   X,R30
.ENDM

.MACRO __PUTW1PMN
LDS  R26,@0
LDS  R27,@0+1
SUBI R26,LOW(-@1)
SBCI R27,HIGH(-@1)
ST   X+,R30
ST   X,R31
.ENDM

.MACRO __PUTD1PMN
LDS  R26,@0
LDS  R27,@0+1
SUBI R26,LOW(-@1)
SBCI R27,HIGH(-@1)
RCALL __PUTDP1
.ENDM

.MACRO __PUTB1PMNS
LDS  R26,@0
LDS  R27,@0+1
ADIW R26,@1
ST   X,R30
.ENDM

.MACRO __PUTW1PMNS
LDS  R26,@0
LDS  R27,@0+1
ADIW R26,@1
ST   X+,R30
ST   X,R31
.ENDM

.MACRO __PUTD1PMNS
LDS  R26,@0
LDS  R27,@0+1
ADIW R26,@1
RCALL __PUTDP1
.ENDM

.CSEG
.ORG 0x0D

.INCLUDE "clock.inc"

__RESET:
CLI
CLR  R30
OUT  EECR,R30
OUT  MCUCR,R30

;DISABLE WATCHDOG
LDI  R31,0x18
OUT  WDTCR,R31
LDI  R31,0x10
OUT  WDTCR,R31

;CLEAR R2-R15
LDI  R24,14
LDI  R26,2
CLR  R27
__CLEAR_REG:
ST   X+,R30
DEC  R24
BRNE __CLEAR_REG

;CLEAR SRAM
LDI  R24,LOW(0x200)
LDI  R25,HIGH(0x200)
LDI  R26,0x60
__CLEAR_SRAM:
ST   X+,R30
SBIW R24,1
BRNE __CLEAR_SRAM

;GLOBAL VARIABLES INITIALIZATION
LDI  R30,LOW(__GLOBAL_INI_TBL*2)
LDI  R31,HIGH(__GLOBAL_INI_TBL*2)
__GLOBAL_INI_NEXT:
LPM
MOV  R1,R0
ADIW R30,1
LPM
ADIW R30,1
MOV  R22,R30
MOV  R23,R31
MOV  R31,R0
MOV  R30,R1
SBIW R30,0
BREQ __GLOBAL_INI_END
LPM
MOV  R26,R0
ADIW R30,1
LPM
MOV  R27,R0
ADIW R30,1
LPM
MOV  R24,R0
ADIW R30,1
LPM
MOV  R25,R0
ADIW R30,1
__GLOBAL_INI_LOOP:
LPM
ST   X+,R0
ADIW R30,1
SBIW R24,1
BRNE __GLOBAL_INI_LOOP
MOV  R30,R22
MOV  R31,R23
RJMP __GLOBAL_INI_NEXT
__GLOBAL_INI_END:

;STACK POINTER INITIALIZATION
LDI  R30,LOW(0x25F)
OUT  SPL,R30
LDI  R30,HIGH(0x25F)
OUT  SPH,R30

;DATA STACK POINTER INITIALIZATION
LDI  R28,LOW(0xDF)
LDI  R29,HIGH(0xDF)

RJMP _main

.ESEG
.ORG 1

.DSEG
.ORG 0xE0
;       1 /*********************************************
;       2 This program was produced by the
;       3 CodeWizardAVR V1.0.2.1b Evaluation
;       4 Automatic Program Generator
;       5 © Copyright 1998-2001
;       6 Pavel Haiduc, HP InfoTech S.R.L.
;       7 http://infotech.ir.ro
;       8 e-mail:dhptechn@ir.ro , hpinfotech@xnet.ro
;       9
;      10 Project : Clock
;      11 Version :
;      12 Date    : 7/20/2005
;      13 Author  : Freeware
;      14 Company :
;      15 Comments:
;      16
;      17
;      18 Chip type           : AT90S8515
;      19 Clock frequency     : 8.000000 MHz
;      20 Memory model        : Small
;      21 Internal SRAM size  : 512
;      22 External SRAM size  : 0
;      23 Data Stack size     : 128
;      24 *********************************************/
;      25
;      26 #include <90s8515.h>
;      27 // CodeVisionAVR C Compiler
;      28 // (C) 1998-2000 Pavel Haiduc, HP InfoTech S.R.L.
;      29
;      30 // I/O registers definitions for the AT90S8515
;      31
;      32 #ifndef _90S8515_INCLUDED_
;      33 #define _90S8515_INCLUDED_
;      34
;      35 #pragma used+
;      36 sfrb ACSR=8;
;      37 sfrb UBRR=9;
;      38 sfrb UCR=0xa;
;      39 sfrb USR=0xb;
;      40 sfrb UDR=0xc;
;      41 sfrb SPCR=0xd;
;      42 sfrb SPSR=0xe;
;      43 sfrb SPDR=0xf;
;      44 sfrb PIND=0x10;
;      45 sfrb DDRD=0x11;
;      46 sfrb PORTD=0x12;
;      47 sfrb PINC=0x13;
;      48 sfrb DDRC=0x14;
;      49 sfrb PORTC=0x15;
;      50 sfrb PINB=0x16;
;      51 sfrb DDRB=0x17;
;      52 sfrb PORTB=0x18;
;      53 sfrb PINA=0x19;
;      54 sfrb DDRA=0x1a;
;      55 sfrb PORTA=0x1b;
;      56 sfrb EECR=0x1c;
;      57 sfrb EEDR=0x1d;
;      58 sfrb EEARL=0x1e;
;      59 sfrb EEARH=0x1f;
;      60 sfrw EEAR=0x1e;   // 16 bit access
;      61 sfrb WDTCR=0x21;
;      62 sfrb ICR1L=0x24;
;      63 sfrb ICR1H=0x25;
;      64 sfrw ICR1=0x24;   // 16 bit access
;      65 sfrb OCR1BL=0x28;
;      66 sfrb OCR1BH=0x29;
;      67 sfrw OCR1B=0x28;  // 16 bit access
;      68 sfrb OCR1AL=0x2a;
;      69 sfrb OCR1AH=0x2b;
;      70 sfrw OCR1A=0x2a;  // 16 bit access
;      71 sfrb TCNT1L=0x2c;
;      72 sfrb TCNT1H=0x2d;
;      73 sfrw TCNT1=0x2c;  // 16 bit access
;      74 sfrb TCCR1B=0x2e;
;      75 sfrb TCCR1A=0x2f;
;      76 sfrb TCNT0=0x32;
;      77 sfrb TCCR0=0x33;
;      78 sfrb MCUSR=0x34;
;      79 sfrb MCUCR=0x35;
;      80 sfrb TIFR=0x38;
;      81 sfrb TIMSK=0x39;
;      82 sfrb GIFR=0x3a;
;      83 sfrb GIMSK=0x3b;
;      84 sfrb SPL=0x3d;
;      85 sfrb SPH=0x3e;
;      86 sfrb SREG=0x3f;
;      87 #pragma used-
;      88
;      89 // Interrupt vectors definitions
;      90
;      91 #define EXT_INT0 2
;      92 #define EXT_INT1 3
;      93 #define TIM1_CAPT 4
;      94 #define TIM1_COMPA 5
;      95 #define TIM1_COMPB 6
;      96 #define TIM1_OVF 7
;      97 #define TIM0_OVF 8
;      98 #define SPI_STC 9
;      99 #define UART_RXC 10
;     100 #define UART_DRE 11
;     101 #define UART_TXC 12
;     102 #define ANA_COMP 13
;     103
;     104 #endif
;     105
;     106 #include <delay.h>
;     107 // CodeVisionAVR C Compiler
;     108 // (C) 1998-2000 Pavel Haiduc, HP InfoTech S.R.L.
;     109
;     110 #ifndef _DELAY_INCLUDED_
;     111 #define _DELAY_INCLUDED_
;     112
;     113 #pragma used+
;     114
;     115 void delay_us(unsigned int n);
;     116 void delay_ms(unsigned int n);
;     117
;     118 #pragma used-
;     119
;     120 #endif
;     121 // Declare your global variables here
;     122  /*   void delay() {
;     123                    unsigned char ch1,ch2;
;     124                    for(ch1=0;ch1=255;ch1++)
;     125                       for(ch2=0;ch2=255;ch2++);
;     126                       } */
;     127 void main(void)
;     128 {

.CSEG
_main:
;     129 // Declare your local variables here
;     130         unsigned char sec=0,min=0,hour=12,d;
;     131 // Input/Output Ports initialization
;     132 // Port A
;     133 PORTA=0x00;
; sec -> R16
; min -> R17
; hour -> R18
; d -> R19
LDI  R16,0
LDI  R17,0
LDI  R18,12
CLR  R30
OUT  0x1B,R30
;     134 DDRA=0xFF;
LDI  R30,LOW(255)
OUT  0x1A,R30
;     135
;     136 // Port B
;     137 PORTB=0x00;
CLR  R30
OUT  0x18,R30
;     138 DDRB=0xFF;
LDI  R30,LOW(255)
OUT  0x17,R30
;     139
;     140 // Port C
;     141 PORTC=0x00;
CLR  R30
OUT  0x15,R30
;     142 DDRC=0xFF;
LDI  R30,LOW(255)
OUT  0x14,R30
;     143
;     144 // Port D
;     145 PORTD=0x00;
CLR  R30
OUT  0x12,R30
;     146 DDRD=0xFF;
LDI  R30,LOW(255)
OUT  0x11,R30
;     147
;     148 // Timer/Counter 0 initialization
;     149 // Clock source: System Clock
;     150 // Clock value: Timer 0 Stopped
;     151 // Mode: Output Compare
;     152 // OC0 output: Disconnected
;     153 TCCR0=0x05;
LDI  R30,LOW(5)
OUT  0x33,R30
;     154 TCNT0=0xFF;
LDI  R30,LOW(255)
OUT  0x32,R30
;     155
;     156 // Timer/Counter 1 initialization
;     157 // Clock source: System Clock
;     158 // Clock value: Timer 1 Stopped
;     159 // Mode: Output Compare
;     160 // OC1A output: Discon.
;     161 // OC1B output: Discon.
;     162 // Noise Canceler: Off
;     163 // Input Capture on Falling Edge
;     164 TCCR1A=0x00;
CLR  R30
OUT  0x2F,R30
;     165 TCCR1B=0x00;
OUT  0x2E,R30
;     166 TCNT1H=0x1E;
LDI  R30,LOW(30)
OUT  0x2D,R30
;     167 TCNT1L=0x84;
LDI  R30,LOW(132)
OUT  0x2C,R30
;     168 OCR1AH=0x00;
CLR  R30
OUT  0x2B,R30
;     169 OCR1AL=0x00;
OUT  0x2A,R30
;     170 OCR1BH=0x00;
OUT  0x29,R30
;     171 OCR1BL=0x00;
OUT  0x28,R30
;     172
;     173 // External Interrupt(s) initialization
;     174 // INT0: Off
;     175 // INT1: Off
;     176 GIMSK=0x00;
OUT  0x3B,R30
;     177 MCUCR=0x00;
OUT  0x35,R30
;     178
;     179 // Timer(s)/Counter(s) Interrupt(s) initialization
;     180 TIMSK=0x00;
OUT  0x39,R30
;     181
;     182 // Analog Comparator initialization
;     183 // Analog Comparator: Off
;     184 // Analog Comparator Input Capture by Timer/Counter 1: Off
;     185 ACSR=0x80;
LDI  R30,LOW(128)
OUT  0x8,R30
;     186
;     187 while (1)
;     188       {
;     189       // Place your code here
;     190
;     191       again:
_0x6:
;     192       //delay_us(100);
;     193                 TCNT0=0x05;
LDI  R30,LOW(5)
OUT  0x32,R30
;     194       if(sec>=59)
CPI  R16,59
BRLO _0x7
;     195      { min++; sec=0; }
SUBI R17,-1
LDI  R16,LOW(0)
;     196        else
RJMP _0x8
_0x7:
;     197     sec++;
SUBI R16,-1
_0x8:
;     198       if(min>=59)
CPI  R17,59
BRLO _0x9
;     199   { hour++; min=0;
SUBI R18,-1
LDI  R17,LOW(0)
;     200                       }
;     201       if(hour>=23)   hour=0;
_0x9:
CPI  R18,23
BRLO _0xA
LDI  R18,LOW(0)
;     202           PORTA=sec;
_0xA:
OUT  0x1B,R16
;     203           PORTB=min;
OUT  0x18,R17
;     204           PORTC=hour;
OUT  0x15,R18
;     205               goto again;
RJMP _0x6
;     206       };
;     207 }
_0xB:
RJMP _0xB

.ORG 0x00

;INTERRUPT VECTORS
RJMP __RESET
RJMP 0
RJMP 0
RJMP 0
RJMP 0
RJMP 0
RJMP 0
RJMP 0
RJMP 0
RJMP 0
RJMP 0
RJMP 0
RJMP 0



Forumer™ is Voted #1 Free Forum Hosting provider
Build your own community today with the largest message board hosting company.