---  E:\ELEKTRONIKA\PIC\MPLAB\Nulladik\Nulladik.as  ----------------------------------------------
1:                 opt subtitle "HI-TECH Software Omniscient Code Generator (Lite mode) build 7503"
2:                 
3:                 opt pagewidth 120
4:                 
5:                 	opt lm
6:                 
7:                 	processor	12F675
8:                 clrc	macro
9:                 	bcf	3,0
10:                	endm
11:                clrz	macro
12:                	bcf	3,2
13:                	endm
14:                setc	macro
15:                	bsf	3,0
16:                	endm
17:                setz	macro
18:                	bsf	3,2
19:                	endm
20:                skipc	macro
21:                	btfss	3,0
22:                	endm
23:                skipz	macro
24:                	btfss	3,2
25:                	endm
26:                skipnc	macro
27:                	btfsc	3,0
28:                	endm
29:                skipnz	macro
30:                	btfsc	3,2
31:                	endm
32:                indf	equ	0
33:                indf0	equ	0
34:                pc	equ	2
35:                pcl	equ	2
36:                status	equ	3
37:                fsr	equ	4
38:                fsr0	equ	4
39:                c	equ	1
40:                z	equ	0
41:                pclath	equ	10
42:                # 22 "E:\ELEKTRONIKA\PIC\MPLAB\Nulladik\watt_2\Nulladik.c"
43:                	psect config,class=CONFIG,delta=2 ;#
44:                # 22 "E:\ELEKTRONIKA\PIC\MPLAB\Nulladik\watt_2\Nulladik.c"
45:                	dw 0x3FFD & 0x3FF7 & 0x3FEF & 0x3FFF & 0x3FBF & 0x3FFF & 0x3FFF ;#
46:                	FNCALL	_main,_PIC_init
47:                	FNROOT	_main
48:                	global	_ADCON0
49:                psect	text113,local,class=CODE,delta=2
50:                global __ptext113
51:                __ptext113:
52:                _ADCON0	set	31
53:                	global	_CMCON
54:                _CMCON	set	25
55:                	global	_GPIO
56:                _GPIO	set	5
57:                	global	_GIE
58:                _GIE	set	95
59:                	global	_GPIO2
60:                _GPIO2	set	42
61:                	global	_ANSEL
62:                _ANSEL	set	159
63:                	global	_TRISIO
64:                _TRISIO	set	133
65:                	file	"Nulladik.as"
66:                	line	#
67:                psect cinit,class=CODE,delta=2
68:                global start_initialization
69:                start_initialization:
70:                
71:                psect cinit,class=CODE,delta=2
72:                global end_of_initialization
73:                
74:                ;End of C runtime variable initialization code
75:                
76:                end_of_initialization:
77:                clrf status
   3E2    0183     CLRF 0x3
78:                ljmp _main	;jump to C main() function
   3E3    2BF0     GOTO 0x3f0
---  E:\ELEKTRONIKA\PIC\MPLAB\Nulladik\startup.as  -----------------------------------------------
1:                 
2:                 	; HI-TECH C Compiler for PIC10/12/16 MCUs V9.81
3:                 	; Copyright (C) 1984-2010 HI-TECH Software
4:                 
5:                 	; Auto-generated runtime startup code for final link stage.
6:                 
7:                 	;
8:                 	; Compiler options:
9:                 	;
10:                	; -oNulladik.cof -mNulladik.map --summary=default --output=default \
11:                	; Nulladik.p1 --chip=12F675 -P --runtime=default --opt=default \
12:                	; -D__DEBUG=1 -g --asmlist --errformat=Error   [%n] %f; %l.%c %s \
13:                	; --msgformat=Advisory[%n] %s --warnformat=Warning [%n] %f; %l.%c %s
14:                	;
15:                
16:                
17:                	processor	12F675
18:                
19:                	global	_main,start,_exit,reset_vec
20:                	fnroot	_main
21:                	psect	config,class=CONFIG,delta=2
22:                	psect	idloc,class=IDLOC,delta=2
23:                	psect	code,class=CODE,delta=2
24:                	psect	powerup,class=CODE,delta=2
25:                	psect	reset_vec,class=CODE,delta=2
26:                	psect	maintext,class=CODE,delta=2
27:                	C	set	0
28:                	Z	set	2
29:                	PCL	set	2
30:                	INDF	set	0
31:                
32:                	OSCCAL	equ	0x90
33:                	psect	osccal,class=CODE,delta=2
34:                global ___osccal_val
35:                ___osccal_val:
36:                	;oscillator constant would be pre-programmed here
37:                	STATUS	equ	3
38:                	PCLATH	equ	0Ah
39:                
40:                	psect	eeprom_data,class=EEDATA,delta=2,space=2
41:                	psect	intentry,class=CODE,delta=2
42:                	psect	functab,class=CODE,delta=2
43:                	global	intlevel0,intlevel1,intlevel2, intlevel3, intlevel4, intlevel5
44:                intlevel0:
45:                intlevel1:
46:                intlevel2:
47:                intlevel3:
48:                intlevel4:
49:                intlevel5:
50:                	psect	init,class=CODE,delta=2
51:                	psect	cinit,class=CODE,delta=2
52:                	psect	text,class=CODE,delta=2
53:                	psect	end_init,class=CODE,delta=2
54:                	psect	clrtext,class=CODE,delta=2
55:                	FSR	set	4
56:                	psect	strings,class=CODE,delta=2,reloc=256
57:                
58:                	psect	reset_vec
59:                reset_vec:
60:                	; No powerup routine
61:                	; No interrupt routine
62:                
63:                
64:                	psect	init
65:                start
66:                _exit
67:                	psect	end_init
68:                	bsf	3,5
69:                	fcall	___osccal_val
   001    23FF     CALL 0x3ff
