⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ocm4x8c.s

📁 OCMJ4*8lcd液晶程序(汇编) OCMJ4*8lcd液晶程序(汇编)
💻 S
📖 第 1 页 / 共 3 页
字号:
	.module OCM4X8C.c
	.area text(rom, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\test\OCM4X8C.c
	.dbfunc e port_init _port_init fV
	.even
_port_init::
	.dbline -1
	.dbline 46
; //ICC-AVR application builder : 2003-8-13 10:54:14
; // Target : 8515
; // Crystal: 8.0000Mhz
; 
; #include <io8515v.h>
; #include <macros.h>
; 
; /*   定义OCMJ4X8端口   */
; //DATA_PORT=PORTA
; #define data_port PORTA
; //ASK=PORTA.7
; //#define ask (PINA&0x80)
; //RS=PORTC.2
; 
; /*
; #define set_cs asm("sbi 0x15,2")
; #define clr_cs asm("cbi 0x15,2")
; //E=PORTC.0
; #define set_sclk asm("sbi 0x15,0")
; #define clr_sclk asm("cbi 0x15,0")
; //RW=PORTD.6
; #define set_std asm("sbi 0x12,6")
; #define clr_std asm("cbi 0x12,6") 
; //RW=PORTC.1
; #define set_reset asm("sbi 0x12,1")
; #define clr_reset asm("cbi 0x12,1")
; */
; 
; 
; 
; #define set_cs PORTD|=0X80 
; #define clr_cs PORTD&=~0X80 
; 
; #define set_sclk PORTD|=0X20
; #define clr_sclk PORTD&=~0x20 
; 
; #define set_std PORTD|=0X10 
; #define clr_std PORTD&=~0x10 
; 
; #define set_reset PORTD|=0X40
; #define clr_reset PORTD&=~0x40 
; 
; 
; 
; void port_init(void)
; {
	.dbline 47
;  PORTA = 0xFF;
	ldi R24,255
	out 0x1b,R24
	.dbline 48
;  DDRA  = 0x00;
	clr R2
	out 0x1a,R2
	.dbline 49
;  PORTB = 0xFF;
	out 0x18,R24
	.dbline 50
;  DDRB  = 0x00;
	out 0x17,R2
	.dbline 51
;  PORTC = 0xFF;
	out 0x15,R24
	.dbline 52
;  DDRC  = 0x00;
	out 0x14,R2
	.dbline 53
;  PORTD = 0xFF;
	out 0x12,R24
	.dbline 54
;  DDRD  = 0x00; 
	out 0x11,R2
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e init_devices _init_devices fV
	.even
_init_devices::
	.dbline -1
	.dbline 59
; }
; 
; //call this routine to initialise all peripherals
; void init_devices(void)
; {
	.dbline 61
;  //stop errant interrupts until set up
;  CLI(); //disable all interrupts
	cli
	.dbline 62
;  port_init();
	rcall _port_init
	.dbline 64
; 
;  MCUCR = 0x00;
	clr R2
	out 0x35,R2
	.dbline 65
;  GIMSK = 0x00;
	out 0x3b,R2
	.dbline 66
;  TIMSK = 0x00;
	out 0x39,R2
	.dbline 67
;  SEI(); //re-enable interrupts
	sei
	.dbline -2
L2:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e delay _delay fV
;              i -> R16,R17
	.even
_delay::
	.dbline -1
	.dbline 72
;  //all peripherals are now initialised
; }
; //====================================================
; void delay(void)
; {
	.dbline 74
	clr R16
	clr R17
	rjmp L7
L4:
	.dbline 74
L5:
	.dbline 74
	subi R16,255  ; offset = 1
	sbci R17,255
L7:
	.dbline 74
; unsigned int i;
; for(i=0;i<500;i++);
	cpi R16,244
	ldi R30,1
	cpc R17,R30
	brlo L4
	.dbline -2
L3:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 i
	.dbend
	.dbfunc e start_ocm4x8c _start_ocm4x8c fV
	.even
_start_ocm4x8c::
	.dbline -1
	.dbline 78
; }
; 
; void start_ocm4x8c(void)
; {
	.dbline 79
; DDRC=0XFF;
	ldi R24,255
	out 0x14,R24
	.dbline 80
; DDRD=0XFF;
	out 0x11,R24
	.dbline 83
; 
; 
; set_std;set_std;
	sbi 0x12,4
	.dbline 83
	sbi 0x12,4
	.dbline 84
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 84
	cbi 0x12,5
	.dbline 85
; set_cs;set_cs;
	sbi 0x12,7
	.dbline 85
	sbi 0x12,7
	.dbline 87
; 	
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 87
	sbi 0x12,5
	.dbline 88
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 88
	cbi 0x12,5
	.dbline 89
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 89
	sbi 0x12,5
	.dbline 90
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 90
	cbi 0x12,5
	.dbline 91
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 91
	sbi 0x12,5
	.dbline 92
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 92
	cbi 0x12,5
	.dbline 93
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 93
	sbi 0x12,5
	.dbline 94
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 94
	cbi 0x12,5
	.dbline 95
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 95
	sbi 0x12,5
	.dbline 96
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 96
	cbi 0x12,5
	.dbline 98
; 
; clr_std;clr_std;
	cbi 0x12,4
	.dbline 98
	cbi 0x12,4
	.dbline 99
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 99
	sbi 0x12,5
	.dbline 100
; clr_sclk;clr_sclk;	
	cbi 0x12,5
	.dbline 100
	cbi 0x12,5
	.dbline -2
L8:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e write_ocm4x8c _write_ocm4x8c fV
;              i -> <dead>
;            dat -> R16
	.even
_write_ocm4x8c::
	.dbline -1
	.dbline 104
; }
; 
; void write_ocm4x8c(unsigned char dat)
; {unsigned char i;
	.dbline 105
; clr_std;clr_std;
	cbi 0x12,4
	.dbline 105
	cbi 0x12,4
	.dbline 106
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 106
	sbi 0x12,5
	.dbline 107
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 107
	cbi 0x12,5
	.dbline 108
; if((dat&0x80)==0x80)
	mov R24,R16
	andi R24,128
	cpi R24,128
	brne L10
	.dbline 109
; {set_std;set_std;}
	.dbline 109
	sbi 0x12,4
	.dbline 109
	sbi 0x12,4
	.dbline 109
	rjmp L11
L10:
	.dbline 111
; else
; {clr_std;clr_std;}
	.dbline 111
	cbi 0x12,4
	.dbline 111
	cbi 0x12,4
	.dbline 111
L11:
	.dbline 112
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 112
	sbi 0x12,5
	.dbline 113
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 113
	cbi 0x12,5
	.dbline 114
; if((dat&0x40)==0x40)
	mov R24,R16
	andi R24,64
	cpi R24,64
	brne L12
	.dbline 115
; {set_std;set_std;}
	.dbline 115
	sbi 0x12,4
	.dbline 115
	sbi 0x12,4
	.dbline 115
	rjmp L13
L12:
	.dbline 117
; else
; {clr_std;clr_std;}
	.dbline 117
	cbi 0x12,4
	.dbline 117
	cbi 0x12,4
	.dbline 117
L13:
	.dbline 118
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 118
	sbi 0x12,5
	.dbline 119
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 119
	cbi 0x12,5
	.dbline 120
; if((dat&0x20)==0x20)
	mov R24,R16
	andi R24,32
	cpi R24,32
	brne L14
	.dbline 121
; {set_std;set_std;}
	.dbline 121
	sbi 0x12,4
	.dbline 121
	sbi 0x12,4
	.dbline 121
	rjmp L15
L14:
	.dbline 123
; else
; {clr_std;clr_std;}
	.dbline 123
	cbi 0x12,4
	.dbline 123
	cbi 0x12,4
	.dbline 123
L15:
	.dbline 124
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 124
	sbi 0x12,5
	.dbline 125
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 125
	cbi 0x12,5
	.dbline 126
; if((dat&0x10)==0x10)
	mov R24,R16
	andi R24,16
	cpi R24,16
	brne L16
	.dbline 127
; {set_std;set_std;}
	.dbline 127
	sbi 0x12,4
	.dbline 127
	sbi 0x12,4
	.dbline 127
	rjmp L17
L16:
	.dbline 129
; else
; {clr_std;clr_std;}
	.dbline 129
	cbi 0x12,4
	.dbline 129
	cbi 0x12,4
	.dbline 129
L17:
	.dbline 130
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 130
	sbi 0x12,5
	.dbline 131
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 131
	cbi 0x12,5
	.dbline 133
; 
; clr_std;clr_std;
	cbi 0x12,4
	.dbline 133
	cbi 0x12,4
	.dbline 134
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 134
	sbi 0x12,5
	.dbline 135
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 135
	cbi 0x12,5
	.dbline 136
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 136
	sbi 0x12,5
	.dbline 137
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 137
	cbi 0x12,5
	.dbline 138
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 138
	sbi 0x12,5
	.dbline 139
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 139
	cbi 0x12,5
	.dbline 140
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 140
	sbi 0x12,5
	.dbline 141
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 141
	cbi 0x12,5
	.dbline 143
; 
; if((dat&0x08)==0x08)
	mov R24,R16
	andi R24,8
	cpi R24,8
	brne L18
	.dbline 144
; {set_std;set_std;}
	.dbline 144
	sbi 0x12,4
	.dbline 144
	sbi 0x12,4
	.dbline 144
	rjmp L19
L18:
	.dbline 146
; else
; {clr_std;clr_std;}
	.dbline 146
	cbi 0x12,4
	.dbline 146
	cbi 0x12,4
	.dbline 146
L19:
	.dbline 147
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 147
	sbi 0x12,5
	.dbline 148
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 148
	cbi 0x12,5
	.dbline 149
; if((dat&0x04)==0x04)
	mov R24,R16
	andi R24,4
	cpi R24,4
	brne L20
	.dbline 150
; {set_std;set_std;}
	.dbline 150
	sbi 0x12,4
	.dbline 150
	sbi 0x12,4
	.dbline 150
	rjmp L21
L20:
	.dbline 152
; else
; {clr_std;clr_std;}
	.dbline 152
	cbi 0x12,4
	.dbline 152
	cbi 0x12,4
	.dbline 152
L21:
	.dbline 153
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 153
	sbi 0x12,5
	.dbline 154
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 154
	cbi 0x12,5
	.dbline 155
; if((dat&0x02)==0x02)
	mov R24,R16
	andi R24,2
	cpi R24,2
	brne L22
	.dbline 156
; {set_std;set_std;}
	.dbline 156
	sbi 0x12,4
	.dbline 156
	sbi 0x12,4
	.dbline 156
	rjmp L23
L22:
	.dbline 158
; else
; {clr_std;clr_std;}
	.dbline 158
	cbi 0x12,4
	.dbline 158
	cbi 0x12,4
	.dbline 158
L23:
	.dbline 159
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 159
	sbi 0x12,5
	.dbline 160
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 160
	cbi 0x12,5
	.dbline 161
; if((dat&0x01)==0x01)
	mov R24,R16
	andi R24,1
	cpi R24,1
	brne L24
	.dbline 162
; {set_std;set_std;}
	.dbline 162
	sbi 0x12,4
	.dbline 162
	sbi 0x12,4
	.dbline 162
	rjmp L25
L24:
	.dbline 164
; else
; {clr_std;clr_std;}
	.dbline 164
	cbi 0x12,4
	.dbline 164
	cbi 0x12,4
	.dbline 164
L25:
	.dbline 165
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 165
	sbi 0x12,5
	.dbline 166
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 166
	cbi 0x12,5
	.dbline 168
; 
; clr_std;clr_std;
	cbi 0x12,4
	.dbline 168
	cbi 0x12,4
	.dbline 169
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 169
	sbi 0x12,5
	.dbline 170
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 170
	cbi 0x12,5
	.dbline 171
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 171
	sbi 0x12,5
	.dbline 172
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 172
	cbi 0x12,5
	.dbline 173
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 173
	sbi 0x12,5
	.dbline 174
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 174
	cbi 0x12,5
	.dbline 175
; set_sclk;set_sclk;
	sbi 0x12,5
	.dbline 175
	sbi 0x12,5
	.dbline 176
; clr_sclk;clr_sclk;
	cbi 0x12,5
	.dbline 176
	cbi 0x12,5
	.dbline 178
; 
; clr_cs;clr_cs;
	cbi 0x12,7
	.dbline 178
	cbi 0x12,7
	.dbline 179

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -