欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    本科毕业设计---基于arm的汉字显示系统设计.doc

    • 资源ID:91645782       资源大小:2.02MB        全文页数:26页
    • 资源格式: DOC        下载积分:9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    本科毕业设计---基于arm的汉字显示系统设计.doc

    沈阳理工大学课程设计报告摘 要本文介绍了基于STM32的汉字显示系统设计。现如今LCD显示屏的技术和产业都取得了长足的发展,作为重要的现代信息发布媒体之一,LCD显示屏在证券交易、金融、交通、体育、广告等领域被广泛的应用。基于STM32的LCD显示可以更好的满足各种需求,也更便于操作和实现。通电后,复位到初始化状态可显示本次课程设计题目及成员等基本信息,可人为操作对显示信息的汉字进行自定义大小颜色及字体等等;通过字库制作软件制作相应的字库经过SD卡将自己所制作的字库中的汉字在屏幕中依次显示出来,同时可以通过按键控制实现显示汉字的速度、暂停、继续以及更新字库。本系统是利用STM32开发板配合SD卡实现将已存入字库中的汉字完整的显示在LCD彩色显示屏上。关键词: STM32; LCD液晶显示; 开关; 汉字显示目 录1 引言12 总体设计22.1 汉字显示的基本原理22.2 汉字显示设计分析22.3 系统的结构框图33 详细设计43.1 硬件设计43.1.1 ALIENTEK MiniSTM32开发板简介43.1.2 功能简介43.2 软件设计83.2.1 录字软件83.2.2 主函数部分93.2.3 硬件部分程序123.2.4 字库相关程序143.2.5 FAT系统193.2.6 程序流程图204 实验结果及分析214.1 硬件实验结果214.2 结果分析215 结论22参考文献23241 引言进入新世纪LCD显示屏的技术和产业都取得了长足的发展,作为重要的现代信息发布媒体之一,LCD显示屏在证券交易、金融、交通、体育、广告等领域被广泛的应用。伴随社会信息化进程的推进,LCD显示屏技术也在不断的推陈出新,应用领域愈加广阔。基于STM32的LCD显示可以更好的满足各种需求,也更便于操作和实现。现基于STM32在液晶显示屏幕上显示文本及图形。目前,显示技术和显示工业的发展迅速。显示技术是传递视觉的信息技术。液晶显示器件LCD是当今最有发展前途的一种平板显示器件,它具有很多独到的优异特性。它具有显示信息多、易于多彩化、体积小、重量轻、功耗低、寿命长、价格低、无辐射、无污染、接口控制方便等优点。实际的LCD应用中要显示的汉字一般很有限,并不需要完整的汉字库,再加上完整字库在程序中要占用大量空间,因而非完整汉字库的研究就有了其自身的现实必要性。本次课程设计主要以TFTLCD的LCD显示模块,完整的实现了汉字库的建立与显示。2 总体设计2.1 汉字显示的基本原理制作一个GBK字库,制作好的字库放在 SD 卡里面,然后通过 SD 卡,将字库文件复制到W25X16里,这样,W25X16就相当于一款汉字字库芯片了。 汉字在液晶上的显示其实就是一些点的显示与不显示,这就相当于我们的笔一样,有笔经过的地方就画出来,没经过的地方就不画。所以要显示汉字,我们首先要知道汉字的点阵数据,这些数据可以由专门的软件来生成。只要知道了一个汉字点阵的生成方法,那么我们在程序里面就可以把这个点阵数据解析成一个汉字。知道显示了一个汉字,就可以推及整个汉字库了。汉字在电脑里面存储不是以点阵数据的形式存储的,而是以内码的形式存储的,每个汉字对应着一个内码,在知道了内码之后再去字库里面查找这个汉字的点阵数据,然后在液晶上显示出来。这个过程我们是看不到,但是计算机是要去执行的。 嵌入式要显示汉字也与此类似:汉字内码->查找点阵库->解析->显示。 所以只要我们有了整个汉字库的点阵,就可以把电脑上的文本信息在嵌入式上显示出来了。2.2 汉字显示设计分析设计一个基于STM32系统,开机的时候先检测 W25X16中是否已经存在字库,如果存在,则按次序显示汉字。如果没有,则检测 SD卡和文件系统,并查找 SYSTEM 文件夹下的FONT 文件夹,在该文件夹内查找UNI2GBK.SYS和GBK16.FON。在检测到这些文件之后,就开始更新字库,更新完毕才开始显示汉字。具体要实现的目标如下:1.更新字库,即文档可进行变换;2. 初始状态显示本次课设的基本信息;3.可以将输出的文字进行字体、颜色、大小的变换;4. 可对显示过的汉字进行计数;5. 显示显每个汉字所对应的内存字节;6. 在运行过程中可实现暂停、继续、变速等功能。7. 每显示一个汉字后,LED0 小灯会闪烁提示一下。2.3 系统的结构框图暂停继续更新字库显示调速STM32F103RB芯片 SD卡创建字库在LCD上显示汉字 按键控制图2.1 系统结构框图3 详细设计3.1 硬件设计3.1.1 ALIENTEK MiniSTM32 开发板简介ALIENTEK MiniSTM32 开发板是一款迷你型的开发板,小巧而不小气,简约而不简单。它的外观尺寸只有8cm*10cm 大小,板子的设计充分考虑了成本与功能这两个矛盾面,再结合实际使用的经验及STM32的特点,可有可无的选择性价比最高的留下,最终确定了这样的设计。其资源丰富,设计灵活。 特点包括: 1)小巧。整个板子尺寸为8cm*10cm*2cm。 2)灵活。板上除晶振外的所有的IO 口全部引出,特别还有GPIOA 和GPIOB 的IO 口是按顺序引出的,可以极大的方便大家扩展及使用,另外板载独特的一键下载功能,避免了频繁设置B0、B1 带来的麻烦,直接在电脑上一键下载。 3)资源丰富。板载十多种外设及接口,可以充分挖掘STM32 的潜质。 4)质量过硬。沉金PCB+全新优质元器件+定制全铜镀金排针/排座+ 电源TVS 保护,坚若磐石。3.1.2 功能简介开机的时候先检测 W25X16中是否已经存在字库,如果存在,则按次序显示汉字。如果没有,则检测 SD卡和文件系统,并查找 SYSTEM 文件夹下的FONT 文件夹,在该文件夹内查找UNI2GBK.SYS和GBK16.FON。在检测到这些文件之后,就开始更新字库,更新完毕才开始显示汉字。每显示一个汉字LED0 小灯会闪烁一下。WK_UP按键调整显示汉字的速度;key1控制继续和暂停;key0更新SD卡。所要用到的硬件资源如下: 1)STM32F103RBT6。 2)外部LED0。 3)TFTLCD 液晶模块。 4)按键WK_UP、key1、key0。 5)W25X16。 6) SD卡。1、 STM32的简单介绍图3.1 STM32原理图选择STM32F103RBT6 作为MCU,原因是其性价比高,128K FLASH、20K SRAM、2 个SPI、3 个串口、1 个USB、1 个CAN、2 个12 位的ADC、RTC、51 个可用IO 脚,所以我们选择了它作为我们的主芯片。2、 外部LED0图3.2 外部LED0原理图其中PWR 是系统电源指示灯,为蓝色。LED0 和LED1 分别接在PA8 和PD2 上,PA8 还可以通过TIM1 的通道1 的PWM 输出来控制DS0 的亮度。3、 TFTLCD 液晶模块图3.3 TFTLCD 液晶显示原理图TFT_LCD 是一个通用的液晶模块接口。OLED 是一个给OLED 显示模块供电的接口,它和TFT_LCD 拼接在一起。当使用2.4/2.8的LCD 时,我们接到TFT_LCD 上就可以了,而当我们使用ALIENTEK的OLED 模块时,则接OLED 排阵做电源,同时会连接到TFT_LCD 上的部分管脚,从而实现OLED 与MCU 的连接。4、 按键图3.4 按键输入原理图KEY0 和KEY1 用作普通按键输入,分别连接在PA13 和PA15 上,他们都连接在了JTAG相关的引脚上(KEY0 还连接在SWDIO 上),KEY0 和KEY1 还和PS/2 的DAT 和CLK 线共用,他们都通过JTAG 的上拉电阻来提供上拉。 WK_UP 按键连接到PA0(STM32 的WKUP 引脚),它除了可以用作普通输入按键外,还可以用作STM32 的唤醒输入。这个按键是高电平触发的。5、 W25X16图3.5 25X16原理图这是ALIENTEK MiniSTM32 开发板板载的一颗 FLASH芯片,型号为W25X16。这颗芯片的容量为16M bit,也就是 2M字节,容量和AT45DB161 一样。适合存储不常修改的数据,比如字库等。6、 SD 卡图3.6 SD卡部分原理图插入SD 卡可以外扩大容量存储设备,可以用来记录数据。SD 卡我们使用的是SPI 模式通信,SD 卡的SPI 接口连接到STM32 的SPI1 上,SD_CS 接在PA3 上。3.2 软件设计汉字显示系统需要有STM32开发板配合SD卡使用,因此其程序需要分为以下几个文件夹,用来读取SD卡上的字库和UNICODE到GBK的转换码表的FAT系统文件,硬件组成文件HARDWARE系统文,汉字字库存储,及读取相应的文件TEXT文件,以及存放主程序文件USER文件件,和STM32的系统文件。3.2.1 录字软件双击如图所示的软件,进入主界面,如图3.7。选择中文>小字库>开始输入文本>创建>确定,如图3.8。完成后,将生成的文件拷入SD卡中。图3.7 点阵字库生成器图3.8 创建字库3.2.2 主函数部分int main(void)u32 fontcnt; u8 i,j; u16 fx,fy;u8 fontx2; u8 key; u16 t,ts;Stm32_Clock_Init(9); delay_init(72);uart_init(72,9600); LCD_Init(); KEY_Init(); LED_Init();SPI_Flash_Init();if(Font_Init()UPD:POINT_COLOR=BLACK;LCD_Clear(WHITE);LCD_ShowString(60,50," STM32 ");LCD_ShowString(60,70,"Font Updating.");SD_Initialize(); while(FAT_Init() LCD_ShowString(60,90,"FAT SYS ERROR"); i= SD_Initialize();if(i)LCD_ShowString(60,110,"SD_CARD ERROR"); delay_ms(500);LCD_Fill(60,90,240,126,WHITE);delay_ms(500); LED0=!LED0; LED1=!LED1; while(Update_Font()!=0) LCD_ShowString(60,110,"SYSTEM FILE LOST");delay_ms(500);LCD_ShowString(60,130,"Please Check.");delay_ms(500); LED0=!LED0; LED1=!LED1; ; LCD_Clear(WHITE); RESET:LCD_Clear(WHITE);POINT_COLOR=RED;Show_Str(5,5,"电子系统设计",16,0);Show_Str(140,5,"汉字显示系统",16,0); POINT_COLOR=BLUE; Show_Str(10,40,"内码:高字节 ",16,0);Show_Str(130,40,"低字节",16,0);Show_Str(10,60,"对应汉字",16,0);Show_Str(130,60,"计数器",16,0);Show_Str(60,270," 张政 马舒阳 刘佳萍 ",16,0);Show_Str(90,290," 2015年7月9日",16,0);POINT_COLOR=BLACK;fx=15; fy=80; ts=600;while(1)fontcnt=0;for(i=0x81;i<0xp;i+)fontx0=i; LCD_ShowNum(100,40,i,3,16);for(j=0x40;j<0xfe;j+) if(j=0x7f)continue;fontcnt+;LCD_ShowNum(210,40,j,3,16);LCD_ShowNum(190,60,fontcnt,5,16); fontx1=j; fx+=15;if(fx>=220) fx=5;fy+=20; if(fy>130) POINT_COLOR=RED;while(1)key=KEY_Scan();if(key=1)goto UPD;if(key=2)goto RESET;LCD_ShowString(60,190,"Show Over");delay_ms(500);LCD_ShowString(60,210,"Please Check.");delay_ms(500);LCD_Fill(60,210,220,230,WHITE); Show_Font(100,60,fontx,16,0);Show_Font(fx,fy,fontx,16,0); t=ts;while(t-) delay_ms(1);key=KEY_Scan();if(key=1)goto UPD;else if(key=2)while(1) key=KEY_Scan();if(key=1)goto UPD;if(key=2) break; break; else if(key=3) if(ts=600) ts=200;else ts=600; LED0=!LED0; 3.2.3 硬件部分程序void KEY_Init(void) / 键盘相应程序RCC->APB2ENR|=1<<2; GPIOA->CRL&=0XFFFFFFF0; GPIOA->CRL|=0X00000008; GPIOA->CRH&=0X0F0FFFFF; GPIOA->CRH|=0X80800000; GPIOA->ODR|=1<<13; GPIOA->ODR|=1<<15; u8 KEY_Scan(void) static u8 key_up=1; JTAG_Set(JTAG_SWD_DISABLE);if(key_up&&(KEY0=0 |KEY1=0 |KEY2=1) delay_ms(10); key_up=0;if(KEY0=0) JTAG_Set (SWD_ENABLE);return 1; else if(KEY1=0)JTAG_Set (SWD_ENABLE); return 2;else if(KEY2=1)JTAG_Set (SWD_ENABLE); return 3; else if (KEY0=1&&KEY1=1&&KEY2=0) key_up=1; JTAG_Set(SWD_ENABLE); return 0;void LED_Init(void) / led相应程序 RCC->APB2ENR|=1<<2; RCC->APB2ENR|=1<<5; GPIOA->CRH&=0XFFFFFFF0; GPIOA->CRH|=0X00000003; GPIOA->ODR|=1<<8; GPIOD->CRL&=0XFFFFF0FF;GPIOD->CRL|=0X00000300;GPIOD->ODR|=1<<2; void SPIx_Init(void) /SD卡驱动程序RCC->APB2ENR|=1<<2; RCC->APB2ENR|=1<<12; GPIOA->CRL&=0X000FFFFF; GPIOA->CRL|=0XBBB00000; GPIOA->ODR|=0X7<<5; SPI1->CR1|=0<<10; SPI1->CR1|=1<<9; SPI1->CR1|=1<<8; SPI1->CR1|=1<<2; SPI1->CR1|=0<<11; SPI1->CR1|=1<<1; SPI1->CR1|=1<<0; SPI1->CR1|=7<<3; SPI1->CR1|=0<<7; SPI1->CR1|=1<<6; SPIx_ReadWriteByte(0xff); void SPIx_SetSpeed(u8 SpeedSet) SPI1->CR1&=0XFFC7;switch(SpeedSet) case SPI_SPEED_2: SPI1->CR1|=0<<3; break;case SPI_SPEED_4: SPI1->CR1|=1<<3; break;case SPI_SPEED_8: SPI1->CR1|=2<<3; break;case SPI_SPEED_16: SPI1->CR1|=3<<3; break;case SPI_SPEED_256: SPI1->CR1|=7<<3; break; SPI1->CR1|=1<<6; u8 SPIx_ReadWriteByte(u8 TxData)u8 retry=0; while(SPI1->SR&1<<1)=0) retry+; if(retry>200)return 0; SPI1->DR=TxData; retry=0;while(SPI1->SR&1<<0)=0) retry+; if(retry>200)return 0; return SPI1->DR; 3.2.4 字库相关程序u32 FONT16ADDR ; u32 FONT12ADDR ;u32 UNI2GBKADDR; #ifdef EN_UPDATE_FONTu8 temp512;u8 Update_Font(void) u32 fcluster=0; u32 i; u32 tempsys2; float prog; u8 t; FileInfoStruct FileTemp; if(FAT32_Enable) fcluster=FirstDirClust;else fcluster=0; FileTemp=F_Search (fcluster, (unsigned char *) folder0, T_FILE);if(FileTemp.F_StartCluster=0) return 1; FileTemp=F_Search(FileTemp.F_StartCluster, (unsigned char*)folder1, T_FILE);if(FileTemp.F_StartCluster=0) return 2; fcluster=FileTemp.F_StartCluster; FileTemp=F_Search (fcluster, (unsigned char *) sysfile2, T_SYS); if(FileTemp.F_StartCluster=0) return 3; LCD_ShowString (20,90,"Write UNI2GBK to FLASH.");LCD_ShowString (108,110,"%");F_Open(&FileTemp);i=0; while (F_Read (&FileTemp,temp) )if (i<FileTemp.F_Size) SPI_Flash_Write (temp,i+100000,512) ; i+=512;prog=(float)i/FileTemp.F_Size; prog*=100;if(t!=prog) t=prog; if(t>100) t=100;LCD_ShowNum(84,110,t,3,16); UNI2GBKADDR = 100000;tempsys0 = UNI2GBKADDR;tempsys1 = FileTemp.F_Size; SPI_Flash_Write(u8*)tempsys,0,8); delay_ms(1000); FONT16ADDR = FileTemp.F_Size+UNI2GBKADDR;FileTemp = F_Search(fcluster, (unsigned char*)sysfile0 , T_FON); if (FileTemp.F_StartCluste r= 0) return 4;LCD_ShowString (20,90,"Write FONT16 to FLASH. ");F_Open(&FileTemp);i=0; while(F_Read(&FileTemp,temp) if(i<FileTemp.F_Size) SPI_Flash_Write(temp,i+FONT16ADDR,512);i+=512; prog = (float)i/FileTemp.F_Size; prog* = 100; if(t!=prog) t=prog;if(t>100)t=100; LCD_ShowNum(84,110,t,3,16); tempsys0=FONT16ADDR;tempsys1=FileTemp.F_Size;SPI_Flash_Write(u8*)tempsys,8,8);delay_ms(1000);FONT12ADDR = FileTemp.F_Size+FONT16ADDR;t=0XAA; SPI_Flash_Write(&t,24,1); LCD_ShowString (20, 90," Font Update Successed ") ; return 0; #endif u8 Font_Init(void) u32 tempsys2; u8 fontok=0 ; SPI_Flash_Read(&fontok,24,1) ; if(fontok!=0XAA) return 1; SPI_Flash_Read(u8*)tempsys,0,8) ; UNI2GBKADDR=tempsys0; SPI_Flash_Read(u8*)tempsys,8,8) ; FONT16ADDR=tempsys0; SPI_Flash_Read(u8*)tempsys,16,8) ; FONT12ADDR=tempsys0; return 0; /获取字库资源信息void Get_HzMat (unsigned char *code,unsigned char *mat,u8 size) unsigned char qh,ql; unsigned char i; unsigned long foffset;qh=*code;ql=*(+code);if(qh<0x81 |ql<0x40 |ql=0xff |qh=0xff) for(i=0;i<(size*2);i+)*mat+=0x00;return; if(ql<0x7f)ql-=0x40; else ql-=0x41; qh-=0x81; foffset=(unsigned long)190*qh+ql)*(size*2);if(size=16)SPI_Flash_Read (mat,foffset+FONT16ADDR,32);else SPI_Flash_Read (mat,foffset+FONT12ADDR,24); void Show_Font (u16 x,u16 y,u8 *font,u8 size,u8 mode) u8 temp,t,t1; u16 y0=y; u8 dzk32; u16 tempcolor; Get_HzMat(font,dzk,size);if(mode=0)for(t=0;t<size*2;t+) temp=dzkt; for(t1=0;t1<8;t1+) if(temp&0x80) LCD_DrawPoint(x,y); else tempcolor=POINT_COLOR; POINT_COLOR=BACK_COLOR; LCD_DrawPoint(x,y); POINT_COLOR=tempcolor; temp<<=1; y+; if(y-y0)=size)y=y0;x+;break; else for (t=0; t<size*2; t+) temp=dzkt; for(t1=0;t1<8;t1+) if(temp&0x80) LCD_DrawPoint(x,y); temp<<=1; y+; if(y-y0)=size) y=y0;x+;break; void Show_Str(u16 x,u16 y,u8*str,u8 size,u8 mode) u8 bHz=0; while(*str!=0) if(!bHz) if (*str>0x80)bHz=1; else if(x > (LCD_W-size/2) y+=size; x=0 ; if (y > (LCD_H-size) break; if (*str=13) y+=size; x=0; str+; else LCD_ShowChar(x,y,*str,size,mode); str+; x+=size/2; else bHz=0; if(x>(LCD_W-size) y+=size; x=0; if(y>(LCD_H-size) break; Show_Font(x,y,str,size,mode); str+=2; x+=size; u16 my_strlen(u8*str) u16 len=0; while(*str!='0') str+; len+; return len; void my_stradd( u8*str1, u8*str2 )while(*str1!='0') str1+; while(*str2!='0')*str1=*str2;str2+; str1+;*str1='0' void Show_Str_Mid(u16 x,u16 y,u8*str,u8 size,u8 len) u16 strlenth=0;strlenth=my_strlen(str);strlenth*=size/2;if(strlenth>len)Show_Str(x,y,str,size,1);else strlenth=(len-strlenth)/2;Show_Str(strlenth+x,y,str,size,1); 3.2.5 FAT系统/用来读取SD卡上的字库FAT系统相关程序:DWORD FirstDirClust; DWORD FirstDataSector;WORD BytesPerSector; DWORD FATsectors;WORD SectorsPerClust; DWORD FirstFATSector;DWORD FirstDirSector; fat32DWORD RootDirSectors;DWORD RootDirCount;BYTE FAT32_Enable;DWORD Cur_Dir_Cluster; FAT_TABLE FAT_TAB; FileInfoStruct F_Info3; u8 fat_buffer512;u8 LongNameBuffer MAX_LONG_NAME_SIZE; BOOL LongNameFlag = 0;const unsigned char *filetype23= "MP1","MP2","MP3","MP4","M4A","3GP","3G2","OGG","ACC","WMA","WAV","MID","FLA","LRC","TXT","C ","H "," ","FON","SYS","BMP","JPG","JPE" ;3.2.6 程序流程图结束复制SD卡创建字库开始SD卡插入开发板在LCD中显示相应汉字按键暂停/继续更新字库按键变速否Key1Key0WK_UP图3.9 程序流程图4 实验结果及分析4.1 硬件实验结果图4.1 实验结果4.2 结果分析开机的时候先检测 W25X16中是否已经存在字库,如果存在,则按次序显示汉字。如果没有,则检测SD卡和文件系统,并查找SYSTEM文件夹下的FONT文件夹,在该文件夹内查找UNI2GBK.SYS和GBK16.FON。在检测到这些文件之后,就开始更新字库,更新完毕才开始显示汉字。初始状态显示本次课设的基本信息;LCD显示屏上显示课题名称及成员信息,显示每个汉字所对应的内存字节还有对显示过的汉字进行计数;每显示一个汉字后,LED0 小灯会闪烁提示一下;在运行过程中按WK_UP键可加快汉字显示的速度,再次按下速度恢复慢速;key1控制继续和暂停;key0更新字库,即文档可进行变换。5 结论在本次设计中,经过不断地调试与改进,最终成功通过对STM32编程将SD卡中的汉字显示在TFT液晶显示屏上。也感谢老师们为我们提供的STM32开发板,它的功能强大、全面,对于我们以后的学习以及对书面上的知识更好的有了现实的实践。开发板小巧轻便,但接口器件都很全面,位置排版恰当合理,有效的利用了板子上的每一寸空间。性价比极高,资源丰富,运用灵活。当然我们的作品也略有不足。比如说,输出的汉字个数不能过多,多了之后会和屏幕上已有的汉字重合,影响视觉效果,这点也是我们尚待解决的问题。在现实生活当中,应该添加翻页效果,对显示的汉字个数没有限制,使系统应用起来更灵活。本次课程设计很好的锻炼了我们的动手能力以及团队合作能力,使我加深了对嵌入式的认识,并且熟悉了嵌入式系统的设计流程,收获丰硕。让我们开阔了视野,同时也增长了见识,在课余时间发挥想象和积极思考,锻炼了自己的思维能力。在修改程序等设计上我们大胆创新,敢于尝试,并且积极搜查资料,认真分析,选择出最优的程序组合,使整个系统能够按照设计要求稳定运行。参考文献1 韦东山. Linux应用开发完全手册.第二版.北京时代华都印刷有限公司, 2010:197221.2 龚跃玲,汪玲彦.基于STM32 的汉字显示的实现.第3版. 北京航空航天大学出版社, 2011:32-34.3 马忠梅.基于STM32的显示系统设计.第三版.电子工

    注意事项

    本文(本科毕业设计---基于arm的汉字显示系统设计.doc)为本站会员(知****量)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开