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

📄 main.lis

📁 AVR控制12864液晶画圆弧,在AVR单片机的控制下完成圆弧的绘制。
💻 LIS
字号:
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\ygksb0108\programme2_can_run/m32_init.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 9
 0000           ; //******************************************************************************
 0000           ; //                                 本程序介绍
 0000           ; //                                          ---北京交通大学电气学院 杨罡 2008.8
 0000           ; //
 0000           ; //       编译环境ICC6.31,
 0000           ; //       使用ATMEGA32单片机 & KS0108B/HD61202控制器的128*64液晶
 0000           ; //
 0000           ; //   1、 本程序实现了基本的GUI绘图函数
 0000           ; //       void lcd_fill( uint8_t pattern);全屏幕填充函数
 0000                   .dbline 10
 0000           ; //       void lcd_erase(void);           擦除全屏幕的函数
 0000 2224              clr R2
 0002 2BBA              out 0x1b,R2
 0004                   .dbline 11
 0004           ; //       void lcd_update_all(void);      把缓冲区显示到液晶上的刷新函数
 0004 8FEF              ldi R24,255
 0006 8ABB              out 0x1a,R24
 0008                   .dbline 12
 0008           ; //       void lcd_dot( uint8_t x,  uint8_t y,  uint8_t mode); 任意坐标画点的函数
 0008 28BA              out 0x18,R2
 000A                   .dbline 13
 000A           ; //       void lcd_line( uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, uint8_t mode );
 000A 87BB              out 0x17,R24
 000C                   .dbline 14
 000C           ; //       任意(x1,y1)(x2,y2)两点之间的画直线函数,这个函数化很短的斜线时会出问题,一般的长斜线无问题
 000C 25BA              out 0x15,R2
 000E                   .dbline 15
 000E           ; //       void lcd_rect(  uint8_t x, uint8_t y, uint8_t width, uint8_t height,  uint8_t mode);
 000E 84BB              out 0x14,R24
 0010                   .dbline 16
 0010           ; //       画以(x,y)为左上角,高height,长width 的矩形的函数
 0010 22BA              out 0x12,R2
 0012                   .dbline 17
 0012           ; //       void lcd_box( uint8_t x,  uint8_t y, uint8_t width,  uint8_t height,  uint8_t mode);
 0012 81BB              out 0x11,R24
 0014                   .dbline -2
 0014           L1:
 0014                   .dbline 0 ; func end
 0014 0895              ret
 0016                   .dbend
 0016                   .dbfunc e init_devices _init_devices fV
                        .even
 0016           _init_devices::
 0016                   .dbline -1
 0016                   .dbline 22
 0016           ; //       画以(x,y)为左上角,高height,长width 的矩形并且用mode方式填充的函数
 0016           ; //       void lcd_circle( uint8_t xCenter,  uint8_t yCenter, uint8_t radius,  uint8_t mode);
 0016           ; //       画(xCenter,yCenter)为圆心,半径为radius的函数,圆心可以在屏幕外面,所以可以画弧:)
 0016           ; //    2、本程序实现多种字体
 0016           ; //         可以根据需求去font.h文件选择你需要的字体,提供了5点6点7点9点10点15点18点
 0016                   .dbline 24
 0016           ; //       的英文字体供用户选择,中文字库太大没有实现,不过一般英文就公用了吧
 0016           ; //       void lcd_text(uint8_t left, uint8_t top, uint8_t font,   char *str);
 0016 F894              cli
 0018                   .dbline 25
 0018           ; //       显示在坐标为(left,top)处显示字体为 font 的即时字符串 str
 0018 F3DF              xcall _port_init
 001A                   .dbline 27
 001A           ; //       void lcd_text_p(uint8_t left, uint8_t top, uint8_t font,  const char *str);  
 001A           ; //       显示在坐标为(left,top)处显示字体为 font 的存放在flash中的字符串 str
 001A 2224              clr R2
 001C 25BE              out 0x35,R2
 001E                   .dbline 28
 001E           ; //       font 参见font.h中的定义,需要先选择后使用
 001E 2BBE              out 0x3b,R2
 0020                   .dbline 29
 0020           ; //    3、移植性
 0020 29BE              out 0x39,R2
 0022                   .dbline 30
 0022           ; //         液晶很多,这个只是其中一种的程序,但是本程序是可以移植的,你只需根据具体
 0022 7894              sei
 0024                   .dbline -2
 0024           L2:
 0024                   .dbline 0 ; func end
 0024 0895              ret
 0026                   .dbend
 0026                   .dbfile C:\ygksb0108\programme2_can_run\main.c
 0026                   .dbfunc e project_init _project_init fV
                        .even
 0026           _project_init::
 0026                   .dbline -1
 0026                   .dbline 51
 0026           ; //       具体的液晶控制器去重写 LCD_DRIVER.H 和LCD_DRIVER.C 就可以了 
 0026           ; //    4、使用                                           
 0026           ; //         由于使用显示缓存区的缘故所以

⌨️ 快捷键说明

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