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

📄 lcdexper.lis

📁 AVR智能车灯控制系统,实现一些车灯的自动控制,还是多功能性,大家参考一下.
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module lcdexper.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\example\icc\lcd_exper\lcdexper.c
                        .area lit(rom, con, rel)
 0000           _Chanping1::
 0000 BCF2D2D7D0C5BAC5B2C9BCAFCFB5CDB3  .byte 188,242,210,215,208,197,186,197,178,201,188,175,207,181,205,179
 0010 00                .byte 0
 0011                   .dbsym e Chanping1 _Chanping1 A[17:17]kc
 0011           _jieguo_1::
 0011 C4CFB7BDD2BDBFC6B4F3D1A700        .byte 196,207,183,189,210,189,191,198,180,243,209,167,0
 001E                   .dbsym e jieguo_1 _jieguo_1 A[13:13]kc
 001E           _jieguo_2::
 001E C9FACEEFD2BDD1A7B9A4B3CCD1A7D4BA  .byte 201,250,206,239,210,189,209,167,185,164,179,204,209,167,212,186
 002E 00                .byte 0
 002F                   .dbsym e jieguo_2 _jieguo_2 A[17:17]kc
 002F           _jieguo_3::
 002F 32303035BCB6D3B0CFF1B9A4B3CC00    .byte 50,48,48,53,188,182,211,176,207,241,185,164,179,204,0
 003E                   .dbsym e jieguo_3 _jieguo_3 A[15:15]kc
 003E           _jieguo_4::
 003E C5B7D1F4B1F300    .byte 197,183,209,244,177,243,0
 0045                   .dbsym e jieguo_4 _jieguo_4 A[7:7]kc
                        .area text(rom, con, rel)
 0000                   .dbfile E:\example\icc\lcd_exper\lcdexper.c
 0000                   .dbfunc e Delay _Delay fV
 0000           ;              i -> R20,R21
 0000           ;              t -> R16,R17
                        .even
 0000           _Delay::
 0000 4A93              st -y,R20
 0002 5A93              st -y,R21
 0004                   .dbline -1
 0004                   .dbline 27
 0004           ; #include <iom16v.h>
 0004           ; #include <macros.h>
 0004           ; 
 0004           ; #define uchar unsigned char
 0004           ; #define uint unsigned int
 0004           ; 
 0004           ; #define DB PORTA
 0004           ; /******************************************************************** */
 0004           ; #define       SETBIT(x,y) (x|=(1<<y))      //set bit y in byte x
 0004           ; #define       CLRBIT(x,y) (x&=(~(1<<y)))   //clear bit y in byte x
 0004           ; #define       CHKBIT(x,y) (x&(1<<y))       //check bit y in byte x
 0004           ; /******************************************************************** */
 0004           ; #define       RS       0
 0004           ; #define       RW       1
 0004           ; #define       E        2
 0004           ; #define       PSB      3
 0004           ; #define       RST      4
 0004           ; 
 0004           ; unsigned flash char Chanping1[]={"简易信号采集系统"};
 0004           ; unsigned flash char jieguo_1[]={"南方医科大学"};
 0004           ; unsigned flash char jieguo_2[]={"生物医学工程学院"};
 0004           ; unsigned flash char jieguo_3[]={"2005级影像工程"};
 0004           ; unsigned flash char jieguo_4[]={"欧阳斌"};
 0004           ; 
 0004           ; //***************延时*********************************/
 0004           ; void Delay(uint t)
 0004           ; {
 0004                   .dbline 28
 0004           ;   uint i=0;
 0004 4427              clr R20
 0006 5527              clr R21
 0008                   .dbline 29
 0008           ;   for(i=0;i<=t;i++);
 0008 02C0              xjmp L5
 000A           L2:
 000A                   .dbline 29
 000A           L3:
 000A                   .dbline 29
 000A 4F5F              subi R20,255  ; offset = 1
 000C 5F4F              sbci R21,255
 000E           L5:
 000E                   .dbline 29
 000E 0417              cp R16,R20
 0010 1507              cpc R17,R21
 0012 D8F7              brsh L2
 0014           X0:
 0014                   .dbline -2
 0014           L1:
 0014                   .dbline 0 ; func end
 0014 5991              ld R21,y+
 0016 4991              ld R20,y+
 0018 0895              ret
 001A                   .dbsym r i 20 i
 001A                   .dbsym r t 16 i
 001A                   .dbend
 001A                   .dbfunc e delay_ms _delay_ms fV
 001A           ;             t2 -> R20
 001A           ;              t -> R16,R17
                        .even
 001A           _delay_ms::
 001A 4A93              st -y,R20
 001C                   .dbline -1
 001C                   .dbline 33
 001C           ; }
 001C           ; 
 001C           ; void  delay_ms(unsigned int t)
 001C           ; {
 001C                   .dbline 34
 001C           ;     unsigned char t2=200;
 001C 48EC              ldi R20,200
 001E 05C0              xjmp L8
 0020           L10:
 0020                   .dbline 35
 0020           ;       while(t--)while(t2--);   
 0020           L11:
 0020                   .dbline 35
 0020 242E              mov R2,R20
 0022 3324              clr R3
 0024 4150              subi R20,1
 0026 2220              tst R2
 0028 D9F7              brne L10
 002A           X1:
 002A           L8:
 002A                   .dbline 35
 002A 1801              movw R2,R16
 002C 0150              subi R16,1
 002E 1040              sbci R17,0
 0030 2220              tst R2
 0032 B1F7              brne L11
 0034 3320              tst R3
 0036 A1F7              brne L11
 0038           X2:
 0038                   .dbline -2
 0038           L6:
 0038                   .dbline 0 ; func end
 0038 4991              ld R20,y+
 003A 0895              ret
 003C                   .dbsym r t2 20 c
 003C                   .dbsym r t 16 i
 003C                   .dbend
 003C                   .dbfunc e port_init _port_init fV
                        .even
 003C           _port_init::
 003C                   .dbline -1
 003C                   .dbline 39
 003C           ; }  
 003C           ; 
 003C           ; void port_init(void)
 003C           ; {
 003C                   .dbline 40
 003C           ;       PORTA = 0xFF;
 003C 8FEF              ldi R24,255
 003E 8BBB              out 0x1b,R24
 0040                   .dbline 41
 0040           ;       DDRA  = 0xFF;
 0040 8ABB              out 0x1a,R24
 0042                   .dbline 42
 0042           ;       PORTB = 0xFF;
 0042 88BB              out 0x18,R24
 0044                   .dbline 43
 0044           ;       DDRB  = 0xFF;   
 0044 87BB              out 0x17,R24
 0046                   .dbline -2
 0046           L13:
 0046                   .dbline 0 ; func end
 0046 0895              ret
 0048                   .dbend
 0048                   .dbfunc e Check_Busy _Check_Busy fV
 0048           ;            dat -> <dead>
                        .even
 0048           _Check_Busy::
 0048                   .dbline -1
 0048                   .dbline 50
 0048           ; }
 0048           ; 
 0048           ; /*-----------------------------------------------------
 0048           ;   状态检查函数,判断是否处于忙状态
 0048           ; -------------------------------------------------------*/
 0048           ; void  Check_Busy(void)
 0048           ; {
 0048                   .dbline 52
 0048           ;       unsigned char dat;
 0048           ;       CLRBIT(PORTB,RS);  //RS=0
 0048 C098              cbi 0x18,0
 004A                   .dbline 53
 004A           ;       SETBIT(PORTB,RW);  //RW=1
 004A C19A              sbi 0x18,1
 004C                   .dbline 54
 004C           ;       DDRA=0x00;                      // portA as input
 004C 2224              clr R2
 004E 2ABA              out 0x1a,R2
 0050           L15:
 0050                   .dbline 56
 0050           ;       do
 0050           ;       {
 0050                   .dbline 57
 0050           ;               SETBIT(PORTB,E);
 0050 C29A              sbi 0x18,2
 0052                   .dbline 58
 0052           ;               CLRBIT(PORTB,E);
 0052 C298              cbi 0x18,2
 0054                   .dbline 59
 0054           ;     }
 0054           L16:
 0054                   .dbline 60
 0054           ;       while (PINA&0x80);
 0054 CF99              sbic 0x19,7
 0056 FCCF              rjmp L15
 0058           X3:
 0058                   .dbline -2
 0058           L14:
 0058                   .dbline 0 ; func end
 0058 0895              ret
 005A                   .dbsym l dat 1 c
 005A                   .dbend
 005A                   .dbfunc e Write_Command _Write_Command fV
 005A           ;        cmdcode -> R10
                        .even
 005A           _Write_Command::
 005A AA92              st -y,R10
 005C A02E              mov R10,R16
 005E                   .dbline -1
 005E                   .dbline 65
 005E           ; }
 005E           ; //**********************写命令到LCD***************************/
 005E           ; 
 005E           ; void Write_Command(uchar cmdcode)
 005E           ; {
 005E                   .dbline 66
 005E           ;   Check_Busy();
 005E F4DF              xcall _Check_Busy
 0060                   .dbline 67
 0060           ;   DDRB=0xff;
 0060 8FEF              ldi R24,255
 0062 87BB              out 0x17,R24
 0064                   .dbline 68
 0064           ;   CLRBIT(PORTB,RS);//RS=0;
 0064 C098              cbi 0x18,0
 0066                   .dbline 69
 0066           ;   CLRBIT(PORTB,RW);//RW=0;
 0066 C198              cbi 0x18,1
 0068                   .dbline 70
 0068           ;   DDRA=0xff;
 0068 8ABB              out 0x1a,R24
 006A                   .dbline 71
 006A           ;   DB=cmdcode;
 006A ABBA              out 0x1b,R10
 006C                   .dbline 72
 006C           ;   Delay(1);//Delay(1);
 006C 01E0              ldi R16,1
 006E 10E0              ldi R17,0
 0070 C7DF              xcall _Delay
 0072                   .dbline 73
 0072           ;   SETBIT(PORTB,E);//E=1;
 0072 C29A              sbi 0x18,2
 0074                   .dbline 74
 0074           ;   Delay(1);//Delay(1);Delay(1);
 0074 01E0              ldi R16,1
 0076 10E0              ldi R17,0
 0078 C3DF              xcall _Delay
 007A                   .dbline 75
 007A           ;   CLRBIT(PORTB,E);//E=0;
 007A C298              cbi 0x18,2
 007C                   .dbline -2
 007C           L18:
 007C                   .dbline 0 ; func end
 007C A990              ld R10,y+
 007E 0895              ret
 0080                   .dbsym r cmdcode 10 c
 0080                   .dbend
 0080                   .dbfunc e Write_Data _Write_Data fV
 0080           ;       datacode -> R10
                        .even
 0080           _Write_Data::
 0080 AA92              st -y,R10
 0082 A02E              mov R10,R16
 0084                   .dbline -1
 0084                   .dbline 79
 0084           ; }
 0084           ; //**************************写数据到LCD*************************/
 0084           ; void Write_Data(uchar datacode)
 0084           ; {
 0084                   .dbline 80
 0084           ;   Check_Busy();
 0084 E1DF              xcall _Check_Busy
 0086                   .dbline 81
 0086           ;   DDRB=0xff;
 0086 8FEF              ldi R24,255
 0088 87BB              out 0x17,R24
 008A                   .dbline 82
 008A           ;   SETBIT(PORTB,RS);//RS=1;
 008A C09A              sbi 0x18,0
 008C                   .dbline 83
 008C           ;   CLRBIT(PORTB,RW);//RW=0;
 008C C198              cbi 0x18,1
 008E                   .dbline 84
 008E           ;   DDRA=0xff;
 008E 8ABB              out 0x1a,R24
 0090                   .dbline 85
 0090           ;   DB=datacode;
 0090 ABBA              out 0x1b,R10
 0092                   .dbline 86
 0092           ;   Delay(1);//Delay(1);
 0092 01E0              ldi R16,1
 0094 10E0              ldi R17,0
 0096 B4DF              xcall _Delay
 0098                   .dbline 87
 0098           ;   SETBIT(PORTB,E);//E=1;
 0098 C29A              sbi 0x18,2
 009A                   .dbline 88
 009A           ;   Delay(1);//Delay(1);Delay(1);
 009A 01E0              ldi R16,1
 009C 10E0              ldi R17,0
 009E B0DF              xcall _Delay
 00A0                   .dbline 89
 00A0           ;   CLRBIT(PORTB,E);//E=0;
 00A0 C298              cbi 0x18,2
 00A2                   .dbline -2
 00A2           L19:
 00A2                   .dbline 0 ; func end
 00A2 A990              ld R10,y+
 00A4 0895              ret
 00A6                   .dbsym r datacode 10 c
 00A6                   .dbend
 00A6                   .dbfunc e Initial_LCD _Initial_LCD fV
                        .even
 00A6           _Initial_LCD::
 00A6                   .dbline -1
 00A6                   .dbline 93
 00A6           ; }
 00A6           ; //**************************初始化LCD***********************/
 00A6           ; void Initial_LCD(void) 
 00A6           ; {    
 00A6                   .dbline 94
 00A6           ;   Delay(10);
 00A6 0AE0              ldi R16,10

⌨️ 快捷键说明

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