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

📄 pro.s

📁 数字频率计数字频率计数字频率计数字频率计
💻 S
📖 第 1 页 / 共 2 页
字号:
;  }
L25:
	.dbline 159
;  PORTB |=(1<<PB7);                 //74LS393清零
	sbi 0x18,7
	.dbline 160
;  TCNT1H=0;
	clr R2
	out 0x2d,R2
	.dbline 161
;  TCNT1L=0;                        //清空T1计数器
	out 0x2c,R2
	.dbline 162
;  PORTB &=~(1<<PB7);               //使能计数功能
	cbi 0x18,7
	.dbline 163
;  PORTB |=(1<<PB0);                //打开闸门
	sbi 0x18,0
	.dbline 164
;  TCNT2 = 0x80;                    //定时时间1秒
	ldi R24,128
	out 0x24,R24
	.dbline 165
;  TCCR1B = 0x06;
	ldi R24,6
	out 0x2e,R24
	.dbline -2
L24:
	xcall pop_gset2
	ld R2,y+
	out 0x3f,R2
	ld R30,y+
	ld R27,y+
	ld R26,y+
	ld R25,y+
	ld R24,y+
	ld R19,y+
	ld R18,y+
	ld R17,y+
	ld R16,y+
	ld R9,y+
	ld R8,y+
	ld R7,y+
	ld R6,y+
	ld R5,y+
	ld R4,y+
	ld R3,y+
	ld R2,y+
	.dbline 0 ; func end
	reti
	.dbend
	.dbfunc e PutChar _PutChar fV
;           freq -> y+0
	.even
_PutChar::
	xcall push_gset2
	sbiw R28,4
	.dbline -1
	.dbline 169
