📄 训练项目七:键盘的使用.lis
字号:
.area vector(rom, abs)
.org 16
0010 0C94A300 jmp _key_check
.module _训练项目七:键盘的使用.c
.area data(ram, con, rel)
0000 _k::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 _n::
0001 .blkb 2
.area idata
0001 0000 .word 0
.area data(ram, con, rel)
.area text(rom, con, rel)
.area func_lit(rom, con, rel)
0000 L24:
0000 2200 .word `L8
0002 2A00 .word `L9
0004 3200 .word `L10
0006 3A00 .word `L11
0008 A100 .word `L6
000A A100 .word `L6
000C A100 .word `L6
000E A100 .word `L6
0010 4200 .word `L12
0012 4A00 .word `L13
0014 5200 .word `L14
0016 5A00 .word `L15
0018 A100 .word `L6
001A A100 .word `L6
001C A100 .word `L6
001E A100 .word `L6
0020 6200 .word `L16
0022 6A00 .word `L17
0024 7200 .word `L18
0026 7A00 .word `L19
0028 A100 .word `L6
002A A100 .word `L6
002C A100 .word `L6
002E A100 .word `L6
0030 8200 .word `L20
0032 8A00 .word `L21
0034 9200 .word `L22
0036 9A00 .word `L23
.area text(rom, con, rel)
; i -> R10
.even
0000 _main::
0000 ; /****************************************************************************
0000 ; ** File Name: 键盘的使用
0000 ; ** Createed By: Wangchangsong
0000 ; ** Create Date: 07/28/2008
0000 ; ** Version: 1.0
0000 ; ** Descriptions: led display
0000 ; **
0000 ; **---------------------------------------------------------------------------
0000 ; ** Modified By:
0000 ; ** Modified Date:
0000 ; ** Version:
0000 ; ** Descriptions:
0000 ; **
0000 ; ****************************************************************************/
0000 ;
0000 ; #include <iom128v.h>
0000 ;
0000 ; #define data (PIND&0x04)==0x04
0000 ; /* 判断PD2是否为1 */
0000 ; #define set_cs asm("sbi 0x18,2")
0000 ; /* PB输出为1 */
0000 ; #define set_clk asm("sbi 0x18,3")
0000 ; /* PB3输出为1 */
0000 ; #define set_data asm("sbi 0x12,2")
0000 ; /* PD2输出为1 */
0000 ; #define cl_cs asm("cbi 0x18,2")
0000 ; /* PB2输出为0 */
0000 ; #define cl_clk asm("cbi 0x18,3")
0000 ; /* PB3输出为0 */
0000 ; #define cl_data asm("cbi 0x12,2")
0000 ; /* PD2输出为0 */
0000 ; #pragma interrupt_handler key_check:5
0000 ; /* 外部中断3 */
0000 ; unsigned char k = 0x00;n = 0;
0000 ;
0000 ; /****************************************************************************
0000 ; ** Function Name: main
0000 ; ** Descriptions:
0000 ; ** Input Parameters: uiTime
0000 ; ** Output parameters: void
0000 ; ** Returned Value: void
0000 ; **---------------------------------------------------------------------------
0000 ; ****************************************************************************/
0000 ;
0000 ; void main()
0000 ; {
0000 ; unsigned char i = 0;
0000 AA24 clr R10
0002 ;
0002 ; init_7279();
0002 E5D0 xcall _init_7279
0004 ; s_delay();
0004 49D1 xcall _s_delay
0006 ; send (0xA4);
0006 04EA ldi R16,164
0008 10E0 ldi R17,0
000A F4D0 xcall _send
000C 9AC0 xjmp L3
000E L2:
000E ; /* 复位 */
000E ; while(1)
000E ; {
000E ; switch(k)
000E 40910000 lds R20,_k
0012 5527 clr R21
0014 4134 cpi R20,65
0016 E0E0 ldi R30,0
0018 5E07 cpc R21,R30
001A 0CF4 brge X3
001C 92C0 xjmp L6
001E X3:
001E X0:
001E 8CE5 ldi R24,92
0020 90E0 ldi R25,0
0022 8417 cp R24,R20
0024 9507 cpc R25,R21
0026 0CF4 brge X4
0028 8CC0 xjmp L6
002A X4:
002A X1:
002A 80E0 ldi R24,<L24
002C 90E0 ldi R25,>L24
002E FA01 movw R30,R20
0030 E154 subi R30,65
0032 F040 sbci R31,0
0034 EE0F lsl R30
0036 FF1F rol R31
0038 E80F add R30,R24
003A F91F adc R31,R25
003C 2790 elpm R2,Z+
003E 3690 elpm R3,Z
0040 F101 movw R30,R2
0042 0994 ijmp
0044 L8:
0044 ; {
0044 ; case 65:set_cs;send(0xc8);send(0x00);break;/*下载数据且按方式1译码 */
0044 C29A sbi 0x18,2
0046 08EC ldi R16,200
0048 10E0 ldi R17,0
004A D4D0 xcall _send
004C 0027 clr R16
004E 1127 clr R17
0050 D1D0 xcall _send
0052 77C0 xjmp L6
0054 L9:
0054 ; case 66:set_cs;send(0xc8);send(0x01);break;
0054 C29A sbi 0x18,2
0056 08EC ldi R16,200
0058 10E0 ldi R17,0
005A CCD0 xcall _send
005C 01E0 ldi R16,1
005E 10E0 ldi R17,0
0060 C9D0 xcall _send
0062 6FC0 xjmp L6
0064 L10:
0064 ; case 67:set_cs;send(0xc8);send(0x02);break;
0064 C29A sbi 0x18,2
0066 08EC ldi R16,200
0068 10E0 ldi R17,0
006A C4D0 xcall _send
006C 02E0 ldi R16,2
006E 10E0 ldi R17,0
0070 C1D0 xcall _send
0072 67C0 xjmp L6
0074 L11:
0074 ; case 68:set_cs;send(0xc8);send(0x03);break;
0074 C29A sbi 0x18,2
0076 08EC ldi R16,200
0078 10E0 ldi R17,0
007A BCD0 xcall _send
007C 03E0 ldi R16,3
007E 10E0 ldi R17,0
0080 B9D0 xcall _send
0082 5FC0 xjmp L6
0084 L12:
0084 ; case 73:set_cs;send(0xc8);send(0x04);break;
0084 C29A sbi 0x18,2
0086 08EC ldi R16,200
0088 10E0 ldi R17,0
008A B4D0 xcall _send
008C 04E0 ldi R16,4
008E 10E0 ldi R17,0
0090 B1D0 xcall _send
0092 57C0 xjmp L6
0094 L13:
0094 ; case 74:set_cs;send(0xc8);send(0x05);break;
0094 C29A sbi 0x18,2
0096 08EC ldi R16,200
0098 10E0 ldi R17,0
009A ACD0 xcall _send
009C 05E0 ldi R16,5
009E 10E0 ldi R17,0
00A0 A9D0 xcall _send
00A2 4FC0 xjmp L6
00A4 L14:
00A4 ; case 75:set_cs;send(0xc8);send(0x06);break;
00A4 C29A sbi 0x18,2
00A6 08EC ldi R16,200
00A8 10E0 ldi R17,0
00AA A4D0 xcall _send
00AC 06E0 ldi R16,6
00AE 10E0 ldi R17,0
00B0 A1D0 xcall _send
00B2 47C0 xjmp L6
00B4 L15:
00B4 ; case 76:set_cs;send(0xc8);send(0x07);break;
00B4 C29A sbi 0x18,2
00B6 08EC ldi R16,200
00B8 10E0 ldi R17,0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -