基于arm9-s3c2440的数字相框的设计(编辑修改稿)内容摘要:
0x0 _ (0x2020001) ROM( Nandflash): K9F2G08,128字节 ; K9F2G08,256字节。 并没有映射到总线空间,近似认为是个外接 U盘。 在 nandflash启动模式下,上电后只有前 4K代码会自动运行(一般远远大于 4K),所以,其余部分要用户写程序复制到内存运行。 移植 Linux操作系统后,就选择这种模式。 SDRAM连接:地址线并联,数据线串联, 2片芯片的 地址线 是并联后与 CPU连接。 2种 ROM有开关选择 应用扩展板 用户可以根据项目需要删减: 13 1) 、 TFT LCD接口: 、 7寸屏 2)、触摸屏: 4线制电阻触摸屏 3) 、 USB HOST: USB主机设备接口,读写 U盘, USB鼠标识别 4) 、 SD卡接口:读写 SD卡 5) 、 ADC接口:模数转换,测电压的接口,充电电流,电压接口 6) 、 CMOS摄像头接口: 7) 、 GPIO:手电筒控制、继电器控制,高低电平 0和 1( 0V和 ) 8) 、 RS232:和电脑通讯, GPS,短信模块, RS485 通信 9)、双声道立体声输出: MP3, MP4播放 10) 、 录音 11) 、 USB SLAVE: USB从机,模拟 U盘,模拟 USB鼠标,模拟 USB触摸板 12)、 10/100M自适应网络接口:国际互联网 13) 、 RTC:百年历 2020~2099年 名字满屏滚动源程序: /*********************************************************************** *****模块名: *****功 能: LCD显示字符测试程序 *****说 明: 本程序是用的屏是 X35 (索尼 ) 其他屏可能要修改个别参数。 ***********************************************************************/ include //包含头文件 ,它在 工程目录 /Include/ /**********************************************************************/ define U8 unsigned char define U16 unsigned short define U32 unsigned int define M5D(n) ((n) amp。 0x1fffff) //用于设置显示缓存区时,取低 21位地址 define LCD_WIDTH 320 //屏幕的宽 define LCD_HEIGHT 240 //屏幕的高 //垂直同步信号的脉宽、后肩和前肩 define VSPW (0) //垂直同步信号的脉宽 (X35屏只能是该值 ) define VBPD (11) //垂直同步信号的后肩 define VFPD (3) //垂直同步信号的前肩 //水平同步信号的脉宽、后肩和前肩 define HSPW (0) //水平同步信号的脉宽 define HBPD (68) //水平同步信号的后肩 define HFPD (1) //水平同步信号的前肩 //显示尺寸 define LINEVAL (LCD_HEIGHT1) define HOZVAL (LCD_WIDTH1) //for define CLKVAL_TFT 7 //设置时钟信号 define MVAL_USED 0 // 当屏是 TFT时设置为 0, STN屏时设置为 1 define PNRMODE_TFT 3 //选择显示模式 TFT型 LCD define BPPMODE_TFT 12 //16位 TFT型 LCD //for LCDCON5 define BPP24BL 0 //32位数据表示 24位颜色值时,低位数据有效,高 8位无效 define INVVCLK 1 //像素值在 VCLK下降沿有效 define INVVLINE 1 //翻转 HSYNC信号 define INVVFRAME 1 //翻转 VSYNC信号 define INVVD 1 //翻转 VD信号极性 define INVVDEN 1 //翻转 VDEN信号极性 define PWREN 1 //使能 PWREN信号 define BSWP 0 //颜色数据字节不交换 define HWSWP 1 //颜色数据半字不交换 (24BPP时不用交换 ) //定义显示缓存区 320 240 14 //注意这里是定义成 U16类型,如果想用 24BPP则要用 U32 volatile U16 LCD_BUFFER[LCD_HEIGHT][LCD_WIDTH]。 // 汉字表: //(取模方式,横向取模,字节正序) unsigned char const zhen[]= { 0x00,0x00,0x08,0x00,0x00,0x20,0xFE,0xFC,0x0B,0xF8,0x01,0x20,0x28,0x40,0x0A,0x08, 0xFD,0x20,0x28,0x40,0x12,0x08,0x11,0xFC,0xFE,0x40,0x12,0x08,0x11,0x20,0xAA,0x78, } unsigned char const bao[]= { 0x33,0xF8,0x12,0x20,0xAA,0x48,0x30,0x40,0x7C,0x20,0xFE,0x48,0x50,0x40,0x13,0xFE, 0x10,0xA8,0x97,0xFC,0x10,0x70,0x10,0x98,0x10,0xE0,0x10,0xA8,0xFE,0x88,0x11,0x50, } unsigned char const zhu[]= { 0x10,0xA8,0x10,0x88,0x12,0x48,0x1D,0x24,0x10,0xAA,0x14,0x44,0xE1,0x24,0x1E,0xCA, 0x18,0x42,0x42,0x22,0xF0,0x8A,0x10,0x40,0x00,0x20,0x40,0x06,0x10,0x40,0x00,0x20, } /************************************************************************** ***** 函数名: LCD_Init(void) ***** 功能: LCD初始化 ***** 参数: 无 ***** 返回值: 无 ****************************************************************************/ void LCD_Init(void) { rGPCUP = 0x00000000。 rGPCCON = 0xaaaa02a9。 rGPDUP = 0x00000000。 rGPDCON=0xaaaaaaaa。 //Initialize VD[15:8] rLCDCON1=(CLKVAL_TFT8)|(MVAL_USED7)|(PNRMODE_TFT5)|(BPPMODE_TFT1)|0。 rLCDCON2=(VBPD24)|(LINEVAL14)|(VFPD6)|(VSPW)。 rLCDCON3=(HBPD19)|(HOZVAL8)|(HFPD)。 rLCDCON4=(HSPW)。 rLCDCON5 = (111) |(INVVCLK10) | (INVVLINE9) | (INVVFRAME8) | (07) | (INVVDEN6) | (PWREN3) |(BSWP1) | (HWSWP)。 rLCDSADDR1=(((U32)LCD_BUFFER22)21)|M5D((U32)LCD_BUFFER1)。 //如果是 24BPP时是 M5D( ((U32)LCD_BUFFER+(LCD_WIDTH*LCD_HEIGHT*4))1 )。 因为24BPP一个字占 4字节 rLCDSADDR2=M5D( ((U32)LCD_BUFFER+(LCD_WIDTH*LCD_HEIGHT*2))1 )。 rLCDSADDR3=LCD_WIDTH*2/2。 //如果是 24BPP时是 LCD_WIDTH*4/2 因为 24BPP一个字占 4字节 rLCDINTMSK|=(3)。 // MASK LCD Sub Interrupt LCD里应用一般用不到中断,关掉 rTCONSEL = 0。 // Disable LPC3480 rGPGUP=rGPGUPamp。 (~(14))|(14)。 // Pullup disable rGPGCON=rGPGCONamp。 (~(38))|(38)。 //GPG4=LCD_PWREN (设置 GPG4为 LCD电源管脚 ) rGPGDAT = rGPGDAT | (14)。 //10000 rLCDCON5=rLCDCON5amp。 (~(13))|(13)。 // PWREN(开电源使能 ) rLCDCON5=rLCDCON5amp。 (~(15))|(05)。 // INVPWREN(电源使能信号不反转 ) rLCDCON1|=1。 //开启 LCD显示这句不能少 } /*********************************************************************** ***** 函数名: PutPixel(void) ***** 功能: 绘制像素点 ***** 参数: x:横坐标 y:纵坐标 c颜色 ***** 返回值: 无 15 ***********************************************************************/ void PutPixel(U32 x,U32 y, U32 c ) { LCD_BUFFER[y][x] = c。 } /*********************************************************************** ***** 函数名: Draw_Text16(void) ***** 功能: 绘制大小为 16 16的中文字符 ***** 参数: x:横坐标 y:纵坐标 color文字颜色 backColor 文字背景颜色 ch:字模数组 ***** 返回值: 无 ***********************************************************************/ void Draw_Text16(U32 x,U32 y,U32 color,U32 backColor,const unsigned char ch[]) { unsigned short int i,j。 unsigned char mask,buffer。 for(i=0。 i16。 i++) { mask=0x80。 //掩码 1000 0000 buffer=ch[i*2]。 //提取一行的第一个字节 for(j=0。 j8。 j++) //左边 8点 { if(bufferamp。 mask) { PutPixel(x+j,y+i,color)。 //为笔画上色 } else { PutPixel(x+j,y+i,backColor)。 //填充背景色 } mask=mask1。 } mask=0x80。 //掩码 b。基于arm9-s3c2440的数字相框的设计(编辑修改稿)
相关推荐
算能力。 整体设计融合了 MMU、 AMBA BUS 和 Harvard(哈佛)结构。 具有独立的 16KB 指令 Cache 和 16KB 数据 Cache。 6 其内部结构框图见 图 11: 图 11 S3C2440A结构框图 7 硬件系统整体结构 体系结构: ( 1) 为手持设备和通用嵌入式应用提供片上集成系统解决方案。 ( 2) 16 或者 32 位 RISC 体系结构和 ARM920T
试、实现较难,系 统成本偏高。 视频采集芯片 +ARM 具有完整操作系统功能,拥有完备的网络协议栈和文件系统,功耗低,开发容易,成本较低。 缺少强大的运算能力,很难满足高实时性的场合。 根据上面的方案比较,对于网络视频监测系统来说,方案 1 由于没有强大的操作系统和网络协议栈,因此不太适合做网络视频监测系统;方案 2 是不错的选择,但是该方案采用了两个处理器,不但提高了成本,在设计
在挂载 U 盘之前可以通过 fdisk –l 命令查看 U 盘的名称 ,如图 5 所示 图 5 fdisk –l 命令查看 U 盘 9 安装步骤如下 ① mkdir /mnt /usb /*若有该目录,则可以不必创建 */ ② mount –t vfat /dev/sdb1 /mnt/usb /* 挂载 U 盘 */ ③ cd /mnt/usb/Linux /* 进入 U 盘的 Linux
下图所示的界面,在 Project Name下键入工程的名字,这里采用默认模式 Project1, 在 Project Directory下键入工程保存的路径: 设置好后,点击 OK,出现如下图: 16 四、 添加自己的源码 点击菜单 Project下的 Add File To Project„„ ,在弹出的窗口中,浏览自己的 Project文件夹下面的程序代码,将代码添加到创建的项目。
系统后,重启系统,将出现如下画面。 图 操作系统启动画面 Figure operating system to start screen 系统烧写成功 卫星接收测试 卫星接收测试的目的是检测接收到卫星的数量,以便在接收到相同卫星的情况下,检测 gps 信号。 测试位置:四川省成都市。 第一次测试:位置 — 室内 卫星数量 0 如下图: 20 图 第一次卫星接收测试 Figure The
远来说,希望操作人员只要给出要完成的任务,而机器能自动形成完成该任务的步骤,并自动完成它。 另一方面是,提高智能移动机器人的适应性,提高智能移动机器人适应环境变化的能力,这是就智能移动机器人与环境的关系而言,希望加强它们之间的交互关系。 智能移动机器人涉及到许 多关键技术,这些技术关系到智能移动机器人的智能性的高低。 这些关键技术主要有以下几个方面:多传感信息耦合技术