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

📄 main.lis

📁 1602lcd显示频率计 通过了proteus仿真
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\avr单片机学习\我自编程序\1602lcd\main.c
                        .area data(ram, con, rel)
 0000                   .dbfile F:\avr单片机学习\我自编程序\1602lcd\main.c
 0000           _str00::
 0000                   .blkb 17
                        .area idata
 0000 2020617574686F723A616E6369656E74  .byte 32,32,'a,'u,'t,'h,'o,'r,58,'a,'n,'c,'i,'e,'n,'t
 0010 00                .byte 0
                        .area data(ram, con, rel)
 0011                   .dbfile F:\avr单片机学习\我自编程序\1602lcd\main.c
 0011                   .dbsym e str00 _str00 A[17:17]c
 0011           _str01::
 0011                   .blkb 17
                        .area idata
 0011 2074696D653A323030382F30382F3039  .byte 32,'t,'i,'m,'e,58,50,48,48,56,47,48,56,47,48,57
 0021 00                .byte 0
                        .area data(ram, con, rel)
 0022                   .dbfile F:\avr单片机学习\我自编程序\1602lcd\main.c
 0022                   .dbsym e str01 _str01 A[17:17]c
 0022           _str1::
 0022                   .blkb 17
                        .area idata
 0022 206672657175656E6379206D65746572  .byte 32,'f,'r,'e,'q,'u,'e,'n,'c,'y,32,'m,'e,'t,'e,'r
 0032 00                .byte 0
                        .area data(ram, con, rel)
 0033                   .dbfile F:\avr单片机学习\我自编程序\1602lcd\main.c
 0033                   .dbsym e str1 _str1 A[17:17]c
 0033           _str2::
 0033                   .blkb 17
                        .area idata
 0033 20202020463A303030485A2020202020  .byte 32,32,32,32,'F,58,48,48,48,'H,'Z,32,32,32,32,32
 0043 00                .byte 0
                        .area data(ram, con, rel)
 0044                   .dbfile F:\avr单片机学习\我自编程序\1602lcd\main.c
 0044                   .dbsym e str2 _str2 A[17:17]c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\avr单片机学习\我自编程序\1602lcd\main.c
 0000                   .dbfunc e main _main fV
                        .even
 0000           _main::
 0000                   .dbline -1
 0000                   .dbline 36
 0000           ; /*---------------------------------------------------------------
 0000           ; 工程名称:1602液晶演示频率计
 0000           ; 编译器类型及版本:ICCAVR 6.9
 0000           ; 设计者:余威明
 0000           ; 设计日期:2007.08.09
 0000           ; 
 0000           ; 芯片类型:ATmega16L
 0000           ; 时钟频率:4M外部时钟
 0000           ; 硬件接口说明:MCU  ~  LCD
 0000           ;               PORTD ~  dataport对应1602的d0~d7
 0000           ;               PA1  ~  RS
 0000           ;               PA2  ~  RW
 0000           ;               PA3  ~  E
 0000           ; ---------------------------------------------------------------*/
 0000           ; #include <iom16v.h>
 0000           ; #include <macros.h>
 0000           ; #include "lcd1602.h"
 0000           ; 
 0000           ; 
 0000           ; void hextoasc(void);    //十六进制转ASCII码
 0000           ; void timer1_init(void); //定时器1初始化
 0000           ; void port_init(void);   //端口初始化
 0000           ; void init_devices(void);
 0000           ; 
 0000           ; //显示的两行字符
 0000           ; unsigned char str00[]="  author:ancient";   //液晶屏初始显示内容
 0000           ; unsigned char str01[]=" time:2008/08/09";
 0000           ; unsigned char str1[]=" frequency meter";
 0000           ; unsigned char str2[]="    F:000HZ     ";    //频率显示形式
 0000           ; unsigned int count;                      //外部脉冲计数值
 0000           ; unsigned char tim0_ovf_count;            //t0溢出次数
 0000           ; //在LCD上显示两行字符
 0000           ; 
 0000           ; 
 0000           ; void main(void)
 0000           ; {
 0000                   .dbline 37
 0000           ;  init_devices();    //初始化
 0000 8BD0              xcall _init_devices
 0002                   .dbline 38
 0002           ;  display_a_string(0,str00);   //开机界面
 0002 20E0              ldi R18,<_str00
 0004 30E0              ldi R19,>_str00
 0006 0027              clr R16
 0008 0E940000          xcall _display_a_string
 000C                   .dbline 39
 000C           ;     delay_nms(500);
 000C 04EF              ldi R16,500
 000E 11E0              ldi R17,1
 0010 0E940000          xcall _delay_nms
 0014                   .dbline 40
 0014           ;  display_a_string(1,str01);
 0014 20E0              ldi R18,<_str01
 0016 30E0              ldi R19,>_str01
 0018 01E0              ldi R16,1
 001A 0E940000          xcall _display_a_string
 001E                   .dbline 41
 001E           ;    delay_nms(1000);
 001E 08EE              ldi R16,1000
 0020 13E0              ldi R17,3
 0022 0E940000          xcall _delay_nms
 0026                   .dbline 42
 0026           ;  lcd_write_command(0x01,1);//显示清屏
 0026 21E0              ldi R18,1
 0028 01E0              ldi R16,1
 002A 0E940000          xcall _lcd_write_command
 002E                   .dbline 43
 002E           ;  delay_nms(200);
 002E 08EC              ldi R16,200
 0030 10E0              ldi R17,0
 0032 0E940000          xcall _delay_nms
 0036                   .dbline 44
 0036           ;  display_a_string(0,str1);  //显示“frequncy meter”
 0036 20E0              ldi R18,<_str1
 0038 30E0              ldi R19,>_str1
 003A 0027              clr R16
 003C 0E940000          xcall _display_a_string
 0040                   .dbline 45
 0040           ;   delay_nms(200);
 0040 08EC              ldi R16,200
 0042 10E0              ldi R17,0
 0044 0E940000          xcall _delay_nms
 0048 0AC0              xjmp L3
 004A           L2:
 004A                   .dbline 47
 004A           ;  while(1)
 004A           ;  {
 004A                   .dbline 48
 004A           ;   hextoasc();    //十六进制转ASCII码
 004A 0BD0              xcall _hextoasc
 004C                   .dbline 49
 004C           ;   display_a_string(1,str2);
 004C 20E0              ldi R18,<_str2
 004E 30E0              ldi R19,>_str2
 0050 01E0              ldi R16,1
 0052 0E940000          xcall _display_a_string
 0056                   .dbline 50
 0056           ;   delay_nms(200);
 0056 08EC              ldi R16,200
 0058 10E0              ldi R17,0
 005A 0E940000          xcall _delay_nms
 005E                   .dbline 51
 005E           ;  }
 005E           L3:
 005E                   .dbline 46
 005E F5CF              xjmp L2
 0060           X0:
 0060                   .dbline -2
 0060           L1:
 0060                   .dbline 0 ; func end
 0060 0895              ret
 0062                   .dbend
 0062                   .dbfunc e hextoasc _hextoasc fV
                        .even
 0062           _hextoasc::
 0062                   .dbline -1
 0062                   .dbline 55
 0062           ; }
 0062           ; //十六进制转ASCII码,为LCD显示作准备
 0062           ; void hextoasc(void)    
 0062           ; {
 0062                   .dbline 56
 0062           ;  if(count>=1000)  //检测数值大于1000HZ,溢出
 0062 80910100          lds R24,_count
 0066 90910200          lds R25,_count+1
 006A 883E              cpi R24,232
 006C E3E0              ldi R30,3
 006E 9E07              cpc R25,R30
 0070 58F0              brlo L6
 0072           X1:
 0072                   .dbline 57
 0072           ;  {
 0072                   .dbline 58
 0072           ;   str2[6] ='O';   //显示"OVF"
 0072 8FE4              ldi R24,79
 0074 80933900          sts _str2+6,R24
 0078                   .dbline 59
 0078           ;   str2[7] ='V';
 0078 86E5              ldi R24,86
 007A 80933A00          sts _str2+7,R24
 007E                   .dbline 60
 007E           ;   str2[8] ='F';
 007E 86E4              ldi R24,70
 0080 80933B00          sts _str2+8,R24
 0084                   .dbline 62
 0084           ;   
 0084           ;   PORTC|=(1<<PC0);//PC0置1,发光管亮
 0084 A89A              sbi 0x15,0
 0086                   .dbline 64
 0086           ;   
 0086           ;  }
 0086 29C0              xjmp L7
 0088           L6:
 0088                   .dbline 66
 0088           ;  else
 0088           ;  {
 0088                   .dbline 67
 0088           ;   str2[6]=count/100+0x30;
 0088 24E6              ldi R18,100
 008A 30E0              ldi R19,0
 008C 00910100          lds R16,_count
 0090 10910200          lds R17,_count+1
 0094 0E940000          xcall div16u
 0098 C801              movw R24,R16
 009A C096              adiw R24,48
 009C 80933900          sts _str2+6,R24
 00A0                   .dbline 68
 00A0           ;   str2[7]=count%100/10+0x30;
 00A0 24E6              ldi R18,100
 00A2 30E0              ldi R19,0
 00A4 00910100          lds R16,_count
 00A8 10910200          lds R17,_count+1
 00AC 0E940000          xcall mod16u
 00B0 2AE0              ldi R18,10
 00B2 30E0              ldi R19,0
 00B4 0E940000          xcall div16u
 00B8 C801              movw R24,R16
 00BA C096              adiw R24,48
 00BC 80933A00          sts _str2+7,R24
 00C0                   .dbline 69
 00C0           ;   str2[8]=count%10+0x30;
 00C0 2AE0              ldi R18,10
 00C2 30E0              ldi R19,0
 00C4 00910100          lds R16,_count
 00C8 10910200          lds R17,_count+1
 00CC 0E940000          xcall mod16u
 00D0 C801              movw R24,R16
 00D2 C096              adiw R24,48
 00D4 80933B00          sts _str2+8,R24
 00D8                   .dbline 70
 00D8           ;   PORTC&=~(1<<PC0);    //PC0清0,发光管灭
 00D8 A898              cbi 0x15,0
 00DA                   .dbline 71
 00DA           ;   }
 00DA           L7:
 00DA                   .dbline -2
 00DA           L5:
 00DA                   .dbline 0 ; func end
 00DA 0895              ret
 00DC                   .dbend
 00DC                   .dbfunc e port_init _port_init fV
                        .even
 00DC           _port_init::
 00DC                   .dbline -1
 00DC                   .dbline 75
 00DC           ; } 
 00DC           ;  
 00DC           ;  void port_init(void)
 00DC           ; {
 00DC                   .dbline 76
 00DC           ;  PORTA = 0x00;
 00DC 2224              clr R2
 00DE 2BBA              out 0x1b,R2
 00E0                   .dbline 77
 00E0           ;  DDRA  = 0xFF;
 00E0 8FEF              ldi R24,255
 00E2 8ABB              out 0x1a,R24
 00E4                   .dbline 78
 00E4           ;  PORTB = 0x01;

⌨️ 快捷键说明

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