📄 7135_finish.lis
字号:
.module _7135_finish.c
.area data(ram, con, rel)
0000 _N::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile 7135_finish.c
0001 .dbsym e N _N c
0001 _T2OVF_NUM::
0001 .blkb 2
.area idata
0001 0000 .word 0
.area data(ram, con, rel)
0003 .dbfile 7135_finish.c
0003 .dbsym e T2OVF_NUM _T2OVF_NUM i
.area text(rom, con, rel)
0000 .dbfile 7135_finish.c
0000 .dbfunc e DELAY_1MS _DELAY_1MS fV
0000 ; i -> R16,R17
.even
0000 _DELAY_1MS::
0000 .dbline -1
0000 .dbline 47
0000 ; //*************************************************
0000 ; //测试功能:7135的ad功能。将采集到的数据以四位由高到低发给上位机显示
0000 ; //测试方法:注意:采集到的电压单位为mv
0000 ; //测试结果:ok
0000 ; //时钟频率:外部8m
0000 ; //管脚分配:1脚(pb0)接7135的25,4脚(pb3)接7135的22
0000 ; //16脚(pd2)接7135的21
0000 ; //注意事项:基准电压为:1v.输入电压不大于2v
0000 ; //完成时间:2009.03.22
0000 ; //**************************************************
0000 ;
0000 ; //**************************************************
0000 ; //头文件
0000 ; //**************************************************
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ; //**************************************************
0000 ;
0000 ;
0000 ; //*****************************************************
0000 ; //全局变量定义
0000 ; //*****************************************************
0000 ; unsigned char N=0;//用来区别是第一次外部中断还是第二次中断
0000 ; unsigned int T2OVF_NUM=0;//用来计定时器T2的溢出次数
0000 ; unsigned long int T2_NUM;//T2计的总时钟的个数
0000 ; unsigned int VIN;//测到的电压,单位为mv
0000 ;
0000 ; //*****************************************************
0000 ; //函数声明
0000 ; //*****************************************************
0000 ; void DELAY_1MS(void);
0000 ; void DELAY_NMS(unsigned int n);
0000 ; void PORT_INIT(void);
0000 ; void INT0_INIT(void);
0000 ; void T2_INIT(void);
0000 ; void T0_125K(void);
0000 ; void USART_INIT(void);
0000 ; void USART_TX(unsigned char data);
0000 ; void DATA_DISPLAY(unsigned int data);
0000 ;
0000 ; //*****************************************************
0000 ; //函数名称:void DELAY_1MS(void)
0000 ; //函数功能:延时1ms
0000 ; //注意事项:i=143*n-2
0000 ; //*****************************************************
0000 ; void DELAY_1MS(void)
0000 ; {
0000 .dbline 49
0000 ; unsigned int i;
0000 ; for(i=1142;i>0;i--)
0000 06E7 ldi R16,1142
0002 14E0 ldi R17,4
0004 02C0 xjmp L5
0006 L2:
0006 .dbline 50
0006 L3:
0006 .dbline 49
0006 0150 subi R16,1
0008 1040 sbci R17,0
000A L5:
000A .dbline 49
000A 0030 cpi R16,0
000C 0107 cpc R16,R17
000E D9F7 brne L2
0010 X0:
0010 .dbline -2
0010 L1:
0010 .dbline 0 ; func end
0010 0895 ret
0012 .dbsym r i 16 i
0012 .dbend
0012 .dbfunc e DELAY_NMS _DELAY_NMS fV
0012 ; n -> R20,R21
.even
0012 _DELAY_NMS::
0012 0E940000 xcall push_gset1
0016 A801 movw R20,R16
0018 .dbline -1
0018 .dbline 58
0018 ; ;
0018 ; }
0018 ; //*****************************************************
0018 ; //函数名称:void DELAY_NMS(void)
0018 ; //函数功能:延时Nms
0018 ; //注意事项:
0018 ; //*****************************************************
0018 ; void DELAY_NMS(unsigned int n)
0018 ; {
0018 .dbline 59
0018 ; for(;n>0;n--)
0018 03C0 xjmp L10
001A L7:
001A .dbline 60
001A F2DF xcall _DELAY_1MS
001C L8:
001C .dbline 59
001C 4150 subi R20,1
001E 5040 sbci R21,0
0020 L10:
0020 .dbline 59
0020 4030 cpi R20,0
0022 4507 cpc R20,R21
0024 D1F7 brne L7
0026 X1:
0026 .dbline -2
0026 L6:
0026 0E940000 xcall pop_gset1
002A .dbline 0 ; func end
002A 0895 ret
002C .dbsym r n 20 i
002C .dbend
002C .dbfunc e PORT_INIT _PORT_INIT fV
.even
002C _PORT_INIT::
002C .dbline -1
002C .dbline 68
002C ; DELAY_1MS();
002C ; }
002C ; //*****************************************************
002C ; //函数名称:void INT0_INIT(void)
002C ; //函数功能:int0初始化,上升沿产生中断,使能中断
002C ; //注意事项:未开总中断
002C ; //*****************************************************
002C ; void PORT_INIT(void)
002C ; {
002C .dbline 69
002C ; DDRB=0X09;
002C 89E0 ldi R24,9
002E 87BB out 0x17,R24
0030 .dbline 70
0030 ; PORTB=0X00;
0030 2224 clr R2
0032 28BA out 0x18,R2
0034 .dbline 71
0034 ; DDRD=0X00;
0034 21BA out 0x11,R2
0036 .dbline 72
0036 ; PORTD=0XFF;
0036 8FEF ldi R24,255
0038 82BB out 0x12,R24
003A .dbline -2
003A L11:
003A .dbline 0 ; func end
003A 0895 ret
003C .dbend
003C .dbfunc e T0_125K _T0_125K fV
.even
003C _T0_125K::
003C .dbline -1
003C .dbline 81
003C ; }
003C ;
003C ; //**********************************************************
003C ; //函数名称:void T0_250K(void)
003C ; //函数功能:t0工作于CTC模式,产生250k方波
003C ; //注意事项:一分频,pb3(oc0)接7135 clk
003C ; //**********************************************************
003C ; void T0_125K(void)
003C ; {
003C .dbline 82
003C ; TCCR0=0X00;
003C 2224 clr R2
003E 23BE out 0x33,R2
0040 .dbline 83
0040 ; TCNT0=0X00;
0040 22BE out 0x32,R2
0042 .dbline 84
0042 ; OCR0=31;
0042 8FE1 ldi R24,31
0044 8CBF out 0x3c,R24
0046 .dbline 85
0046 ; TIMSK&=~(1<<OCIE0);
0046 89B7 in R24,0x39
0048 8D7F andi R24,253
004A 89BF out 0x39,R24
004C .dbline 86
004C ; TCCR0=0X19;
004C 89E1 ldi R24,25
004E 83BF out 0x33,R24
0050 .dbline -2
0050 L12:
0050 .dbline 0 ; func end
0050 0895 ret
0052 .dbend
0052 .dbfunc e INT0_INIT _INT0_INIT fV
.even
0052 _INT0_INIT::
0052 .dbline -1
0052 .dbline 94
0052 ; }
0052 ; //*****************************************************
0052 ; //函数名称:void INT0_INIT(void)
0052 ; //函数功能:int0初始化,上升沿产生中断,使能中断
0052 ; //注意事项:未开总中断
0052 ; //*****************************************************
0052 ; void INT0_INIT(void)
0052 ; {
0052 .dbline 95
0052 ; MCUCR|=((1<<ISC01)|(1<<ISC00));
0052 85B7 in R24,0x35
0054 8360 ori R24,3
0056 85BF out 0x35,R24
0058 .dbline 96
0058 ; GICR|=(1<<INT0);
0058 8BB7 in R24,0x3b
005A 8064 ori R24,64
005C 8BBF out 0x3b,R24
005E .dbline -2
005E L13:
005E .dbline 0 ; func end
005E 0895 ret
0060 .dbend
.area vector(rom, abs)
.org 4
0004 0C943000 jmp _INT0_INTERRUPT
.area text(rom, con, rel)
0060 .dbfile 7135_finish.c
0060 .dbfunc e INT0_INTERRUPT _INT0_INTERRUPT fV
.even
0060 _INT0_INTERRUPT::
0060 0E940000 xcall push_lset
0064 0E940000 xcall push_gset2
0068 .dbline -1
0068 .dbline 105
0068 ; }
0068 ; //*****************************************************
0068 ; //函数名称:void INT0_INTERRUPT(void)
0068 ; //函数功能:中断处理,N+1
0068 ; //注意事项:
0068 ; //*****************************************************
0068 ; #pragma interrupt_handler INT0_INTERRUPT:2
0068 ; void INT0_INTERRUPT(void)
0068 ; {
0068 .dbline 106
0068 ; if(!N)
0068 20900000 lds R2,_N
006C 2220 tst R2
006E 49F4 brne L15
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -