找回密码
 立即注册

QQ登录

只需一步,快速开始

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

Atmega64 LCD1602+proteus仿真程序

[复制链接]
ID:500483 发表于 2019-3-29 11:23 | 显示全部楼层 |阅读模式
单片机用的是AVR系列的Atmega64  LCD1602源程序+proteus仿真

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png

单片机源程序如下:
  1. #include <iom64v.h>
  2. #include <macros.h>
  3. #define  uchar unsigned char
  4. #define  uint  unsigned int

  5. #define  RS_H  PORTE|=BV(0)
  6. #define  RS_L  PORTE&=~BV(0)
  7. #define  RW_H  PORTE|=BV(1)
  8. #define  RW_L  PORTE&=~BV(1)
  9. #define  EN_H  PORTE|=BV(2)
  10. #define  EN_L  PORTE&=~BV(2)

  11. void delay(uint ms)
  12. {
  13.         uint i,j;
  14.         for(i=0;i<ms;i++)
  15.            {
  16.            for(j=0;j<1141;j++);
  17.        }
  18. }
  19. void write_com(uchar com)   //写命令函数
  20. {
  21.        RS_L;      //RS置低,写指令
  22.            RW_L;      //RW置低,写操作
  23.            PORTD=com;
  24.            delay(1);        
  25.            EN_H;      //使能端拉高
  26.            delay(1);
  27.            EN_L;    //使能端拉低
  28. }

  29. void write_dat(uchar dat)  //写数据函数
  30. {     
  31.        RS_H;
  32.            RW_L;
  33.            PORTD=dat;
  34.            delay(1);
  35.            EN_H;
  36.            delay(1);
  37.            EN_L;

  38. }

  39. void Lcd1602_init()
  40. {
  41.       DDRD=0XFF;
  42.           DDRE|=BV(0)|BV(1)|BV(2);
  43.           EN_L;
  44.           write_com(0X38);
  45.           delay(1);
  46.           write_com(0X01);
  47.           delay(1);
  48.           write_com(0X06);
  49.           delay(1);
  50.           write_com(0X0c);
  51.           delay(1);
  52. }

  53. void Lcd1602_Display(uchar addr,uchar num,uchar dat)
  54. {
  55.      write_com(addr+num);
  56.          write_dat(dat);
  57. }

  58. void  main()
  59. {
  60.       uchar i;
  61.           
  62.           Lcd1602_init();
  63.           //write_com(0X80+n);          n=0,1,2...15   第一行显示
  64.           //write_com(0x80+0x40+n);     n=0,1,2...15   第二行显示
  65.           Lcd1602_Display(0x80,0,'5');
  66.           Lcd1602_Display(0x80+0x40,0,'5');
  67.   
  68. }
复制代码

所有资料51hei提供下载:
LCD1602.zip (72.6 KB, 下载次数: 60)
回复

使用道具 举报

ID:516856 发表于 2019-11-14 08:52 | 显示全部楼层
太好了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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