📄 frequence.lis
字号:
.module Frequence.c
.area data(ram, con, rel)
0000 _frequence::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile D:\单片机编程\iccavr\频率检测\Frequence.c
0001 .dbsym e frequence _frequence c
0001 _save::
0001 .blkb 1
.area idata
0001 00 .byte 0
.area data(ram, con, rel)
0002 .dbfile D:\单片机编程\iccavr\频率检测\Frequence.c
0002 .dbsym e save _save c
.area text(rom, con, rel)
0000 .dbfile D:\单片机编程\iccavr\频率检测\Frequence.c
0000 .dbfunc e SetB _SetB fV
0000 ; k -> R20
.even
0000 _SetB::
0000 0E940000 xcall push_gset1
0004 402F mov R20,R16
0006 .dbline -1
0006 .dbline 63
0006 ; //ICC-AVR application builder : 2007-11-21 10:43:58
0006 ; // Target : M16
0006 ; // Crystal: 1.0000Mhz
0006 ;
0006 ; #include <iom16v.h>
0006 ; #include <macros.h>
0006 ;
0006 ; #define OUTPT PORTA //根据连接的端口,设置PORTA
0006 ; #define OUTDR DDRA //根据连接的端口,设置DDRA
0006 ;
0006 ; #define CS 0
0006 ; #define CLK 1
0006 ; #define DIO 2
0006 ; #define KEY 3
0006 ;
0006 ; #define Delay 2
0006 ; #define LongDelay 10
0006 ; //用于延时周期数
0006 ;
0006 ; //Pure Command 纯指令,不带返回值
0006 ; #define Reset 0xA4
0006 ; #define Test 0xBF
0006 ; #define LeftShift 0xA1
0006 ; #define RightShift 0xA0
0006 ; #define LeftCycle 0xA3
0006 ; #define RightCycle 0xA2
0006 ;
0006 ; //Command with parameter 带参数的指令
0006 ; #define DispMethod0 0x80
0006 ; #define DispMethod0Data 0x00
0006 ; //上面为使用方式0显示数据,
0006 ; //DispMethod0数值为 10000 a2 a1 a0,其中a2 a1 a0为显示位0-7地址
0006 ; //DispMethod0Data为DP X X X d3 d2 d1 d0 ,其中DP为小数点
0006 ; //d3 d2 d1 d0 为 0~9 - E H L P (空)的顺序编码
0006 ;
0006 ; #define DispMethod1 0xC8
0006 ; #define DispMethod1Data 0x00
0006 ; //上面为使用方式1显示数据,
0006 ; //DispMethod1数值为 11001 a2 a1 a0,其中a2 a1 a0为显示位0-7地址
0006 ; //DispMethod1Data为DP X X X d3 d2 d1 d0 ,其中DP为小数点
0006 ; //d3 d2 d1 d0 为 0~9 A~F 的顺序编码
0006 ;
0006 ; #define BlinkControl 0x88
0006 ; #define BlinkBit 0x00
0006 ; //BlinkBit为d8 d7 d6 d5 d4 d3 d2 d1对应位 其中 0代表闪烁 1不闪烁
0006 ;
0006 ; #define DisappearControl 0x98
0006 ; #define DisappearBit 0x00
0006 ; //DisappearBit为d8 d7 d6 d5 d4 d3 d2 d1对应位 其中1代表显示 0消隐
0006 ; //消隐不能把所有的位都消隐
0006 ;
0006 ; #define ReadKeyboard 0x15
0006 ; #define ReadASCII
0006 ; //ReadASCII为读出的键盘值,从0~3FH 没有键盘按下时为0xFF
0006 ; //当ZLG7289A 检测到有效的按键时,KEY 引脚从高电平变为低电平并一直保持
0006 ; //到按键结束。在此期间如果ZLG7289A 接收到“读键盘数据指令”则输出当前
0006 ; //按键的键盘代码,没有有效按键输出FFH (11111111B)
0006 ;
0006 ; unsigned char frequence=0;//用于记录频率
0006 ; unsigned char save=0;//用于存数
0006 ;
0006 ; void SetB(unsigned char k)
0006 ; {//这里的PORTB根据自己的程序修改
0006 .dbline 64
0006 ; OUTPT|=(1<<k);
0006 01E0 ldi R16,1
0008 142F mov R17,R20
000A 0E940000 xcall lsl8
000E 2BB2 in R2,0x1b
0010 202A or R2,R16
0012 2BBA out 0x1b,R2
0014 .dbline -2
0014 L1:
0014 0E940000 xcall pop_gset1
0018 .dbline 0 ; func end
0018 0895 ret
001A .dbsym r k 20 c
001A .dbend
001A .dbfunc e ClrB _ClrB fV
001A ; l -> R20
.even
001A _ClrB::
001A 0E940000 xcall push_gset1
001E 402F mov R20,R16
0020 .dbline -1
0020 .dbline 68
0020 ; }
0020 ;
0020 ; void ClrB(unsigned char l)
0020 ; {//这里的PORTB根据自己的程序修改
0020 .dbline 69
0020 ; OUTPT&=~(1<<l);
0020 01E0 ldi R16,1
0022 142F mov R17,R20
0024 0E940000 xcall lsl8
0028 202E mov R2,R16
002A 2094 com R2
002C 3BB2 in R3,0x1b
002E 3220 and R3,R2
0030 3BBA out 0x1b,R3
0032 .dbline -2
0032 L2:
0032 0E940000 xcall pop_gset1
0036 .dbline 0 ; func end
0036 0895 ret
0038 .dbsym r l 20 c
0038 .dbend
0038 .dbfunc e WriteOne7289 _WriteOne7289 fV
0038 ; i -> R20
0038 ; j -> R22
0038 ; Cmd -> R10
.even
0038 _WriteOne7289::
0038 0E940000 xcall push_gset3
003C A02E mov R10,R16
003E .dbline -1
003E .dbline 73
003E ; }
003E ;
003E ; void WriteOne7289(unsigned char Cmd)
003E ; {//写入一个字节,可以是单字节命令
003E .dbline 74
003E ; unsigned char i=0;//用于移了几位
003E 4427 clr R20
0040 .dbline 75
0040 ; unsigned char j=0;//用于延时
0040 6627 clr R22
0042 .dbline 77
0042 ;
0042 ; SetB(CS);
0042 0027 clr R16
0044 DDDF xcall _SetB
0046 .dbline 78
0046 ; j=Delay;
0046 62E0 ldi R22,2
0048 L4:
0048 .dbline 79
0048 L5:
0048 .dbline 79
0048 ; while(j--);
0048 262E mov R2,R22
004A 3324 clr R3
004C 6150 subi R22,1
004E 2220 tst R2
0050 D9F7 brne L4
0052 .dbline 81
0052 ;
0052 ; ClrB(CLK);
0052 01E0 ldi R16,1
0054 E2DF xcall _ClrB
0056 .dbline 82
0056 ; j=Delay;
0056 62E0 ldi R22,2
0058 L7:
0058 .dbline 83
0058 L8:
0058 .dbline 83
0058 ; while(j--);
0058 262E mov R2,R22
005A 3324 clr R3
005C 6150 subi R22,1
005E 2220 tst R2
0060 D9F7 brne L7
0062 .dbline 84
0062 ; OUTDR|=0x0f;
0062 8AB3 in R24,0x1a
0064 8F60 ori R24,15
0066 8ABB out 0x1a,R24
0068 .dbline 86
0068 ;
0068 ; ClrB(CS);
0068 0027 clr R16
006A D7DF xcall _ClrB
006C .dbline 87
006C ; j=LongDelay;
006C 6AE0 ldi R22,10
006E L10:
006E .dbline 88
006E L11:
006E .dbline 88
006E ; while(j--);
006E 262E mov R2,R22
0070 3324 clr R3
0072 6150 subi R22,1
0074 2220 tst R2
0076 D9F7 brne L10
0078 .dbline 89
0078 ; for(i=0;i<8;i++)
0078 4427 clr R20
007A 35C0 xjmp L16
007C L13:
007C .dbline 90
007C ; {
007C .dbline 91
007C ; if(0x80&Cmd)
007C A7FE sbrs R10,7
007E 19C0 rjmp L17
0080 .dbline 92
0080 ; {
0080 .dbline 93
0080 ; SetB(DIO);
0080 02E0 ldi R16,2
0082 BEDF xcall _SetB
0084 .dbline 94
0084 ; j=Delay;
0084 62E0 ldi R22,2
0086 L19:
0086 .dbline 95
0086 L20:
0086 .dbline 95
0086 ; while(j--);
0086 262E mov R2,R22
0088 3324 clr R3
008A 6150 subi R22,1
008C 2220 tst R2
008E D9F7 brne L19
0090 .dbline 97
0090 ;
0090 ; SetB(CLK);
0090 01E0 ldi R16,1
0092 B6DF xcall _SetB
0094 .dbline 98
0094 ; j=Delay;
0094 62E0 ldi R22,2
0096 L22:
0096 .dbline 99
0096 L23:
0096 .dbline 99
0096 ; while(j--);
0096 262E mov R2,R22
0098 3324 clr R3
009A 6150 subi R22,1
009C 2220 tst R2
009E D9F7 brne L22
00A0 .dbline 101
00A0 ;
00A0 ; ClrB(CLK);
00A0 01E0 ldi R16,1
00A2 BBDF xcall _ClrB
00A4 .dbline 102
00A4 ; j=Delay;
00A4 62E0 ldi R22,2
00A6 L25:
00A6 .dbline 103
00A6 L26:
00A6 .dbline 103
00A6 ; while(j--);
00A6 262E mov R2,R22
00A8 3324 clr R3
00AA 6150 subi R22,1
00AC 2220 tst R2
00AE D9F7 brne L25
00B0 .dbline 104
00B0 ; }
00B0 18C0 xjmp L18
00B2 L17:
00B2 .dbline 106
00B2 ; else
00B2 ; {
00B2 .dbline 107
00B2 ; ClrB(DIO);
00B2 02E0 ldi R16,2
00B4 B2DF xcall _ClrB
00B6 .dbline 108
00B6 ; j=Delay;
00B6 62E0 ldi R22,2
00B8 L28:
00B8 .dbline 109
00B8 L29:
00B8 .dbline 109
00B8 ; while(j--);
00B8 262E mov R2,R22
00BA 3324 clr R3
00BC 6150 subi R22,1
00BE 2220 tst R2
00C0 D9F7 brne L28
00C2 .dbline 111
00C2 ;
00C2 ; SetB(CLK);
00C2 01E0 ldi R16,1
00C4 9DDF xcall _SetB
00C6 .dbline 112
00C6 ; j=Delay;
00C6 62E0 ldi R22,2
00C8 L31:
00C8 .dbline 113
00C8 L32:
00C8 .dbline 113
00C8 ; while(j--);
00C8 262E mov R2,R22
00CA 3324 clr R3
00CC 6150 subi R22,1
00CE 2220 tst R2
00D0 D9F7 brne L31
00D2 .dbline 115
00D2 ;
00D2 ; ClrB(CLK);
00D2 01E0 ldi R16,1
00D4 A2DF xcall _ClrB
00D6 .dbline 116
00D6 ; j=Delay;
00D6 62E0 ldi R22,2
00D8 L34:
00D8 .dbline 117
00D8 L35:
00D8 .dbline 117
00D8 ; while(j--);
00D8 262E mov R2,R22
00DA 3324 clr R3
00DC 6150 subi R22,1
00DE 2220 tst R2
00E0 D9F7 brne L34
00E2 .dbline 118
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -