📄 usart_test.s
字号:
.module usart_test.c
.area text(rom, con, rel)
.dbfile D:\串口校准发送测试\usart_test.c
.dbfunc e uart0_init _uart0_init fV
.even
_uart0_init::
.dbline -1
.dbline 5
; #include "iom48v.h"
; #include "macros.h"
;
; void uart0_init(void)
; {
.dbline 6
; UCSR0A = 0x02; //使用波特率倍增,不使用多从机模式
ldi R24,2
sts 192,R24
.dbline 7
; UCSR0C = 0x06; //异步串口模式,禁止奇偶校验,1位停止位,8-bit桢模式
ldi R24,6
sts 194,R24
.dbline 8
; UBRR0L = 0x0C; //设置波特率,9600
ldi R24,12
sts 196,R24
.dbline 9
; UBRR0H = 0x00;
clr R2
sts 197,R2
.dbline 10
; UCSR0B = 0x98; //允许接收完成中断使能,禁止发送完成中断,禁止发送寄存器空中断,允许接收,允许发送
ldi R24,152
sts 193,R24
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbend
.dbfunc e Delay_ms _Delay_ms fV
; n -> R20
; Time -> R16,R17
.even
_Delay_ms::
rcall push_gset1
.dbline -1
.dbline 14
; }
;
; void Delay_ms(unsigned int Time)
; {
.dbline 15
; unsigned char n=0;
clr R20
rjmp L4
L3:
.dbline 17
; while(Time>0)
; {
.dbline 18
; for (n=1;n<187;n++)
ldi R20,1
rjmp L9
L6:
.dbline 19
.dbline 20
nop
.dbline 21
L7:
.dbline 18
inc R20
L9:
.dbline 18
cpi R20,187
brlo L6
.dbline 22
subi R16,1
sbci R17,0
.dbline 23
L4:
.dbline 16
cpi R16,0
cpc R16,R17
brne L3
X0:
.dbline -2
L2:
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r n 20 c
.dbsym r Time 16 i
.dbend
.dbfunc e main _main fV
; SendData -> R20
.even
_main::
.dbline -1
.dbline 27
; {
; NOP();
; }
; Time--;
; }
; }
;
; void main (void)
; {
.dbline 28
; unsigned char SendData = 0xFF;
ldi R20,255
.dbline 30
;
; uart0_init();
rcall _uart0_init
.dbline 33
;
; do
; {
L14:
.dbline 34
L15:
.dbline 34
; while(!(UCSR0A&(1<<UDRE0)));
lds R2,192
sbrs R2,5
rjmp L14
.dbline 35
; UDR0 = SendData;
sts 198,R20
.dbline 36
; SendData--;
dec R20
.dbline 38
; // Delay_ms(5);
; }
L12:
.dbline 39
; while(SendData != 0xFF);
cpi R20,255
brne L15
L17:
.dbline 41
L18:
.dbline 41
rjmp L17
X1:
.dbline -2
L10:
.dbline 0 ; func end
ret
.dbsym r SendData 20 c
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -