📄 ocm4x8c.s
字号:
.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 + -