70:                movwf	0x90 ^ 0x80
   002    0090     MOVWF 0x10
71:                	clrf	STATUS
   003    0183     CLRF 0x3
72:                	global start_initialization
73:                	ljmp start_initialization	;jump to C runtime clear & initialization
   004    2BE2     GOTO 0x3e2
---  E:\ELEKTRONIKA\PIC\MPLAB\Nulladik\watt_2\Nulladik.c  ----------------------------------------
1:                 //**************** INCLUDES ****************//
2:                 #include <pic.h>
3:                 #include <pic12f6x.h>
4:                 
5:                 
6:                 //***************** DEFINES *****************//
7:                 #define BIT(x) 			(1 << x)
8:                 #define CLEARBITS(x,y) 	(x &= (~y))
9:                 #define CLEARBIT(x,y) 	CLEARBITS(x, BIT(y))
10:                #define SETBITS(x,y) 	(x |= y)
11:                #define SETBIT(x,y) 	SETBITS(x, BIT(y))
12:                #define BITVAL(x,y) 	((x>>y) & 1)
13:                
14:                #ifndef _XTAL_FREQ
15:                 // Unless already defined assume 4MHz system frequency
16:                 // This definition is required to calibrate __delay_us() and __delay_ms()
17:                 #define _XTAL_FREQ 4000000
18:                #endif
19:                
20:                
21:                //************** CONFIGURATION **************//
22:                __CONFIG(INTCLK & WDTDIS & PWRTEN & MCLREN & BORDIS & UNPROTECT & UNPROTECT);
23:                
24:                
25:                //********** FUNCTION DECLARATIONS **********//
26:                void PIC_init(void);
27:                
28:                
29:                //********* FUNCTION DEFINITIONS  **********//
30:                void PIC_init(void)
31:                {
32:                	// Initialize
33:                	di();				// Disable global IT
   3E4    138B     BCF 0xb, 0x7
34:                	CMCON = 0x07;		// Comparator Off
   3E5    3007     MOVLW 0x7
   3E6    1283     BCF 0x3, 0x5
   3E7    0099     MOVWF 0x19
35:                	ADCON0 = 0x00;		// A/D Off
   3E8    019F     CLRF 0x1f
36:                	ANSEL = 0x00;		// Digital I/O
   3E9    1683     BSF 0x3, 0x5
   3EA    019F     CLRF 0x1f
37:                	TRISIO = 0x08;		// GP3: Input, Other All: Output
   3EB    3008     MOVLW 0x8
   3EC    0085     MOVWF 0x5
38:                	GPIO = 0x00;		// Init Value on the I/O Port
   3ED    1283     BCF 0x3, 0x5
   3EE    0185     CLRF 0x5
39:                }
   3EF    0008     RETURN
40:                
41:                
42:                //****************** MAIN ******************//
43:                void main()
44:                {
45:                	PIC_init();
   3F0    23E4     CALL 0x3e4
   3F1    2BF2     GOTO 0x3f2
46:                //	GPIO2 = 1;
47:                	while(1)
   3FD    2BF2     GOTO 0x3f2
48:                	{
49:                		GPIO2 = !GPIO2;		// Toggle GP2
   3F2    3004     MOVLW 0x4
   3F3    1283     BCF 0x3, 0x5
   3F4    0685     XORWF 0x5, F
50:                		__delay_ms(1);	// Wait ---> f = 1Hz
   3F5    30F9     MOVLW 0xf9
   3F6    00A0     MOVWF 0x20
   3F7    0064     CLRWDT
   3F8    0BA0     DECFSZ 0x20, F
   3F9    2BF7     GOTO 0x3f7
   3FA    2BFB     GOTO 0x3fb
   3FB    0064     CLRWDT
   3FC    2BF2     GOTO 0x3f2
51:                	} //while
52:                }
   3FE    2800     GOTO 0
