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