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

📄 main.s

📁 用M16控制,定时器工作于计数方式,计数值同步显示在LCD上
💻 S
字号:
	.module main.c
	.area text(rom, con, rel)
	.dbfile E:\新建文件夹\conter_icc\cfile\main.c
	.area data(ram, con, rel)
	.dbfile E:\新建文件夹\conter_icc\cfile\main.c
_data::
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile E:\新建文件夹\conter_icc\cfile\main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile E:\新建文件夹\conter_icc\cfile\main.c
	.dbfile E:\新建文件夹\conter_icc\includes\main.h
	.dbsym e data _data A[4:4]c
_CNT::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile E:\新建文件夹\conter_icc\includes\main.h
	.dbsym e CNT _CNT c
_table::
	.blkb 2
	.area idata
	.byte 63,6
	.area data(ram, con, rel)
	.dbfile E:\新建文件夹\conter_icc\includes\main.h
	.blkb 2
	.area idata
	.byte 91,'O
	.area data(ram, con, rel)
	.dbfile E:\新建文件夹\conter_icc\includes\main.h
	.blkb 2
	.area idata
	.byte 'f,'m
	.area data(ram, con, rel)
	.dbfile E:\新建文件夹\conter_icc\includes\main.h
	.blkb 2
	.area idata
	.byte 125,7
	.area data(ram, con, rel)
	.dbfile E:\新建文件夹\conter_icc\includes\main.h
	.blkb 2
	.area idata
	.byte 127,'o
	.area data(ram, con, rel)
	.dbfile E:\新建文件夹\conter_icc\includes\main.h
	.dbfile E:\新建文件夹\conter_icc\cfile\main.c
	.dbsym e table _table A[10:10]c
	.area text(rom, con, rel)
	.dbfile E:\新建文件夹\conter_icc\cfile\main.c
	.dbfunc e display _display fV
;            sel -> R20,R21
;              i -> R22
;              p -> R10,R11
	.even
_display::
	xcall push_xgsetF00C
	movw R10,R16
	.dbline -1
	.dbline 24
; #define MAIN_C
; #include "includes.h"
; /***************************************************/
; /*T0工作于计数方式*/
; /*计数脉冲从PB0(T0)脚输入*/
; /***************************************************/
; //数码管字形表
; //数码管为公阴极
; unsigned char table[10] = 
; {
;   0x3f,   //0
;   0x06,   //1
;   0x5b,   //2
;   0x4f,   //3
;   0x66,   //4
;   0x6d,   //5 
;   0x7d,   //6 
;   0x07,   //7 
;   0x7f,   //8
;   0x6f    //9
; };
; 
; void display(unsigned char *p)
; {
	.dbline 26
;     unsigned char i;
;     unsigned sel = 0x08;
	ldi R20,8
	ldi R21,0
	.dbline 27
;     for(i=0;i<4;i++)
	clr R22
	xjmp L5
L2:
	.dbline 28
;     {
	.dbline 29
;         ConPort = ~sel;
	movw R2,R20
	com R2
	com R3
	out 0x15,R2
	.dbline 30
;         OutPort = table[p[i]];
	mov R30,R22
	clr R31
	add R30,R10
	adc R31,R11
	ldd R30,z+0
	clr R31
	ldi R24,<_table
	ldi R25,>_table
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	out 0x1b,R2
	.dbline 31
;         delay_nms(1);
	ldi R16,1
	ldi R17,0
	xcall _delay_nms
	.dbline 32
;         sel = sel>>1;
	lsr R21
	ror R20
	.dbline 33
;     }
L3:
	.dbline 27
	inc R22
L5:
	.dbline 27
	cpi R22,4
	brlo L2
X0:
	.dbline -2
L1:
	.dbline 0 ; func end
	xjmp pop_xgsetF00C
	.dbsym r sel 20 i
	.dbsym r i 22 c
	.dbsym r p 10 pc
	.dbend
	.dbfunc e main _main fV
;           load -> R10
	.even
_main::
	.dbline -1
	.dbline 41
; }
; 
; 
; 
; 
; 
; void main(void)
; {
	.dbline 43
;     unsigned char load;
;     InitIo();
	xcall _InitIo
	.dbline 44
;     PORTA = 0xff;  //点亮测试所有数码管
	ldi R24,255
	out 0x1b,R24
	.dbline 45
;     PORTC = 0x00;   
	clr R2
	out 0x15,R2
	.dbline 46
;     delay_nms(10);
	ldi R16,10
	ldi R17,0
	xcall _delay_nms
	.dbline 47
;     PORTC = 0xff;   //熄灭所有数码管
	ldi R24,255
	out 0x15,R24
	.dbline 48
;     TCCR0 |= (1<<CS02)|(1<<CS01);//T/C0工作于计数方式,下降沿触发
	in R24,0x33
	ori R24,6
	out 0x33,R24
	.dbline 49
;     TCNT0 = CNT;    //计数初值
	lds R2,_CNT
	out 0x32,R2
	xjmp L8
L7:
	.dbline 51
;     while(1)
;     {
	.dbline 52
;         load = TCNT0;
	in R10,0x32
	.dbline 53
;         process(load,data);
	ldi R18,<_data
	ldi R19,>_data
	mov R16,R10
	clr R17
	xcall _process
	.dbline 54
;         display(data);
	ldi R16,<_data
	ldi R17,>_data
	xcall _display
	.dbline 55
;     }
L8:
	.dbline 50
	xjmp L7
X1:
	.dbline -2
L6:
	.dbline 0 ; func end
	ret
	.dbsym r load 10 c
	.dbend
	.area bss(ram, con, rel)
	.dbfile E:\新建文件夹\conter_icc\cfile\main.c
_KeyDown::
	.blkb 1
	.dbfile E:\新建文件夹\conter_icc\includes\main.h
	.dbsym e KeyDown _KeyDown c
_KeyUp::
	.blkb 1
	.dbsym e KeyUp _KeyUp c
; }

⌨️ 快捷键说明

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