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

📄 main.s

📁 meg16 的所有功能实例
💻 S
字号:
	.module main.c
	.area data(ram, con, rel)
_BitTab::
	.blkb 2
	.area idata
	.byte 254,253
	.area data(ram, con, rel)
	.blkb 2
	.area idata
	.byte 251,247
	.area data(ram, con, rel)
	.dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管测试\main.c
	.dbsym e BitTab _BitTab A[4:4]c
_DispTab::
	.blkb 2
	.area idata
	.byte 63,6
	.area data(ram, con, rel)
	.dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管测试\main.c
	.blkb 2
	.area idata
	.byte 91,'O
	.area data(ram, con, rel)
	.dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管测试\main.c
	.blkb 2
	.area idata
	.byte 'f,'m
	.area data(ram, con, rel)
	.dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管测试\main.c
	.blkb 2
	.area idata
	.byte 125,7
	.area data(ram, con, rel)
	.dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管测试\main.c
	.blkb 2
	.area idata
	.byte 127,'o
	.area data(ram, con, rel)
	.dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管测试\main.c
	.dbsym e DispTab _DispTab A[10:10]c
_DISP_DATA::
	.blkb 2
	.area idata
	.byte 2,0
	.area data(ram, con, rel)
	.dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管测试\main.c
	.blkb 2
	.area idata
	.byte 0,9
	.area data(ram, con, rel)
	.dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管测试\main.c
	.dbsym e DISP_DATA _DISP_DATA A[4:4]c
	.area text(rom, con, rel)
	.dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管测试\main.c
	.dbfunc e Delay_us _Delay_us fV
;           time -> R16,R17
	.even
_Delay_us::
	.dbline -1
	.dbline 48
; /****************************************Copyright (c)**************************************************
; **                               ADEmbed Development Co.,LTD.                                    
; **                                 http://www.adembed.com
; **--------------File Info-------------------------------------------------------------------------------
; ** File name:			main.c
; ** Last modified Date:  2008-12-13
; ** Last Version:		1.0
; ** Descriptions:		StopWatch.
; ** 
; **------------------------------------------------------------------------------------------------------
; ** Created by:			junbolu
; ** Created date:		2008-12-13
; ** Version:				1.0
; ** Descriptions:		
; **
; **------------------------------------------------------------------------------------------------------
; ** Modified by:
; ** Modified date:
; ** Version:
; ** Descriptions:
; **
; **------------------------------------------------------------------------------------------------------
; **ICC-AVR application builder : 2008-12-13
; **Target : M16
; **Crystal: 7.3728Mhz
; **PA0~PA7口接LED的段码
; **PB0~PB3口接LED的位选
; **描述:这是一个LED数码管测试程序。采用共阴LED数码管,动态显示固定数字2009。
; **      没有一点多余的代码,清晰明了。
; **
; **涉及知识点:
; **          DO输出
; **          for 循环的应用
; **          数组的简单应用
; *******************************************************************************************************/
; 
; #include<iom16v.h>
; #include<macros.h>
; 
; unsigned char DISP_NUM;							//显示的位数
; unsigned char BitTab[]={0xFE,0xFD,0xFB,0xF7};	//三位位选码
; unsigned char DispTab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //LED字形码
; unsigned char DISP_DATA[4]={2,0,0,9};		    //显示的数字
; 
; void Display(void);
; 
; void Delay_us(unsigned int time)
; {
L2:
	.dbline 49
L3:
	.dbline 49
; while(time--);
	movw R2,R16
	subi R16,1
	sbci R17,0
	tst R2
	brne L2
	tst R3
	brne L2
X0:
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r time 16 i
	.dbend
	.dbfunc e Delay_ms _Delay_ms fV
;           time -> R20,R21
	.even
_Delay_ms::
	xcall push_gset1
	movw R20,R16
	.dbline -1
	.dbline 53
; }
; 
; void Delay_ms(unsigned int time)
; {
	xjmp L7
L6:
	.dbline 55
	.dbline 56
	ldi R16,10000
	ldi R17,39
	xcall _Delay_us
	.dbline 57
L7:
	.dbline 54
; while(time--)
	movw R2,R20
	subi R20,1
	sbci R21,0
	tst R2
	brne L6
	tst R3
	brne L6
X1:
	.dbline -2
L5:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r time 20 i
	.dbend
	.dbfunc e Display _Display fV
	.even
_Display::
	.dbline -1
	.dbline 62
	.dbline 63
	clr R2
	out 0x1b,R2
	.dbline 64
	ldi R24,<_BitTab
	ldi R25,>_BitTab
	lds R30,_DISP_NUM
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	out 0x18,R2
	.dbline 65
	ldi R24,<_DISP_DATA
	ldi R25,>_DISP_DATA
	lds R30,_DISP_NUM
	clr R31
	add R30,R24
	adc R31,R25
	ldd R30,z+0
	clr R31
	ldi R24,<_DispTab
	ldi R25,>_DispTab
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	out 0x1b,R2
	.dbline 68
	lds R24,_DISP_NUM
	subi R24,255    ; addi 1
	sts _DISP_NUM,R24
	.dbline 69
	cpi R24,4
	brne L10
	.dbline 70
	clr R2
	sts _DISP_NUM,R2
L10:
	.dbline -2
L9:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e main _main fV
	.even
_main::
	.dbline -1
	.dbline 74
; 	{
; 	Delay_us(10000);
; 	}
; }
; 
; //显示函数,DISP_NUM决定显示哪个LED
; void Display(void)		
; {
;  PORTA=0x00;					   			//清除显示再位选
;  PORTB=BitTab[DISP_NUM];					//PB口接位选
;  PORTA=DispTab[DISP_DATA[DISP_NUM]];		//PA口接LED的段码
;  
; 
;  DISP_NUM++;								//先显示低位,再显示高位
;  if(DISP_NUM==4)
;     DISP_NUM=0;
; }
; 
; void main(void)
; {
	.dbline 75
;  DDRA=0XFF;
	ldi R24,255
	out 0x1a,R24
	.dbline 76
;  PORTA=0X00;
	clr R2
	out 0x1b,R2
	.dbline 77
;  DDRB=0X0F;
	ldi R24,15
	out 0x17,R24
	.dbline 78
;  PORTB=0X00;
	out 0x18,R2
	.dbline 80
;  
;  DISP_NUM=0;
	sts _DISP_NUM,R2
	.dbline 81
;  for(;;)
L13:
	.dbline 82
	.dbline 83
	ldi R16,200
	ldi R17,0
	xcall _Delay_us
	.dbline 84
	xcall _Display
	.dbline 85
	.dbline 81
	.dbline 81
	xjmp L13
X2:
	.dbline -2
L12:
	.dbline 0 ; func end
	ret
	.dbend
	.area bss(ram, con, rel)
	.dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管测试\main.c
_DISP_NUM::
	.blkb 1
	.dbsym e DISP_NUM _DISP_NUM c

⌨️ 快捷键说明

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