ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

基于51单片机的控制角度仪设计proteus仿真

2021-11-18 16:30:19  阅读:225  来源: 互联网

标签:0x08 uchar 0x00 0x20 51 0x10 单片机 proteus 0x88


仿真电路图:

在这里插入图片描述

部分参考代码:

#include<AT89X51.h>
#define uchar unsigned char
#define uint unsigned int
sbit	A0=P2^7;
sbit	E1=P2^6;
sbit	E2=P2^5;
sbit	RW=P2^4;
sbit	CS=P2^0;
sbit	CLK=P2^1;
sbit	DOUT=P2^2;
#define LCD_DATA P0
uchar code Y1[96]={
0x10,0x10,0xD0,0xFF,0x90,0x10,0x00,0x42,0xE2,0x52,0x4A,0xC6,0x42,0x40,0xC0,0x00,
0x10,0x60,0x02,0x8C,0x20,0x90,0x8E,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0x80,0x00,
0x00,0x70,0x08,0x08,0x08,0x08,0xF0,0x00,0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
0x00,0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0xE0,0x10,0x88,0x88,0x90,0x00,0x00,
0x00,0x18,0x08,0x08,0x88,0x68,0x18,0x00,0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
0x00,0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0xF8,0x00,0x00,0x00
};
uchar code Y2[96]={
0x04,0x03,0x00,0xFF,0x00,0x23,0x10,0x8C,0x43,0x20,0x18,0x47,0x80,0x40,0x3F,0x00,
0x04,0x04,0x7E,0x01,0x00,0x00,0xFC,0x44,0x44,0x44,0x44,0x44,0xFC,0x00,0x00,0x00,
0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,0x0F,0x11,0x20,0x20,0x20,0x1F,0x00,
0x00,0x00,0x00,0x3E,0x01,0x00,0x00,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00	
};
uchar code H1[120]={
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
0x00,0x00,0x10,0x10,0xF8,0x00,0x00,0x00,
0x00,0x70,0x08,0x08,0x08,0x08,0xF0,0x00,
0x00,0x30,0x08,0x08,0x08,0x88,0x70,0x00,	
0x00,0x00,0x80,0x40,0x30,0xF8,0x00,0x00,
0x00,0xF8,0x88,0x88,0x88,0x08,0x08,0x00,
0x00,0xE0,0x10,0x88,0x88,0x90,0x00,0x00,
0x00,0x18,0x08,0x08,0x88,0x68,0x18,0x00,
0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,
0x00,0xF0,0x08,0x08,0x08,0x10,0xE0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,
0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x00,
0x00,0x00,0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
uchar code H2[120]={
0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,
0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,
0x00,0x18,0x20,0x21,0x21,0x22,0x1C,0x00,
0x00,0x06,0x05,0x24,0x24,0x3F,0x24,0x24,
0x00,0x19,0x20,0x20,0x20,0x11,0x0E,0x00,
0x00,0x0F,0x11,0x20,0x20,0x20,0x1F,0x00,
0x00,0x00,0x00,0x3E,0x01,0x00,0x00,0x00,
0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,
0x00,0x01,0x12,0x22,0x22,0x11,0x0F,0x00,	
0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,
0x00,0x19,0x24,0x24,0x12,0x3F,0x20,0x00,
0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};


void delay(unsigned int i)
{
unsigned char k=200; 
while(i>0)
{
i--;
}
}
void OUTMD(uchar i){	//??
   A0=1; //???	//????
   delay(5);
   E1=1;
   delay(10);
   LCD_DATA=i;
   delay(5);
   E1=0;
}

void OUTSD(unsigned char i){	
   A0=1; //???//??//????
   delay(5);
   E2=1;
   delay(10);
   LCD_DATA=i;
   delay(5);
   E2=0;
}

void OUTMI(uchar i){   //??
   A0=0; //???//????
   delay(5);
   E1=1;
   delay(10);
   LCD_DATA=i;
   delay(5);
   E1=0;
}


void OUTSI(unsigned char i){	 
  A0=0; //???//??//????
  delay(5);
  E2=1;
  delay(10);
  LCD_DATA=i;
  delay(5);
  E2=0;
}



void lcdini(void){	//???
   RW=0;
   OUTMI(0XE2);  OUTSI(0XE2);//??
   OUTMI(0XAE);  OUTSI(0XAE);//POWER SAVE ??????,?????
   OUTMI(0XA4);  OUTSI(0XA4);//????
   OUTMI(0XA9);  OUTSI(0XA9);//1/32???
   OUTMI(0XA1);  OUTSI(0XA1);//?????,????
   OUTMI(0XE0);  OUTSI(0XE0);//??-??-???
   OUTMI(0XEE);  OUTSI(0XEE);//???  ???-??-???
   OUTMI(0X00);  OUTMI(0XC0);
   OUTSI(0X00);  OUTSI(0XC0);
   OUTMI(0XAF);  OUTSI(0XAF);//POWER SAVE ??????,?????
}


void SetPage ( uchar page0,uchar page1)
{
OUTMI(0xB8|page1);
OUTSI(0xB8|page0);
}


void SetAddress ( uchar address0,uchar address1)
{
 OUTMI(address1);
 OUTSI(address0); 
}

void PutCharR(uchar ch)
{
OUTSD(ch);
}


void PutCharL(uchar ch)
{
OUTMD(ch);
} 

void clrscr(void)
{
uchar  i;
uchar  page;
for (page=0;page<4;page++)
  {
    SetPage ( page, page);
    SetAddress(0,0);
    for (i=0;i<61;i++)
        {
          PutCharR(0);
          PutCharL(0);
        }
   }
} 


void Draw_wordh (uint d_where, uint x_add, bit layer, uchar width,uchar *p)
{		//???????
  uchar x, address;     //address?????????
  bit window=0;  //window??????
  d_where = d_where*2*width;		  	  	 
  for (x=width;x>0;x--){
   if (x_add>=61) {window=1;address=x_add%61;}
   else address=x_add;
   if(layer==0){ //??????????
     SetPage(0,0);
     SetAddress(address,address);
     if(window==1)PutCharR(p[d_where]);
     else PutCharL(p[d_where]);
		 
   }

链接:https://pan.baidu.com/s/1FoO_O20ooleGzcavlfgT5Q
提取码:1234

标签:0x08,uchar,0x00,0x20,51,0x10,单片机,proteus,0x88
来源: https://blog.csdn.net/jianghuxiaoge/article/details/121403859

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有