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

📄 7135.lis

📁 基于AVR单片机的热电偶测量系统源码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0150 0001              .byte 0,1
 0152 0101              .byte 1,1
 0154 0101              .byte 1,1
 0156 0101              .byte 1,1
 0158                   .dbsym s fuhao _fuhao A[16:16]kc
 0158           L2:
 0158 0000              .word 0
 015A 0000              .word 0
 015C 0000              .word 0
 015E 0000              .word 0
                        .area text(rom, con, rel)
 0000                   .dbfile D:\zhangyu\H2test\program/lcd.h
 0000                   .dbfile D:\zhangyu\H2test\program\7135.c
 0000                   .dbfunc e display7135 _display7135 fV
 0000           ;            adc -> R20,R21
 0000           ;              m -> R22,R23
 0000           ;              n -> R10,R11
 0000           ;              E -> y+1
                        .even
 0000           _display7135::
 0000 0E940000          xcall push_gset3
 0004 2997              sbiw R28,9
 0006                   .dbline -1
 0006                   .dbline 22
 0006           ; /*-------------------------------------------------------------*-
 0006           ; File name: 7135.c
 0006           ; Description:本模块为电动势模块,其功能为获得原电池的电动势。
 0006           ; Function List:
 0006           ; 1.void timer1_capt_isr(void)   //中断函数,busy信号的下降沿产生中断信号
 0006           ; 2.void display7135()  //读取并显示7135的数据
 0006           ; 
 0006           ; -----------------------------------------------------------------
 0006           ; 电动势模块
 0006           ; -*--------------------------------------------------------------*/
 0006           ; #include <iom16v.h>
 0006           ; #include <macros.h>
 0006           ; #include "7135.h"
 0006           ; #include "lcd.h"
 0006           ; #include "main.h"
 0006           ; #include "6675.h"
 0006           ; 
 0006           ; extern unsigned char endflag;
 0006           ; extern unsigned int pulse;
 0006           ; 
 0006           ; void display7135(void)
 0006           ; {       
 0006                   .dbline 23
 0006           ;     unsigned int E[4]={0,0,0,0};
 0006 80E0              ldi R24,<L2
 0008 90E0              ldi R25,>L2
 000A FE01              movw R30,R28
 000C 3196              adiw R30,1
 000E 08E0              ldi R16,8
 0010 10E0              ldi R17,0
 0012 FA93              st -y,R31
 0014 EA93              st -y,R30
 0016 9A93              st -y,R25
 0018 8A93              st -y,R24
 001A 0E940000          xcall asgncblk
 001E                   .dbline 24
 001E           ;     unsigned int n=0,m=0;
 001E AA24              clr R10
 0020 BB24              clr R11
 0022                   .dbline 24
 0022 6627              clr R22
 0024 7727              clr R23
 0026                   .dbline 27
 0026           ;       unsigned int adc;
 0026           ; 
 0026           ;       TCNT1=0;
 0026 2224              clr R2
 0028 3324              clr R3
 002A 3DBC              out 0x2d,R3
 002C 2CBC              out 0x2c,R2
 002E                   .dbline 28
 002E           ;       TCCR1A=0x00;
 002E 2FBC              out 0x2f,R2
 0030                   .dbline 29
 0030           ;       TCCR1B=0x43;             //上升沿捕获,64分频
 0030 83E4              ldi R24,67
 0032 8EBD              out 0x2e,R24
 0034                   .dbline 30
 0034           ;       TIMSK=0x24;                     //timer1溢出中断使能,捕获中断使能
 0034 84E2              ldi R24,36
 0036 89BF              out 0x39,R24
 0038                   .dbline 31
 0038           ;       SEI();
 0038 7894              sei
 003A                   .dbline 33
 003A           ;       
 003A           ;       Delay10ms(10);
 003A 0AE0              ldi R16,10
 003C 0E940000          xcall _Delay10ms
 0040           L3:
 0040                   .dbline 35
 0040           L4:
 0040                   .dbline 35
 0040           ; 
 0040           ;               while(!endflag);
 0040 20900000          lds R2,_endflag
 0044 2220              tst R2
 0046 E1F3              breq L3
 0048                   .dbline 36
 0048           ;               adc=(pulse>>1)-10001;   //此值即为电压值,共5位,小数点后有1位,前面4位,单位为MV
 0048 40910000          lds R20,_pulse
 004C 50910100          lds R21,_pulse+1
 0050 5695              lsr R21
 0052 4795              ror R20
 0054 4151              subi R20,17
 0056 5742              sbci R21,39
 0058                   .dbline 38
 0058           ;                       
 0058           ;                       m=adc*10;
 0058 0AE0              ldi R16,10
 005A 10E0              ldi R17,0
 005C 9A01              movw R18,R20
 005E 0E940000          xcall empy16s
 0062 B801              movw R22,R16
 0064                   .dbline 39
 0064           ;                       E[0]=m/1000;
 0064 28EE              ldi R18,1000
 0066 33E0              ldi R19,3
 0068 0E940000          xcall div16u
 006C 1A83              std y+2,R17
 006E 0983              std y+1,R16
 0070                   .dbline 40
 0070           ;                       n=m-E[0]*1000;
 0070 9801              movw R18,R16
 0072 08EE              ldi R16,1000
 0074 13E0              ldi R17,3
 0076 0E940000          xcall empy16s
 007A 5B01              movw R10,R22
 007C A01A              sub R10,R16
 007E B10A              sbc R11,R17
 0080                   .dbline 41
 0080           ;                       E[1]=n/100;
 0080 24E6              ldi R18,100
 0082 30E0              ldi R19,0
 0084 8501              movw R16,R10
 0086 0E940000          xcall div16u
 008A 1C83              std y+4,R17
 008C 0B83              std y+3,R16
 008E                   .dbline 42
 008E           ;                       n=n-E[1]*100;
 008E 9801              movw R18,R16
 0090 04E6              ldi R16,100
 0092 10E0              ldi R17,0
 0094 0E940000          xcall empy16s
 0098 A01A              sub R10,R16
 009A B10A              sbc R11,R17
 009C                   .dbline 43
 009C           ;                       E[2]=n/10;
 009C 2AE0              ldi R18,10
 009E 30E0              ldi R19,0
 00A0 8501              movw R16,R10
 00A2 0E940000          xcall div16u
 00A6 1E83              std y+6,R17
 00A8 0D83              std y+5,R16
 00AA                   .dbline 44
 00AA           ;                       n=n-E[2]*10;
 00AA 9801              movw R18,R16
 00AC 0AE0              ldi R16,10
 00AE 10E0              ldi R17,0
 00B0 0E940000          xcall empy16s
 00B4 A01A              sub R10,R16
 00B6 B10A              sbc R11,R17
 00B8                   .dbline 45
 00B8           ;                       E[3]=n/1;
 00B8 B886              std y+8,R11
 00BA AF82              std y+7,R10
 00BC                   .dbline 47
 00BC           ;      
 00BC           ;                       Draw_NtoArab(0x02,0x50,E[0]);
 00BC 2980              ldd R2,y+1
 00BE 3A80              ldd R3,y+2
 00C0 2882              std y+0,R2
 00C2 20E5              ldi R18,80
 00C4 02E0              ldi R16,2
 00C6 0E940000          xcall _Draw_NtoArab
 00CA                   .dbline 48
 00CA           ;                       Draw_NtoArab(0x02,0x58,E[1]);
 00CA 2B80              ldd R2,y+3
 00CC 3C80              ldd R3,y+4
 00CE 2882              std y+0,R2
 00D0 28E5              ldi R18,88
 00D2 02E0              ldi R16,2
 00D4 0E940000          xcall _Draw_NtoArab
 00D8                   .dbline 49
 00D8           ;                       Draw_NtoArab(0x02,0x60,E[2]);
 00D8 2D80              ldd R2,y+5
 00DA 3E80              ldd R3,y+6
 00DC 2882              std y+0,R2
 00DE 20E6              ldi R18,96
 00E0 02E0              ldi R16,2
 00E2 0E940000          xcall _Draw_NtoArab
 00E6                   .dbline 50
 00E6           ;                       Draw_NtoArab(0x02,0x70,E[3]);
 00E6 2F80              ldd R2,y+7
 00E8 3884              ldd R3,y+8
 00EA 2882              std y+0,R2
 00EC 20E7              ldi R18,112
 00EE 02E0              ldi R16,2
 00F0 0E940000          xcall _Draw_NtoArab
 00F4                   .dbline -2
 00F4           L1:
 00F4 2996              adiw R28,9
 00F6 0E940000          xcall pop_gset3
 00FA                   .dbline 0 ; func end
 00FA 0895              ret
 00FC                   .dbsym r adc 20 i
 00FC                   .dbsym r m 22 i
 00FC                   .dbsym r n 10 i
 00FC                   .dbsym l E 1 A[8:4]i
 00FC                   .dbend

⌨️ 快捷键说明

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