找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2843|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

求LCD1602實現(xiàn)數(shù)字,英文,中文,時間的源程序,用C語言,通俗易懂的適合新手

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:143939 發(fā)表于 2016-10-22 16:04 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
求一個89c51單片機和LCD1602用C語言編寫的源程序,實現(xiàn)數(shù)字,漢字,英文,時間的功能。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:111634 發(fā)表于 2016-10-22 16:52 | 只看該作者
本帖最后由 zl2168 于 2016-10-22 16:58 編輯

LCD1602能顯示數(shù)字和英文字母,不能顯示漢字,雖然可顯示自定義字符,但自定義字符存儲器容量有限,只有8個5*8點陣或4個5*11點陣,很難組成漢字。
回復(fù)

使用道具 舉報

板凳
ID:61002 發(fā)表于 2016-10-22 16:55 | 只看該作者
1602不能顯示漢字,至于程序有很多,在論壇,百度搜都是有很多的
回復(fù)

使用道具 舉報

地板
ID:143939 發(fā)表于 2016-10-22 17:15 | 只看該作者
zl2168 發(fā)表于 2016-10-22 16:52
LCD1602能顯示數(shù)字和英文字母,不能顯示漢字,雖然可顯示自定義字符,但自定義字符存儲器容量有限,只有8個 ...

可以分屏顯示,幫幫忙,很急
回復(fù)

使用道具 舉報

5#
ID:111634 發(fā)表于 2016-10-22 17:18 | 只看該作者
本帖最后由 zl2168 于 2016-10-22 17:21 編輯

要用12864
回復(fù)

使用道具 舉報

6#
ID:111634 發(fā)表于 2016-10-22 17:26 | 只看該作者
本帖最后由 zl2168 于 2016-10-22 17:28 編輯

實例90  開機顯示PC機時間的時鐘1302(LCD1602顯示)


DS 1302簡介


引腳功能


操作控制字


讀寫時序


片內(nèi)寄存器


讀寫子程序


電路設(shè)計


程序設(shè)計


Keil調(diào)試


Proteus仿真



Proteus仿真一下,確認有效。
實例90 開機顯示PC機時間的時鐘1302(LCD1602顯示).rar (50.36 KB, 下載次數(shù): 5)

摘自張志良編著《單片機實驗實訓(xùn)100例》 ISBN 978-7-5124-1603-1,北航社出版

書中電路和程序設(shè)計有詳細說明,程序語句條條有注解。






回復(fù)

使用道具 舉報

7#
ID:61002 發(fā)表于 2016-10-24 08:43 | 只看該作者
這個是以前找的12864的驅(qū)動程序,你可以參考,具體的還需要看你的接線
  1. /***************************************************************************
  2. 原創(chuàng)重慶三峽學(xué)院創(chuàng)新實驗室唐老鴨
  3. ***************************************************************************/
  4. #include <reg52.h>
  5. #include <string.h>
  6. #include "delay.h"
  7. #define uchar unsigned char
  8. #define uint unsigned int
  9. sbit RW=P2^5;  
  10. sbit EN=P2^6;
  11. uint Strlen(uchar *p)
  12. {
  13.         uint i;
  14.         for(i=0;*(p+i);i++);
  15.         return i;
  16. }
  17. void WriteBytes(uchar *p)
  18. {
  19.         uchar i,j,temp;
  20.     EN=0;
  21.         for(j=0;j<3;j++)
  22.         {
  23.                 temp=p[j];
  24.                 for(i=0;i<8;i++)
  25.                 {
  26.                         if(temp & 0x80)
  27.                   RW=1;
  28.                 else RW=0;
  29.                         EN=1;
  30.                         delay(1);
  31.                         EN=0;
  32.                         temp<<=1;
  33.                 }
  34.         }
  35.         RW=1;
  36. }
  37. void SerialWriteData(uchar send)
  38. {
  39.         uchar data1[3];
  40.         data1[0]=0xfa ;     //1111 1010向液晶寫數(shù)據(jù)
  41.         data1[1]=send & 0xf0;      //取高4位
  42.         data1[2]=(send<<4)&0xf0;       //取低4位
  43.         WriteBytes(data1);
  44. }
  45. void SerialWriteCmd(uchar send)
  46. {
  47.         uchar data1[3];
  48.         data1[0]=0xf8 ;                    //1111 1000向液晶寫命令
  49.         data1[1]=send & 0xf0;      //取高4位
  50.         data1[2]=(send<<4) & 0xf0;       //取低4位
  51.         WriteBytes(data1);       
  52. }
  53. void init_lcd()
  54. {
  55.         SerialWriteCmd(0x0C);
  56.         SerialWriteCmd(0x06);
  57.         SerialWriteCmd(0x01);
  58. }
  59. void display_12864(uchar hang,uchar lie,uchar *p)
  60. {
  61.         uchar i;
  62.         switch(hang)
  63.         {
  64.             case 1:SerialWriteCmd(0x80+lie);break;
  65.             case 2:SerialWriteCmd(0x90+lie);break;
  66.             case 3:SerialWriteCmd(0x88+lie);break;
  67.             case 4:SerialWriteCmd(0x98+lie);break;
  68.         }
  69.         for(i=0;i<strlen(p);i++)
  70.         {
  71.             SerialWriteData(p[i]);
  72.         }      
  73. }
復(fù)制代碼
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表