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

📄 main.s

📁 AVR控制12864液晶画圆弧,在AVR单片机的控制下完成圆弧的绘制。
💻 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 + -