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

📄 test_7135.lis

📁 ad7135的avr16的源程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .module test_7135.c
                        .area data(ram, con, rel)
 0000           _N::
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile test_7135.c
 0001                   .dbsym e N _N c
 0001           _T1OVF_NUM::
 0001                   .blkb 2
                        .area idata
 0001 0000              .word 0
                        .area data(ram, con, rel)
 0003                   .dbfile test_7135.c
 0003                   .dbsym e T1OVF_NUM _T1OVF_NUM i
                        .area text(rom, con, rel)
 0000                   .dbfile test_7135.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.17
 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 T1OVF_NUM=0;//用来计定时器T1的溢出次数
 0000           ; unsigned long int T1_NUM;//T1计的总时钟的个数
 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 T1_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 test_7135.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)

⌨️ 快捷键说明

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