c语言sscanf函数的用法是什么
299
2022-10-26
基于组件与Avalon总线、液晶屏的接口设计
1、引言
2、 硬件设计
从端信号与主端信号的连接用硬件描述语言描述:
assign LCD_DATA = iDATA;
assign LCD_ADDRESS = iADDRESS;
assign LCD_RD_N = 1;
assign LCD_WR_N = iWR_N;
assign LCD_CS_N = iCS_N;
由于始终对液晶屏进行写操作,不进行读操作,所以信号LCD_RD_N置1。
3 、软件设计
组件生成后,组件文件夹的结构如图2所示。
lcd_3224\inc文件夹下包含_regs.h文件,该文件定义硬件接口,例如:
#define IOWR_ LCD_DATA(base, data) IOWR(base, 0, data)
写参数有三个,base为组件的基地址,0表示地址偏移量,data为要写入的数据,重新定义后在源代码中可以使用自定义的名字对组件进行操作。
lcd_3224\hdl文件夹下包含.v文件,该文件描述组件的接口信号。
#include “sys/alt_dev.h” //包含定义组件结构的头文件
typedef struct alt_LCD_dev alt_LCD_dev; //定义组件结构
struct alt_LCD_dev
{
alt_dev dev;
int base;
};
……
……
#define Altera_AVALON_LCD_INSTANCE(name, device)
{
{
ALT_LLIST_ENTRY,
NAME##_NAME,
NULL, /* open */ //fopen可以访问lcd
NULL, /* close */
NULL, /* read */
alt_lcd_write, //fprintf将调用写函数访问液晶屏
NULL, /* lseek */
NULL, /* fstat */
NULL, /* ioctl */
},
name##_BASE
}
{
unsigned int base = dev-》base; //基地址由SOPC Builder自动生成
IOWR_ LCD_DATA(base, data); //访问底层硬件
}
初始化程序和写函数调用这些子程序完成对组件的初始化和各种操作。
4、 应用
根据液晶屏的功能及所使用的开发板,应用系统的硬件结构框图如图3所示。
#include
int main(void)
{
FILE * fd;
fd = fopen(/dev/lcd”, “w”); //lcd为SOPC Builder中的名字
{
fclose(fd);
}
……
return 0;
}
5、 总结
本文详细介绍了液晶屏接口组件的设计方法,核心部分是硬件描述语言文件的编写、时序的设计以及驱动程序的编写。调试成功后,可以把组件文件夹放到系统组件文件夹下,这样就可以重复使用。对于应用程序开发者,不用了解硬件结构就可以使用标准C函数操作组件,使得开发简便快捷,节省了时间和成本,是一种高效、灵活和低成本的开发方法。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~