找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1988|回复: 2
打印 上一主题 下一主题
收起左侧

51单片机仿真lcd12864显示

[复制链接]
跳转到指定楼层
楼主


单片机源程序如下:
  1. #include "lcd12864.h"

  2. /* LCD写指令函数 */
  3. void LCD_Write_Com(unsigned char Com)
  4. {
  5.         LCD_E  = 0;
  6.         LCD_RW = 0;
  7.         LCD_RS = 0;
  8.         LCD_E  = 1;
  9.         DB     = Com;
  10.         LCD_E  = 0;
  11. }

  12. /* LCD写数据函数 */
  13. void LCD_Write_Data(unsigned char Data)
  14. {
  15.         LCD_E  = 0;
  16.         LCD_RW = 0;
  17.         LCD_RS = 1;
  18.         LCD_E  = 1;
  19.         DB     = Data;
  20.         LCD_E  = 0;
  21. }

  22. /* LCD写数据函数 */
  23. void LCD_Clear(void)
  24. {
  25.         unsigned char i,j;
  26.        
  27.         /* 选择需要操作的半屏 */
  28.         LCD_CS1 = 0;
  29.         LCD_CS2 = 0;
  30.        
  31.         /* 设置LCD屏幕地址 */
  32.         LCD_Write_Com(First_Line);
  33.         LCD_Write_Com(First_Col);
  34.        
  35.         for(i = 0; i < 8; i++)     //LCD12864一共有8页
  36.         {
  37.                 LCD_Write_Com(First_Page + i); //控制页地址递增
  38.                 for(j = 0;j < 64; j++)
  39.                 {
  40.                         LCD_Write_Data(0x00);    //写入数据刷白屏幕
  41.                 }
  42.         }
  43. }

  44. /* LCD初始化函数 */
  45. void LCD_Init(void)
  46. {
  47.         LCD_Write_Com(Disp_On);     //开启液晶屏显示
  48.         LCD_Clear();
  49. }

  50. /* 16*16大小的中文显示函数
  51. Page:在那一页
  52. Col: 在那一列
  53. *DZK:需要显示什么
  54. Num: 需要显示字模数组中的第几个汉字
  55. */
  56. void LCD_Chinses_Disp(unsigned char Page, unsigned char Col, unsigned char *DZK, unsigned char Num)
  57. {
  58.         unsigned char i,j;
  59.        
  60.         Col = Col * 16;
  61.         Num = Num * 32;
  62.        
  63.         LCD_Write_Com(First_Page + Page);
  64.         LCD_Write_Com(First_Col + Col);
  65.        
  66.         for(i = 0; i < 2; i++)
  67.         {
  68.                 LCD_Write_Com(First_Page + Page + i);
  69.                 LCD_Write_Com(First_Col + Col);
  70.                 for(j = 0; j < 16; j++)
  71.                 {
  72.                         LCD_Write_Data( DZK[16 * i + j + Num] );
  73.                 }
  74.         }
  75. }

复制代码

所有资料51hei提供下载:
hello.rar (46.41 KB, 下载次数: 37)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:299050 发表于 2018-3-29 19:35 | 只看该作者
慢慢学习
回复

使用道具 举报

板凳
ID:398758 发表于 2018-9-28 21:37 | 只看该作者
刚下载看看怎么样,慢慢学习争取能弄明白,谢谢!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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