找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机+ADC0808+LCD12864显示电池图标 Proteus仿真程序

[复制链接]
跳转到指定楼层
楼主
通过调整可调变阻器,LCD上显示相应电压值。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. #include <reg51.h>
  2. #include <stdio.h>
  3. #include <intrins.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. #define DATA P2   //数据端口

  7. sbit start = P3^0;   //
  8. sbit EOC = P3^1;
  9. sbit OE = P3^4;

  10. sbit RS = P3^7;    //指令数据选择
  11. sbit E = P3^5;    //指令数据控制
  12. sbit RW = P3^6;    //读写控制
  13. sbit busy = P2^7;   //忙标志
  14. sbit CS1 = P3^2;   //左屏幕选择,低电平有效
  15. sbit CS2 = P3^3;   //右屏幕选择
  16. sbit LED = P0^1;

  17. /////////////////////////////////////// LCD /////////////////////////////////////
  18. const uchar code SZ[] = {
  19. 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,/*"0",0*/
  20. 0x00,0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,/*"1",1*/
  21. 0x00,0x70,0x08,0x08,0x08,0x08,0xF0,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,/*"2",2*/
  22. 0x00,0x30,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x18,0x20,0x21,0x21,0x22,0x1C,0x00,/*"3",3*/
  23. 0x00,0x00,0x80,0x40,0x30,0xF8,0x00,0x00,0x00,0x06,0x05,0x24,0x24,0x3F,0x24,0x24,/*"4",4*/
  24. 0x00,0xF8,0x88,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x20,0x20,0x20,0x11,0x0E,0x00,/*"5",5*/
  25. 0x00,0xE0,0x10,0x88,0x88,0x90,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x20,0x1F,0x00,/*"6",6*/
  26. 0x00,0x18,0x08,0x08,0x88,0x68,0x18,0x00,0x00,0x00,0x00,0x3E,0x01,0x00,0x00,0x00,/*"7",7*/
  27. 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,/*"8",8*/
  28. 0x00,0xF0,0x08,0x08,0x08,0x10,0xE0,0x00,0x00,0x01,0x12,0x22,0x22,0x11,0x0F,0x00,/*"9",9*/
  29. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,/*".",10*/
  30. };

  31. const uchar code Hzk[] = {
  32. 0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0x08,0x08,0xFF,0x08,0x09,0x0A,0xC8,0x08,0x00,
  33. 0x80,0x60,0x1F,0x00,0x10,0x20,0x1F,0x80,0x40,0x21,0x16,0x18,0x26,0x41,0xF8,0x00,/*"成",0*/
  34. 0x20,0x24,0x24,0xA4,0x7F,0x24,0x34,0x28,0x26,0x20,0xFE,0x02,0x22,0xDA,0x06,0x00,
  35. 0x04,0x02,0xFF,0x49,0x49,0x49,0x49,0xFF,0x00,0x00,0xFF,0x08,0x10,0x08,0x07,0x00,/*"都",1*/

  36. 0x00,0x80,0x60,0xF8,0x07,0x00,0x04,0x24,0x24,0x25,0x26,0x24,0x24,0x24,0x04,0x00,
  37. 0x01,0x00,0x00,0xFF,0x00,0x00,0x00,0xF9,0x49,0x49,0x49,0x49,0x49,0xF9,0x00,0x00,/*"信",2*/

  38. 0x00,0x00,0x00,0xFC,0x54,0x54,0x56,0x55,0x54,0x54,0x54,0xFC,0x00,0x00,0x00,0x00,
  39. 0x40,0x30,0x00,0x03,0x39,0x41,0x41,0x45,0x59,0x41,0x41,0x73,0x00,0x08,0x30,0x00,/*"息",3*/

  40. 0x00,0x04,0x04,0x04,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,
  41. 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,/*"工",4*/

  42. 0x24,0x24,0xA4,0xFE,0x23,0x22,0x00,0x3E,0x22,0x22,0x22,0x22,0x22,0x3E,0x00,0x00,
  43. 0x08,0x06,0x01,0xFF,0x01,0x06,0x40,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x41,0x00,/*"程",5*/

  44. 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
  45. 0x80,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x80,0x00,/*"大",6*/

  46. 0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00,
  47. 0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x06,0x05,0x04,0x04,0x04,0x04,0x04,0x00 /*"学",7*/
  48. };

  49. const uchar code pic[]={
  50. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  51. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x01,
  52. 0x00,0x00,0xC0,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x00,0xC0,0xFF,0xFF,0xFF,0xFF,0x01,
  53. 0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,
  54. 0x00,0x00,0xC0,0x01,0x80,0x03,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
  55. 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
  56. 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0xFC,0xFF,0x01,0xC0,0x07,0xC0,0x01,
  57. 0x00,0xFE,0xFF,0x01,0xC0,0x07,0xC0,0x01,0x00,0xFE,0xFF,0xC1,0xFF,0xFF,0xC7,0x01,
  58. 0x00,0xFE,0xFF,0xE1,0xFF,0xFF,0xCF,0x01,0x00,0xFE,0xFF,0xE1,0xFF,0xFF,0xCF,0x01,
  59. 0x00,0xFE,0xFF,0xE1,0xFF,0xFF,0xCF,0x01,0x00,0xFC,0xFF,0xC1,0xFF,0xFF,0xC7,0x01,
  60. 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
  61. 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
  62. 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
  63. 0x00,0x00,0xC0,0x01,0x80,0x03,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,
  64. 0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,
  65. 0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,
  66. 0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,
  67. 0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,
  68. 0x00,0x00,0xC0,0x01,0x80,0x03,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
  69. 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
  70. 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
  71. 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
  72. 0x00,0xF8,0xFF,0x01,0xC0,0x07,0xC0,0x01,0x00,0xFC,0xFF,0x01,0xC0,0x07,0xC0,0x01,
  73. 0x00,0xFC,0xFF,0x01,0xC0,0x07,0xC0,0x01,0x00,0xFC,0xFF,0x01,0xC0,0x07,0xC0,0x01,
  74. 0x00,0xFC,0xFF,0x01,0xC0,0x07,0xC0,0x01,0x00,0xF8,0xFF,0x01,0xC0,0x07,0xC0,0x01,
  75. 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
  76. 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
  77. 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0x00,0xC0,0x01,0x80,0x03,0xC0,0x01,
  78. 0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,
  79. 0x00,0x00,0xC0,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x00,0xC0,0xFF,0xFF,0xFF,0xFF,0x01,
  80. 0x00,0x00,0xC0,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  81. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  82. };
  83. void CheckState()
  84. {
  85.         uchar dat;
  86.         RS = 0;
  87.         RW = 1;
  88.    
  89.         do
  90.         {
  91.                 DATA = 0x00;
  92.                 E = 1;
  93.                 _nop_();
  94.                 dat = DATA;
  95.                 E = 0;
  96.                 dat = 0x80&dat;
  97.         }while(!(dat==0x00));
  98.    
  99. }

  100. void SendCommand(uchar com)
  101. {
  102.         CheckState();
  103.         RS = 0;
  104.         RW = 0;
  105.         DATA = com;
  106.         E = 1;
  107.         _nop_();
  108.         _nop_();
  109.         E = 0;
  110. }

  111. void SetLine(uchar page)
  112. {
  113.         page = 0xb8|page;
  114.         SendCommand(page);
  115. }

  116. void SetStartLine(uchar startLine)
  117. {
  118.         startLine = 0xc0 | startLine;
  119.         SendCommand(startLine);
  120. }

  121. void SetColumn(uchar column)
  122. {
  123.         column &= 0x3f;
  124.         column |= 0x40;
  125.         SendCommand(column);
  126. }

  127. void SetOnOff(uchar onOff)
  128. {
  129.         onOff |= 0x3e;
  130.         SendCommand(onOff);
  131. }

  132. void WriteByte(uchar dat)
  133. {
  134.         CheckState();
  135.         RS=1;
  136.         RW = 0;
  137.         DATA = dat;
  138.         E = 1;
  139.         _nop_();
  140.         _nop_();
  141.         E = 0;
  142. }

  143. void SelectScreen(uchar screen)
  144. {
  145.         switch(screen)
  146.         {
  147.                 case 0: //全屏
  148.                 CS1 = 1;
  149.                 CS2 = 1;
  150.                 break;
  151.                 case 1: //左屏
  152.                 CS1 = 1;
  153.                 CS2 = 0;
  154.                 break;
  155.                 case 2: //右屏
  156.                 CS1 = 0;
  157.                 CS2 = 1;
  158.                 break;
  159.         }
  160. }
  161. ……………………

  162. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码


所有资料51hei附件下载:
AD数据通信.7z (1.23 MB, 下载次数: 35)

评分

参与人数 1黑币 +40 收起 理由
admin + 40 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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