找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4976|回复: 1
收起左侧

stm32 4.3寸LCD汉字显示源码

[复制链接]
ID:343677 发表于 2018-7-20 11:46 | 显示全部楼层 |阅读模式
stm32 4.3寸LCD汉字显示源码 可直接使用

单片机源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"                           
  5. #include "lcd.h"  
  6. #include "key.h"     
  7. #include "usmart.h"
  8. #include "malloc.h"
  9. #include "sdio_sdcard.h"  
  10. #include "w25qxx.h"   
  11. #include "ff.h"  
  12. #include "exfuns.h"   
  13. #include "text.h"


  14. int main(void)
  15. {         
  16.         u32 fontcnt;                  
  17.         u8 i,j;
  18.         u8 fontx[2];//gbk码
  19.         u8 key,t;               

  20.         delay_init();                     //延时函数初始化          
  21.   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
  22.         uart_init(115200);                 //串口初始化为115200
  23.         usmart_dev.init(72);                //初始化USMART               
  24.         LED_Init();                                          //初始化与LED连接的硬件接口
  25.         KEY_Init();                                        //初始化按键
  26.         LCD_Init();                                           //初始化LCD   
  27.         W25QXX_Init();                                //初始化W25Q128
  28.         my_mem_init(SRAMIN);                //初始化内部内存池
  29.         exfuns_init();                                //为fatfs相关变量申请内存  
  30.         f_mount(fs[0],"0:",1);                 //挂载SD卡
  31.         f_mount(fs[1],"1:",1);                 //挂载FLASH.
  32.         while(font_init())                         //检查字库
  33.         {
  34. UPD:   
  35.                 LCD_Clear(WHITE);                           //清屏
  36.                 POINT_COLOR=RED;                        //设置字体为红色                                
  37.                 LCD_ShowString(30,50,200,16,16,"ELITE STM32F103 ^_^");       
  38.                 while(SD_Init())                        //检测SD卡
  39.                 {
  40.                         LCD_ShowString(30,70,200,16,16,"SD Card Failed!");
  41.                         delay_ms(200);
  42.                         LCD_Fill(30,70,200+30,70+16,WHITE);
  43.                         delay_ms(200);                    
  44.                 }                                                                                                                     
  45.                 LCD_ShowString(30,70,200,16,16,"SD Card OK");
  46.                 LCD_ShowString(30,90,200,16,16,"Font Updating...");
  47.                 key=update_font(20,110,16,"0:");//更新字库
  48.                 while(key)//更新失败               
  49.                 {                                           
  50.                         LCD_ShowString(30,110,200,16,16,"Font Update Failed!");
  51.                         delay_ms(200);
  52.                         LCD_Fill(20,110,200+20,110+16,WHITE);
  53.                         delay_ms(200);                       
  54.                 }                   
  55.                 LCD_ShowString(30,110,200,16,16,"Font Update Success!   ");
  56.                 delay_ms(1500);       
  57.                 LCD_Clear(WHITE);//清屏               
  58.         }  
  59.         POINT_COLOR=RED;      
  60.         Show_Str(30,50,200,16,"精英STM32F103开发板",16,0);                                             
  61.         Show_Str(30,70,200,16,"GBK字库测试程序",16,0);                                             
  62.         Show_Str(30,90,200,16,"正点原子@ALIENTEK",16,0);                                             
  63.         Show_Str(30,110,200,16,"2015年1月20日",16,0);
  64.         Show_Str(30,130,200,16,"按KEY0,更新字库",16,0);
  65.         POINT_COLOR=BLUE;  
  66.         Show_Str(30,150,200,16,"内码高字节:",16,0);                                             
  67.         Show_Str(30,170,200,16,"内码低字节:",16,0);                                             
  68.         Show_Str(30,190,200,16,"汉字计数器:",16,0);

  69.         Show_Str(30,220,200,24,"对应汉字为:",24,0);
  70.         Show_Str(30,244,200,16,"对应汉字(16*16)为:",16,0);                         
  71.         Show_Str(30,260,200,12,"对应汉字(12*12)为:",12,0);                         
  72.         while(1)
  73.         {
  74.                 fontcnt=0;
  75.                 for(i=0x81;i<0xff;i++)
  76.                 {               
  77.                         fontx[0]=i;
  78.                         LCD_ShowNum(118,150,i,3,16);                //显示内码高字节   
  79.                         for(j=0x40;j<0xfe;j++)
  80.                         {
  81.                                 if(j==0x7f)continue;
  82.                                 fontcnt++;
  83.                                 LCD_ShowNum(118,170,j,3,16);        //显示内码低字节         
  84.                                 LCD_ShowNum(118,190,fontcnt,5,16);//汉字计数显示         
  85.                                  fontx[1]=j;
  86.                                 Show_Font(30+132,220,fontx,24,0);          
  87.                                 Show_Font(30+144,244,fontx,16,0);                                            
  88.                                 Show_Font(30+108,260,fontx,12,0);                                            
  89.                                 t=200;
  90.                                 while(t--)//延时,同时扫描按键
  91.                                 {
  92.                                         delay_ms(1);
  93.                                         key=KEY_Scan(0);
  94.                                         if(key==KEY0_PRES)goto UPD;
  95.                                 }
  96.                                 LED0=!LED0;
  97.                         }   
  98.                 }       
  99.         }
  100. }

复制代码

所有资料51hei提供下载:
实验37 汉字显示实验.rar (1.61 MB, 下载次数: 97)
回复

使用道具 举报

ID:403138 发表于 2019-11-22 17:23 | 显示全部楼层
你好,能给我发一份么
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表