找回密码
 立即注册

QQ登录

只需一步,快速开始

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

C8051F410单片机的lcd1602应用源程序

[复制链接]
跳转到指定楼层
楼主
ID:344274 发表于 2018-6-3 22:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机源程序如下:
  1. #include "C8051F410.h"
  2. //#include <INTRINS.H>
  3. #define  uchar  unsigned char
  4. #define  uint   unsigned int
  5. uchar code table[]="DIAN YA:";
  6. uchar code table1[]="Have A Good Time";
  7. uchar n;
  8. sbit lcdrs=P0^5;
  9. sbit lcden=P0^7;
  10. void delay(unsigned int ms)                   //延时函数
  11. {
  12.         unsigned char j=0;
  13.         unsigned int  i=0;
  14.         unsigned int  k=128;
  15.         j=OSCICN&0x07;
  16.         k=k>>j;
  17.         k=1500/k;
  18.         while(ms--)
  19.            {
  20.             for(i=0;i<k;i++);
  21.     }

  22. }

  23. /*void delay_1ms(void)
  24. {
  25.      unsigned int idata i;
  26.      for(i=0;i<3;i++);
  27. }
  28. void delay(unsigned int z)
  29. {
  30.      unsigned int idata i;
  31.      for(i=0;i<z;i++)
  32.      {
  33.           delay_1ms();
  34.      }
  35. } */
  36. void init_410()
  37. {      
  38.     OSCICN=0x87;
  39.     P0MDOUT   = 0xff;                                        //液晶控制端口
  40.     P2MDOUT   = 0xFF;                                        //液晶数据口
  41.     XBR1      = 0x40;                                        //使能
  42.         PCA0MD    &= ~0x40;                                //关看门狗
  43. }

  44. void write_com(uchar com)
  45. {  

  46.    lcden=0;
  47.    lcdrs=0;
  48.    P2=com;
  49.    delay(10);
  50.    lcden=1;
  51.    delay(10);
  52.    lcden=0;
  53. }
  54. void write_data(uchar date)
  55. {  

  56.    lcden=0;
  57.    lcdrs=1;
  58.    P2=date;
  59.    delay(10);
  60.    lcden=1;
  61.    delay(10);
  62.    lcden=0;
  63. }
  64. void init_1602()
  65. {
  66.     lcden=0;
  67.         write_com(0x38);
  68.         write_com(0x0c);
  69.         write_com(0x06);//0x07全屏移动
  70.         write_com(0x01);

  71. }
  72. void main()
  73. {
  74.   init_410();
  75.   init_1602();
  76.   write_com(0x80);

  77.   for(n=0;n<8;n++)
  78.   {
  79.       write_data(table[n]);
  80.           //delay(5);

  81.   }
  82.   write_com(0x80+0x40);//第二行地址
  83.   for(n=0;n<16;n++)
  84.   {
  85.       write_data(table1[n]);
  86.          // delay(5);
  87.   }
  88. /* for(n=0;n<16;n++)
  89.    {
  90.        write_com(0x18);
  91.            delay(100);
  92.    }

  93.    // }           */

  94. while(1);//加死循环里 反复循环
  95. }

复制代码




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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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