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

📄 测频.lst

📁 单片机开发资料光盘-双龙-686M.zip
💻 LST
📖 第 1 页 / 共 2 页
字号:
          .equ	PIND7	=7
          .equ	PIND6	=6
          .equ	PIND5	=5
          .equ	PIND4	=4
          .equ	PIND3	=3
          .equ	PIND2	=2
          .equ	PIND1	=1
          .equ	PIND0	=0
         
          .equ	SPIE	=7
          .equ	SPE	=6
          .equ	DORD	=5
          .equ	MSTR	=4
          .equ	CPOL	=3
          .equ	CPHA	=2
          .equ	SPR1	=1
          .equ	SPR0	=0
         
          .equ	SPIF	=7
          .equ	WCOL	=6
         
          .equ	RXC	=7
          .equ	TXC	=6
          .equ	UDRE	=5
          .equ	FE	=4
          .equ	OR	=3
         
          .equ	RXCIE	=7
          .equ	TXCIE	=6
          .equ	UDRIE	=5
          .equ	RXEN	=4
          .equ	TXEN	=3
          .equ	CHR9	=2
          .equ	RXB8	=1
          .equ	TXB8	=0
         
          .equ	ACD	=7
          .equ	ACO	=5
          .equ	ACI	=4
          .equ	ACIE	=3
          .equ	ACIC	=2
          .equ	ACIS1	=1
          .equ	ACIS0	=0
         
          .equ	MUX2	=2
          .equ	MUX1	=1
          .equ	MUX0	=0
         
          .equ	ADEN	=7
          .equ	ADSC	=6
          .equ	ADFR	=5
          .equ	ADIF	=4
          .equ	ADIE	=3
          .equ	ADPS2	=2
          .equ	ADPS1	=1
          .equ	ADPS0	=0
         
          .def	XL	=r26
          .def	XH	=r27
          .def	YL	=r28
          .def	YH	=r29
          .def	ZL	=r30
          .def	ZH	=r31
         
          .equ 	RAMEND  =$25F	;Last On-Chip SRAM location
          .equ	XRAMEND =$25F
          .equ	E2END	=$1FF
          .equ	FLASHEND=$FFF
         
          .equ	INT0addr=$001	;External Interrupt0 Vector Address
          .equ	INT1addr=$002	;External Interrupt1 Vector Address
          .equ	OC2addr =$003	;Timer2 compare match Vector Address
          .equ	OVF2addr=$004	;Timer2 overflow Vector Address
          .equ	ICP1addr=$005	;Timer1 Input Capture Vector Address
          .equ	OC1Aaddr=$006	;Timer1 Output Compare A Interrupt Vector Address
          .equ	OC1Baddr=$007	;Timer1 Output Compare B Interrupt Vector Address
          .equ	OVF1addr=$008	;Overflow1 Interrupt Vector Address
          .equ	OVF0addr=$009	;Overflow0 Interrupt Vector Address
          .equ	SPIaddr =$00A	;SPI Interrupt Vector Address
          .equ	URXCaddr=$00B	;UART Receive Complete Interrupt Vector Address
          .equ	UDREaddr=$00C	;UART Data Register Empty Interrupt Vector Address
          .equ	UTXCaddr=$00D	;UART Transmit Complete Interrupt Vector Address
          .equ	ADCCaddr=$00E	;ADC Conversion Complete Interrupt Vector Address
          .equ	ERDYaddr=$00F	;EEPROM Write Complete Interrupt Vector Address
          .equ	ACIaddr =$010	;Analog Comparator Interrupt Vector Address000000 c027      	rjmp   reset
          .def    temp   = r16                 ;暂存器
         
          .def    cnt1d  = r17
          .def    cnt2d  = r18                 ;cnt1、dcnt2d和cnt3d存放结果的十进制
          .def    cnt3d  = r19     
         
          .def    count  = r20
         
          .def    cnt    = r21
         
          .def    res1   = r22
          .def    res2   = r23                 ;res1、res2和res3存放结果的十六进制   
          .def    res3   = r24
         
          .def    dt     = r25
          .def    ovfl   = r26
          .def    aa     = r27
          .org    0x003                        ;icp触发中断向量
000003 c004      	rjmp   captr
         
          .org    0x007                        ;timer0触发中断向量
000007 c018      	rjmp   interru
          captr:                               ;icp触发中断子程序
000008 f04e      	brts  b
000009 9563      	inc   res1
00000a e005      	ldi   temp,  0b00000101
00000b bf03      	out   tccr0, temp            ;开timer0
00000c e00a      	ldi   temp,  0b00001010
00000d bf09      	out   timsk, temp            ;致timer0中断和捕捉中断
00000e ec00      	ldi   temp,  0b11000000
00000f bd0e      	out   tccr1b,temp
000010 9468      	set
000011 9518      	reti
          b:
000012 9468      	set
000013 9563      	inc   res1                   ;开始计数
000014 f431      	brne  c
000015 9573      	inc   res2
000016 f421      	brne  c
000017 9583      	inc   res3
000018 138a      	cpse  res3,  ovfl            ;溢出处理
000019 c001      	rjmp  c
00001a c00b      	rjmp  over1	
          c:
00001b e00a      	ldi   temp,  0b00001010
00001c bf09      	out   timsk, temp
00001d ec00      	ldi   temp,  0b11000000
00001e bd0e      	out   tccr1b,temp
00001f 9518      	reti
         
          interru:                                ;timer0溢出中断子程序
000020 955a      	dec   cnt
000021 f019      	breq  over
000022 e00a      	ldi   temp,   0b00001010
000023 bf09      	out   timsk,  temp
000024 9518      	reti
          over:
000025 d047      	rcall htd3
          over1:	
000026 d03a      	rcall sys
000027 9518      	reti
          reset:
