main.lis
来自「详细介绍M8两版间通讯」· LIS 代码 · 共 152 行
LIS
152 行
.module Main.c
.area text(rom, con, rel)
0000 .dbfile G:\Mega8程序\测试MegaOSCCAL\Main.c
0000 .dbfunc e main _main fV
0000 ; i -> <dead>
0000 ; cTemp -> R20
.even
0000 _main::
0000 .dbline -1
0000 .dbline 14
0000 ; #include <macros.h>
0000 ; #include<iom8v.h>
0000 ;
0000 ; extern unsigned char charInput;
0000 ;
0000 ; extern void uart_init(void);
0000 ; extern int puts(char *s);
0000 ; extern void putchar(unsigned char c);
0000 ;
0000 ; void delay_us(int time);
0000 ; void delay_ms(unsigned int time);
0000 ;
0000 ; void main(void)
0000 ; {
0000 .dbline 17
0000 ; unsigned char cTemp;
0000 ; unsigned char i;
0000 ; for(cTemp=0x80;cTemp!=0xff;cTemp++)
0000 40E8 ldi R20,128
0002 0FC0 rjmp L5
0004 L2:
0004 .dbline 18
0004 .dbline 19
0004 F894 cli
0006 .dbline 20
0006 41BF out 0x31,R20
0008 .dbline 21
0008 00D0 rcall _uart_init
000A .dbline 22
000A 7894 sei
000C .dbline 23
000C 0AE0 ldi R16,10
000E 10E0 ldi R17,0
0010 13D0 rcall _delay_ms
0012 .dbline 24
0012 03E6 ldi R16,99
0014 00D0 rcall _putchar
0016 .dbline 25
0016 06E6 ldi R16,102
0018 00D0 rcall _putchar
001A .dbline 26
001A 04EF ldi R16,500
001C 11E0 ldi R17,1
001E 0CD0 rcall _delay_ms
0020 .dbline 27
0020 L3:
0020 .dbline 17
0020 4395 inc R20
0022 L5:
0022 .dbline 17
0022 4F3F cpi R20,255
0024 79F7 brne L2
0026 .dbline -2
0026 L1:
0026 .dbline 0 ; func end
0026 0895 ret
0028 .dbsym l i 1 c
0028 .dbsym r cTemp 20 c
0028 .dbend
0028 .dbfunc e delay_us _delay_us fV
0028 ; time -> R16,R17
.even
0028 _delay_us::
0028 .dbline -1
0028 .dbline 32
0028 ; {
0028 ; CLI();
0028 ; OSCCAL=cTemp;
0028 ; uart_init();
0028 ; SEI();
0028 ; delay_ms(10);
0028 ; putchar('c');
0028 ; putchar('f');
0028 ; delay_ms(500);
0028 ; }
0028 ; }
0028 ;
0028 ;
0028 ; void delay_us(int time)
0028 ; {
0028 L7:
0028 .dbline 34
0028 ; do
0028 ; {
0028 .dbline 35
0028 ; time--;
0028 0150 subi R16,1
002A 1040 sbci R17,0
002C .dbline 36
002C ; }
002C L8:
002C .dbline 37
002C ; while (time>1);
002C 81E0 ldi R24,1
002E 90E0 ldi R25,0
0030 8017 cp R24,R16
0032 9107 cpc R25,R17
0034 CCF3 brlt L7
0036 .dbline -2
0036 L6:
0036 .dbline 0 ; func end
0036 0895 ret
0038 .dbsym r time 16 I
0038 .dbend
0038 .dbfunc e delay_ms _delay_ms fV
0038 ; time -> R20,R21
.even
0038 _delay_ms::
0038 00D0 rcall push_gset1
003A A801 movw R20,R16
003C .dbline -1
003C .dbline 41
003C ; }
003C ; /* 毫秒级延时程序 */
003C ; void delay_ms(unsigned int time)
003C ; {
003C 05C0 rjmp L12
003E L11:
003E .dbline 43
003E .dbline 44
003E 08EE ldi R16,1000
0040 13E0 ldi R17,3
0042 F2DF rcall _delay_us
0044 .dbline 45
0044 4150 subi R20,1
0046 5040 sbci R21,0
0048 .dbline 46
0048 L12:
0048 .dbline 42
0048 ; while(time!=0)
0048 4030 cpi R20,0
004A 4507 cpc R20,R21
004C C1F7 brne L11
004E X0:
004E .dbline -2
004E L10:
004E 00D0 rcall pop_gset1
0050 .dbline 0 ; func end
0050 0895 ret
0052 .dbsym r time 20 i
0052 .dbend
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?