; }
; 
; void PutChar()
; {
	.dbline 170
;     unsigned long freq=0;
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	std z+0,R20
	std z+1,R21
	std z+2,R22
	std z+3,R23
	.dbline 171
; 	freq=Freq;
	lds R4,_Freq+2
	lds R5,_Freq+2+1
	lds R2,_Freq
	lds R3,_Freq+1
	movw R30,R28
	std z+0,R2
	std z+1,R3
	std z+2,R4
	std z+3,R5
	.dbline 172
;     temp[0]= freq /10000000+0x30;
	ldi R20,128
	ldi R21,150
	ldi R22,152
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall div32u
	movw R2,R16
	movw R4,R18
	ldi R20,48
	ldi R21,0
	ldi R22,0
	ldi R23,0
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	sts _temp,R2
	.dbline 173
;     freq = freq %10000000;
	ldi R20,128
	ldi R21,150
	ldi R22,152
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall mod32u
	movw R30,R28
	std z+0,R16
	std z+1,R17
	std z+2,R18
	std z+3,R19
	.dbline 174
;     temp[1]=freq  /1000000+0x30;
	ldi R20,64
	ldi R21,66
	ldi R22,15
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall div32u
	movw R2,R16
	movw R4,R18
	ldi R20,48
	ldi R21,0
	ldi R22,0
	ldi R23,0
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	sts _temp+1,R2
	.dbline 175
;     freq  =freq  %1000000;
	ldi R20,64
	ldi R21,66
	ldi R22,15
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall mod32u
	movw R30,R28
	std z+0,R16
	std z+1,R17
	std z+2,R18
	std z+3,R19
	.dbline 176
;     temp[2]=freq  /100000+0x30;
	ldi R20,160
	ldi R21,134
	ldi R22,1
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall div32u
	movw R2,R16
	movw R4,R18
	ldi R20,48
	ldi R21,0
	ldi R22,0
	ldi R23,0
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	sts _temp+2,R2
	.dbline 177
;     freq =freq  %100000;
	ldi R20,160
	ldi R21,134
	ldi R22,1
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall mod32u
	movw R30,R28
	std z+0,R16
	std z+1,R17
	std z+2,R18
	std z+3,R19
	.dbline 178
;     temp[3]=freq  /10000+0x30;
	ldi R20,16
	ldi R21,39
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall div32u
	movw R2,R16
	movw R4,R18
	ldi R20,48
	ldi R21,0
	ldi R22,0
	ldi R23,0
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	sts _temp+3,R2
	.dbline 179
;     freq=freq  %10000;
	ldi R20,16
	ldi R21,39
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall mod32u
	movw R30,R28
	std z+0,R16
	std z+1,R17
	std z+2,R18
	std z+3,R19
	.dbline 180
;     temp[4]=freq  /1000+0x30;
	ldi R20,232
	ldi R21,3
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall div32u
	movw R2,R16
	movw R4,R18
	ldi R20,48
	ldi R21,0
	ldi R22,0
	ldi R23,0
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	sts _temp+4,R2
	.dbline 181
;     freq=freq %1000;
	ldi R20,232
	ldi R21,3
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall mod32u
	movw R30,R28
	std z+0,R16
	std z+1,R17
	std z+2,R18
	std z+3,R19
	.dbline 182
;     temp[5]=freq  /100+0x30;
	ldi R20,100
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall div32u
	movw R2,R16
	movw R4,R18
	ldi R20,48
	ldi R21,0
	ldi R22,0
	ldi R23,0
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	sts _temp+5,R2
	.dbline 183
;     freq=freq %100;
	ldi R20,100
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall mod32u
	movw R30,R28
	std z+0,R16
	std z+1,R17
	std z+2,R18
	std z+3,R19
	.dbline 184
;     temp[6]=freq  /10 + 0x30;
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall div32u
	movw R2,R16
	movw R4,R18
	ldi R20,48
	ldi R21,0
	ldi R22,0
	ldi R23,0
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	sts _temp+6,R2
	.dbline 185
;     temp[7]=freq  %10 + 0x30;
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall mod32u
	movw R2,R16
	movw R4,R18
	ldi R20,48
	ldi R21,0
	ldi R22,0
	ldi R23,0
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	sts _temp+7,R2
	.dbline 187
;   
;   LCD12864_gotoXY(3,2);
	ldi R18,2
	ldi R16,3
	xcall _LCD12864_gotoXY
	.dbline 188
;   LCD12864_sendstr(temp);
	ldi R16,<_temp
	ldi R17,>_temp
	xcall _LCD12864_sendstr
	.dbline 189
;   LCD12864_sendstr("Hz");
	ldi R16,<L35
	ldi R17,>L35
	xcall _LCD12864_sendstr
	.dbline -2
L27:
	adiw R28,4
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym l freq 0 l
	.dbend
	.dbfunc e init_devices _init_devices fV
	.even
_init_devices::
	.dbline -1
	.dbline 202
;  /* LCD12864_sendbyte(1, temp[0]);
;   LCD12864_sendbyte(1, temp[1]);
;   LCD12864_sendbyte(1, temp[2]);
;   LCD12864_sendbyte(1, temp[3]);
;   LCD12864_sendbyte(1, temp[4]);
;   LCD12864_sendbyte(1, temp[5]);
;   LCD12864_sendbyte(1, temp[6]);
;   LCD12864_sendbyte(1, temp[7]);*/
;   
; }
; 
; void init_devices(void)
; {
	.dbline 203
;  CLI(); //禁止所有中断
	cli
	.dbline 204
;  MCUCR  = 0x00;
	clr R2
	out 0x35,R2
	.dbline 205
;  GICR   = 0x00;
	out 0x3b,R2
	.dbline 206
;  port_init();
	xcall _port_init
	.dbline 207
;  LCD12864_initial(); 
	xcall _LCD12864_initial
	.dbline 208
;  timer0_init();
	xcall _timer0_init
	.dbline 209
;  timer1_init();
	xcall _timer1_init
	.dbline 210
;  timer2_init();
	xcall _timer2_init
	.dbline 211
;  SEI();//开全局中断
	sei
	.dbline -2
L36:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e main _main fV
	.even
_main::
	.dbline -1
	.dbline 215
; }
; //主函数
; void main(void)
; {
	.dbline 216
;  init_devices();
	xcall _init_devices
	.dbline 218
;  //在这继续添加你的代码
;    LCD12864_gotoXY(1,0);
	clr R18
	ldi R16,1
	xcall _LCD12864_gotoXY
	.dbline 219
;   LCD12864_sendstr("作者: 张秋伟");
	ldi R16,<L38
	ldi R17,>L38
	xcall _LCD12864_sendstr
	.dbline 220
;   LCD12864_gotoXY(2,0);
	clr R18
	ldi R16,2
	xcall _LCD12864_gotoXY
	.dbline 221
;   LCD12864_sendstr("班级: 06电气");
	ldi R16,<L39
	ldi R17,>L39
	xcall _LCD12864_sendstr
	.dbline 222
;    LCD12864_gotoXY(3,0);
	clr R18
	ldi R16,3
	xcall _LCD12864_gotoXY
	.dbline 223
;   LCD12864_sendstr("学号: 06");
	ldi R16,<L40
	ldi R17,>L40
	xcall _LCD12864_sendstr
	.dbline 224
;   delay_nms(5000);
	ldi R16,5000
	ldi R17,19
	xcall _delay_nms
	.dbline 225
;   LCD12864_clear();						//清屏
	xcall _LCD12864_clear
	.dbline 226
;   LCD12864_gotoXY(1,2);
	ldi R18,2
	ldi R16,1
	xcall _LCD12864_gotoXY
	.dbline 227
;   LCD12864_sendstr("数字频率计");
	ldi R16,<L41
	ldi R17,>L41
	xcall _LCD12864_sendstr
	.dbline 228
;    LCD12864_gotoXY(2,0);
	clr R18
	ldi R16,2
	xcall _LCD12864_gotoXY
	.dbline 229
;   LCD12864_sendstr("时间");
	ldi R16,<L42
	ldi R17,>L42
	xcall _LCD12864_sendstr
	.dbline 230
;   LCD12864_gotoXY(3,0);
	clr R18
	ldi R16,3
	xcall _LCD12864_gotoXY
	.dbline 231
;   LCD12864_sendstr("频率");
	ldi R16,<L43
	ldi R17,>L43
	xcall _LCD12864_sendstr
	.dbline 233
; 
;   DDRB |=(1<<PB7)|(1<<PB0);//设置74ls393的清零端,闸门控制端为输出
	in R24,0x17
	ori R24,129
	out 0x17,R24
	.dbline 234
;   PORTB|= (1<<PB7); //74LS393清零
	sbi 0x18,7
	.dbline 235
;   delay_nus(5);
	ldi R16,5
	ldi R17,0
	xcall _delay_nus
	.dbline 236
;   PORTB &=~(1<<PB7); //74LS393开始计数
	cbi 0x18,7
	.dbline 237
;   PORTB|=(1<<PB0);  //打开闸门
	sbi 0x18,0
	xjmp L45
L44:
	.dbline 239
;   while(1)
;   {
	.dbline 240
;   if(second_is_ok == 1)
	lds R24,_second_is_ok
	cpi R24,1
	brne L47
	.dbline 241
;    {
	.dbline 242
;     second_is_ok =0;
	clr R2
	sts _second_is_ok,R2
	.dbline 243
; 	time();
	xcall _time
	.dbline 244
;    }
L47:
	.dbline 245
;    if(display_is_ok)
	lds R2,_display_is_ok
	tst R2
	breq L49
	.dbline 246
;    {
	.dbline 247
; 	display_is_ok=0;
	clr R2
	sts _display_is_ok,R2
	.dbline 248
; 	PutChar();
	xcall _PutChar
	.dbline 249
;  	display_time();
	xcall _display_time
	.dbline 250
; 	}
L49:
	.dbline 251
L45:
	.dbline 238
	xjmp L44
X0:
	.dbline -2
L37:
	.dbline 0 ; func end
	ret
	.dbend
	.area bss(ram, con, rel)
	.dbfile E:\张秋伟\我的实验\数字频率计\pro.c
_temp::
	.blkb 8
	.dbsym e temp _temp A[8:8]c
_Hour_L::
	.blkb 1
	.dbsym e Hour_L _Hour_L c
_Hour_H::
	.blkb 1
	.dbsym e Hour_H _Hour_H c
_Minute_L::
	.blkb 1
	.dbsym e Minute_L _Minute_L c
_Minute_H::
	.blkb 1
	.dbsym e Minute_H _Minute_H c
_Second_L::
	.blkb 1
	.dbsym e Second_L _Second_L c
_Second_H::
	.blkb 1
	.dbsym e Second_H _Second_H c
	.area data(ram, con, rel)
	.dbfile E:\张秋伟\我的实验\数字频率计\pro.c
L43:
	.blkb 5
	.area idata
	.byte 198,181,194,202,0
	.area data(ram, con, rel)
	.dbfile E:\张秋伟\我的实验\数字频率计\pro.c
L42:
	.blkb 5
	.area idata
	.byte 202,177,188,228,0
	.area data(ram, con, rel)
	.dbfile E:\张秋伟\我的实验\数字频率计\pro.c
L41:
	.blkb 11
	.area idata
	.byte 202,253,215,214,198,181,194,202,188,198,0
	.area data(ram, con, rel)
	.dbfile E:\张秋伟\我的实验\数字频率计\pro.c
L40:
	.blkb 9
	.area idata
	.byte 209,167,186,197,58,32,48,54,0
	.area data(ram, con, rel)
	.dbfile E:\张秋伟\我的实验\数字频率计\pro.c
L39:
	.blkb 13
	.area idata
	.byte 176,224,188,182,58,32,48,54,181,231,198,248,0
	.area data(ram, con, rel)
	.dbfile E:\张秋伟\我的实验\数字频率计\pro.c
L38:
	.blkb 13
	.area idata
	.byte 215,247,213,223,58,32,213,197,199,239,206,176,0
	.area data(ram, con, rel)
	.dbfile E:\张秋伟\我的实验\数字频率计\pro.c
L35:
	.blkb 3
	.area idata
	.byte 'H,'z,0
	.area data(ram, con, rel)
	.dbfile E:\张秋伟\我的实验\数字频率计\pro.c

⌨️ 快捷键说明

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