000028 e50f      	ldi   temp,  low(ramend)
000029 bf0d      	out   spl,   temp
00002a e002      	ldi   temp,  high(ramend)      ;设置堆栈
00002b bf0e      	out   spl+1, temp
00002c ef0f      	ldi   temp,  $ff               ;初始化数码管状态
00002d bb07      	out   ddrb,  temp              ;B口:数码管数据输出
00002e bb01      	out   ddrd,  temp              ;D口:pd0-pd5为数码管片选  
00002f e000      	ldi   temp,  $00
000030 bb08      	out   portb, temp              ;共阴极,数码管全灭
000031 bb02      	out   portd, temp
000032 e010      	ldi   cnt1d, 00
000033 e020      	ldi   cnt2d, 00
000034 e030      	ldi   cnt3d, 00
000035 9478      	sei
000036 d02a      	rcall sys
          loop:	                               ;在数码管显出十进制数
000037 2fb1      	mov   aa,   cnt1d
000038 70bf      	andi  aa,   $0f                ;显示个位
000039 d043      	rcall a
00003a 9890      	cbi   portd, 00
00003b 0000      	nop
00003c 9a90      	sbi   portd, 00
00003d 2fb1      	mov   aa,  cnt1d
00003e 7fb0      	andi  aa,  $f0                 ;显示十位
00003f 95b2      	swap  aa
000040 d03c      	rcall a
000041 9891      	cbi   portd, 01
000042 0000      	nop
000043 9a91      	sbi   portd, 01
000044 2fb2      	mov   aa,  cnt2d
000045 70bf      	andi  aa,  $0f                 ;显示百位
000046 d036      	rcall a
000047 9892      	cbi   portd, 02
000048 0000      	nop
000049 9a92      	sbi   portd, 02
00004a 2fb2      	mov   aa,  cnt2d
00004b 7fb0      	andi  aa,  $f0                 ;显示千位
00004c 95b2      	swap  aa
00004d d02f      	rcall a
00004e 9893      	cbi   portd, 03
00004f 0000      	nop
000050 9a93      	sbi   portd, 03
000051 2fb3      	mov   aa,  cnt3d
000052 70bf      	andi  aa,  $0f                 ;显示万位
000053 d029      	rcall a
000054 9894      	cbi   portd, 04
000055 0000      	nop
000056 9a94      	sbi   portd, 04
000057 2fb3      	mov   aa,  cnt3d
000058 7fb0      	andi  aa,  $f0                 ;显示十万位
000059 95b2      	swap  aa
00005a d022      	rcall a
00005b 9895      	cbi   portd, 05
00005c 0000      	nop
00005d 9a95      	sbi   portd, 05
00005e fd90      	sbrc  dt,    0
00005f 9508      	ret
000060 cfd6      	rjmp  loop
          sys:                                    ;初始化
000061 9488      	clc
000062 94e8      	clt
000063 e090      	ldi   dt,    00
000064 e0af      	ldi   ovfl,  $0f
000065 e15f      	ldi   cnt,   31
000066 e70b      	ldi   temp,  123
000067 bf02      	out   tcnt0, temp
000068 e008      	ldi   temp,  0b00001000
000069 bf09      	out   timsk, temp
00006a ec00      	ldi   temp,  0b11000000
00006b bd0e      	out   tccr1b,temp
00006c 9508      	ret
         
          htd3:                                   ;16转10子程序
00006d 6091      	sbr   dt,    1
00006e e148      	ldi   count, 24
00006f 2711      	clr   cnt1d
000070 2722      	clr   cnt2d
000071 2733      	clr   cnt3d
          loopd:
000072 1f66      	rol   res1
000073 1f77      	rol   res2
000074 1f88      	rol   res3
         
000075 1f11      	rol   cnt1d
000076 1f22      	rol   cnt2d
000077 1f33      	rol   cnt3d
000078 954a      	dec   count
000079 f409      	brne  d	
00007a cfbc      	rjmp  loop
          d:
00007b d007      	rcall adjn
00007c cff5      	rjmp  loopd
          a:
00007d e0f4      	ldi   zh,    high(zk*2)
00007e e0e0      	ldi   zl,    low(zk*2)
00007f 0feb      	add   zl,    aa
000080 95c8      	lpm
000081 ba08      	out   portb, r0	
000082 9508      	ret
          adjn:
000083 934f      	push  count
000084 2f41      	mov   count,  cnt1d
000085 d009      	rcall adjd1
000086 2f14      	mov   cnt1d,  count
000087 2f42      	mov   count,  cnt2d
000088 d006      	rcall adjd1
000089 2f24      	mov   cnt2d,  count
00008a 2f43      	mov   count,  cnt3d
00008b d003      	rcall adjd1
00008c 2f34      	mov   cnt3d,  count
00008d 914f      	pop   count
00008e 9508      	ret
          adjd1:
00008f e003      	ldi   temp,  3
000090 0f04      	add   temp,  count
000091 fd03      	sbrc  temp,  3
000092 2f40      	mov   count, temp
000093 e300      	ldi   temp,  $30
000094 0f04      	add   temp,  count
000095 fd07      	sbrc  temp,  7
000096 2f40      	mov   count, temp
000097 9508      	ret
          .equ   zk=0x0200
          .org   zk                             ;字形表
          .db    0x03f,0x006,0x05b,0x04f
000200 063f
000201 4f5b
          .db    0x066,0x06d,0x07d,0x007
000202 6d66
000203 077d
          .db    0x07f,0x06f,0x077,0x07c
000204 6f7f
000205 7c77
          .db    0x039,0x05e,0x071,0x0ff                        
000206 5e39
000207 ff71
         
         				
Assembly complete with no errors.

⌨️ 快捷键说明

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