标题: 基于51单片机的学号+名字 proteus仿真及程序 [打印本页]

作者: Dencince    时间: 2018-11-27 17:00
标题: 基于51单片机的学号+名字 proteus仿真及程序
基于AT89C51单片机,使用LM016L显示屏
通过KEIL编写输入学号+拼音姓名,输出HEX文件到

  1. #include<reg52.h>
  2.     int init();    //声明初始化函数
  3.     int write_com(unsigned char);//声明写命令函数
  4.     int write_date(unsigned char);//声明写数据函数
  5.     int delay(unsigned char);//声明延迟函数
  6.     unsigned char x;
  7.     sbit RS = P1^0;
  8.     sbit RW = P1^1;
  9.     sbit EN = P1^2;
  10.     unsigned char code table[]="15829806!";
  11.     unsigned char code table1[]="UANG DREG XEQNG";

  12. int main(void)//主函数
  13. {   
  14.     init();
  15.     write_com(0x80);   
  16.     for(x=0;x<8;x++)
  17.     {
  18.          write_date(table[x]);
  19.         delay(150);
  20.     }
  21.     write_com(0x80+0x40);   
  22.     for(x=0;x<17;x++)
  23.     {
  24.          write_date(table1[x]);
  25.         delay(150);
  26.     }
  27.     while(1);            
  28.     return 0;
  29. }

  30. int init()//初始化函数体
  31. {
  32.     EN = 0;
  33.     write_com(0X38);//设置16*2显示,5*7点阵,8位数据接口
  34.     write_com(0X0C);//设置开显示,不显示光标
  35.     write_com(0X06);//写一个字符时,整屏右移
  36.     write_com(0X01);//显示清零
  37.     return 0;
  38. }

  39. int write_com(unsigned char com)//写命令的函数体
  40. {
  41.     RS = 0;
  42.     RW = 0;
  43.     P0 = com;
  44.     delay(5);
  45.     EN = 1;
  46.     delay(5);
  47.     EN = 0;
  48.     return 0;        
  49. }

  50. int write_date(unsigned char date)//写数据的函数体
  51. {
  52.     RS = 1;
  53.     RW = 0;
  54.     P0 = date;
  55.     delay(5);
  56.     EN = 1;
  57.     delay(5);
  58.     EN = 0;
  59.     return 0;        
  60. }

  61. int delay(unsigned char xms)
  62. {
  63.     unsigned char x,y;
  64.     for(x=xms;x>0;x--)
  65.         for(y=110;y>0;y--);
  66.     return 0;
  67. }
复制代码

单片机中运行即可

学号.png (68.84 KB, 下载次数: 28)

工程图

工程图

作者: Dencince    时间: 2018-11-27 17:01
送给有需要的同学,.c文件用记事本打开也可以





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1