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

📄 mcu.s

📁 《Proteus从入门到精通100例》
💻 S
字号:
	.module MCU.c
	.area lit(rom, con, rel)
_SEGtable::
	.byte 192,249
	.byte 164,176
	.byte 153,146
	.byte 130,248
	.byte 128,144
	.byte 136,131
	.byte 198,161
	.byte 134,142
	.dbfile D:\当前项目\PROTEU~2\Proteus实例\第十章\10.8\MCU.c
	.dbsym e SEGtable _SEGtable A[16:16]kc
	.area text(rom, con, rel)
	.dbfile D:\当前项目\PROTEU~2\Proteus实例\第十章\10.8\MCU.c
	.dbfunc e main _main fI
;        counter -> R16
;              i -> R18
;              j -> R20
	.even
_main::
	.dbline -1
	.dbline 5
; #include <iom16v.h>
; unsigned char const SEGtable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
; //"0"~"F"对应的字形编码,共阳极八段数码管
; main()
; {
	.dbline 7
;   unsigned char i,j;
;   unsigned char counter=0;                //指示当前显示的数字或者字符在表格中存放位置
	clr R16
	.dbline 8
;   DDRD = 0xFF;
	ldi R24,255
	out 0x11,R24
	.dbline 9
;   PORTD = 0xFF;  						  //初始化PORTA
	out 0x12,R24
	xjmp L3
L2:
	.dbline 11
;   while(1)
;   {
	.dbline 12
;     for(i=0;i<250;i++)                    //软件延时
	clr R18
	xjmp L8
L5:
	.dbline 13
;     {
	.dbline 14
	clr R20
	xjmp L12
L9:
	.dbline 14
L10:
	.dbline 14
	inc R20
L12:
	.dbline 14
;       for(j=0;j<250;j++);
	cpi R20,250
	brlo L9
	.dbline 15
	clr R20
	xjmp L16
L13:
	.dbline 15
L14:
	.dbline 15
	inc R20
L16:
	.dbline 15
;       for(j=0;j<250;j++);
	cpi R20,250
	brlo L13
	.dbline 16
	clr R20
	xjmp L20
L17:
	.dbline 16
L18:
	.dbline 16
	inc R20
L20:
	.dbline 16
;       for(j=0;j<250;j++);
	cpi R20,250
	brlo L17
	.dbline 17
	clr R20
	xjmp L24
L21:
	.dbline 17
L22:
	.dbline 17
	inc R20
L24:
	.dbline 17
;       for(j=0;j<250;j++);
	cpi R20,250
	brlo L21
	.dbline 18
	clr R20
	xjmp L28
L25:
	.dbline 18
L26:
	.dbline 18
	inc R20
L28:
	.dbline 18
	cpi R20,250
	brlo L25
	.dbline 19
L6:
	.dbline 12
	inc R18
L8:
	.dbline 12
	cpi R18,250
	brlo L5
	.dbline 20
;       for(j=0;j<250;j++);
;     }               
;     if(counter>=15)                       //已经显示到F,回到0继续显示
	cpi R16,15
	brlo L29
	.dbline 21
;     {
	.dbline 22
;       counter = 0;
	clr R16
	.dbline 23
;     }
	xjmp L30
L29:
	.dbline 25
;     else
;     {
	.dbline 26
;       counter++;                          //数字字符增加
	inc R16
	.dbline 27
;     }
L30:
	.dbline 28
	ldi R24,<_SEGtable
	ldi R25,>_SEGtable
	mov R30,R16
	clr R31
	add R30,R24
	adc R31,R25
	lpm R30,Z
	out 0x12,R30
	.dbline 29
L3:
	.dbline 10
	xjmp L2
X0:
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r counter 16 c
	.dbsym r i 18 c
	.dbsym r j 20 c
	.dbend

⌨️ 快捷键说明

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