通過調整可調變阻器,LCD上顯示相應電壓值。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
仿真圖.png (172.72 KB, 下載次數: 68)
下載附件
2021-12-23 19:42 上傳
51hei.png (218.62 KB, 下載次數: 57)
下載附件
2021-12-23 23:18 上傳
單片機源程序如下:
- #include <reg51.h>
- #include <stdio.h>
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define DATA P2 //數據端口
- sbit start = P3^0; //
- sbit EOC = P3^1;
- sbit OE = P3^4;
- sbit RS = P3^7; //指令數據選擇
- sbit E = P3^5; //指令數據控制
- sbit RW = P3^6; //讀寫控制
- sbit busy = P2^7; //忙標志
- sbit CS1 = P3^2; //左屏幕選擇,低電平有效
- sbit CS2 = P3^3; //右屏幕選擇
- sbit LED = P0^1;
- /////////////////////////////////////// LCD /////////////////////////////////////
- const uchar code SZ[] = {
- 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,/*"0",0*/
- 0x00,0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,/*"1",1*/
- 0x00,0x70,0x08,0x08,0x08,0x08,0xF0,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,/*"2",2*/
- 0x00,0x30,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x18,0x20,0x21,0x21,0x22,0x1C,0x00,/*"3",3*/
- 0x00,0x00,0x80,0x40,0x30,0xF8,0x00,0x00,0x00,0x06,0x05,0x24,0x24,0x3F,0x24,0x24,/*"4",4*/
- 0x00,0xF8,0x88,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x20,0x20,0x20,0x11,0x0E,0x00,/*"5",5*/
- 0x00,0xE0,0x10,0x88,0x88,0x90,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x20,0x1F,0x00,/*"6",6*/
- 0x00,0x18,0x08,0x08,0x88,0x68,0x18,0x00,0x00,0x00,0x00,0x3E,0x01,0x00,0x00,0x00,/*"7",7*/
- 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,/*"8",8*/
- 0x00,0xF0,0x08,0x08,0x08,0x10,0xE0,0x00,0x00,0x01,0x12,0x22,0x22,0x11,0x0F,0x00,/*"9",9*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,/*".",10*/
- };
- const uchar code Hzk[] = {
- 0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0x08,0x08,0xFF,0x08,0x09,0x0A,0xC8,0x08,0x00,
- 0x80,0x60,0x1F,0x00,0x10,0x20,0x1F,0x80,0x40,0x21,0x16,0x18,0x26,0x41,0xF8,0x00,/*"成",0*/
- 0x20,0x24,0x24,0xA4,0x7F,0x24,0x34,0x28,0x26,0x20,0xFE,0x02,0x22,0xDA,0x06,0x00,
- 0x04,0x02,0xFF,0x49,0x49,0x49,0x49,0xFF,0x00,0x00,0xFF,0x08,0x10,0x08,0x07,0x00,/*"都",1*/
- 0x00,0x80,0x60,0xF8,0x07,0x00,0x04,0x24,0x24,0x25,0x26,0x24,0x24,0x24,0x04,0x00,
- 0x01,0x00,0x00,0xFF,0x00,0x00,0x00,0xF9,0x49,0x49,0x49,0x49,0x49,0xF9,0x00,0x00,/*"信",2*/
- 0x00,0x00,0x00,0xFC,0x54,0x54,0x56,0x55,0x54,0x54,0x54,0xFC,0x00,0x00,0x00,0x00,
- 0x40,0x30,0x00,0x03,0x39,0x41,0x41,0x45,0x59,0x41,0x41,0x73,0x00,0x08,0x30,0x00,/*"息",3*/
- 0x00,0x04,0x04,0x04,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,/*"工",4*/
- 0x24,0x24,0xA4,0xFE,0x23,0x22,0x00,0x3E,0x22,0x22,0x22,0x22,0x22,0x3E,0x00,0x00,
- 0x08,0x06,0x01,0xFF,0x01,0x06,0x40,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x41,0x00,/*"程",5*/
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
- 0x80,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x80,0x00,/*"大",6*/
- 0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00,
- 0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x06,0x05,0x04,0x04,0x04,0x04,0x04,0x00 /*"學",7*/
- };
- const uchar code pic[]={
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x01,
- 0x00,0x00,0xC0,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x00,0xC0,0xFF,0xFF,0xFF,0xFF,0x01,
- 0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,
- 0x00,0x00,0xC0,0x01,0x80,0x03,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
- 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
- 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0xFC,0xFF,0x01,0xC0,0x07,0xC0,0x01,
- 0x00,0xFE,0xFF,0x01,0xC0,0x07,0xC0,0x01,0x00,0xFE,0xFF,0xC1,0xFF,0xFF,0xC7,0x01,
- 0x00,0xFE,0xFF,0xE1,0xFF,0xFF,0xCF,0x01,0x00,0xFE,0xFF,0xE1,0xFF,0xFF,0xCF,0x01,
- 0x00,0xFE,0xFF,0xE1,0xFF,0xFF,0xCF,0x01,0x00,0xFC,0xFF,0xC1,0xFF,0xFF,0xC7,0x01,
- 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
- 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
- 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
- 0x00,0x00,0xC0,0x01,0x80,0x03,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,
- 0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,
- 0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,
- 0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,
- 0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,
- 0x00,0x00,0xC0,0x01,0x80,0x03,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
- 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
- 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
- 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
- 0x00,0xF8,0xFF,0x01,0xC0,0x07,0xC0,0x01,0x00,0xFC,0xFF,0x01,0xC0,0x07,0xC0,0x01,
- 0x00,0xFC,0xFF,0x01,0xC0,0x07,0xC0,0x01,0x00,0xFC,0xFF,0x01,0xC0,0x07,0xC0,0x01,
- 0x00,0xFC,0xFF,0x01,0xC0,0x07,0xC0,0x01,0x00,0xF8,0xFF,0x01,0xC0,0x07,0xC0,0x01,
- 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
- 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,
- 0x00,0x00,0xC0,0x01,0xC0,0x07,0xC0,0x01,0x00,0x00,0xC0,0x01,0x80,0x03,0xC0,0x01,
- 0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,
- 0x00,0x00,0xC0,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x00,0xC0,0xFF,0xFF,0xFF,0xFF,0x01,
- 0x00,0x00,0xC0,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- void CheckState()
- {
- uchar dat;
- RS = 0;
- RW = 1;
-
- do
- {
- DATA = 0x00;
- E = 1;
- _nop_();
- dat = DATA;
- E = 0;
- dat = 0x80&dat;
- }while(!(dat==0x00));
-
- }
- void SendCommand(uchar com)
- {
- CheckState();
- RS = 0;
- RW = 0;
- DATA = com;
- E = 1;
- _nop_();
- _nop_();
- E = 0;
- }
- void SetLine(uchar page)
- {
- page = 0xb8|page;
- SendCommand(page);
- }
- void SetStartLine(uchar startLine)
- {
- startLine = 0xc0 | startLine;
- SendCommand(startLine);
- }
- void SetColumn(uchar column)
- {
- column &= 0x3f;
- column |= 0x40;
- SendCommand(column);
- }
- void SetOnOff(uchar onOff)
- {
- onOff |= 0x3e;
- SendCommand(onOff);
- }
- void WriteByte(uchar dat)
- {
- CheckState();
- RS=1;
- RW = 0;
- DATA = dat;
- E = 1;
- _nop_();
- _nop_();
- E = 0;
- }
- void SelectScreen(uchar screen)
- {
- switch(screen)
- {
- case 0: //全屏
- CS1 = 1;
- CS2 = 1;
- break;
- case 1: //左屏
- CS1 = 1;
- CS2 = 0;
- break;
- case 2: //右屏
- CS1 = 0;
- CS2 = 1;
- break;
- }
- }
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
51hei.png (11.1 KB, 下載次數: 76)
下載附件
2021-12-23 23:25 上傳
所有資料51hei附件下載:
AD數據通信.7z
(1.23 MB, 下載次數: 35)
2021-12-23 23:25 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|