久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4383|回復: 3
打印 上一主題 下一主題
收起左側

51單片機控制角度儀Proteus仿真+源程序

[復制鏈接]
跳轉到指定樓層
樓主
角度儀仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
#define uint unsigned int
sbit        A0=P3^0;
sbit        E1=P3^1;
sbit        E2=P3^2;
sbit        RW=P3^3;
sbit        CS=P3^;
sbit        CLK=P3^6;
sbit        DOUT=P3^7;
#define LCD_DATA P0
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]);
                 
   }
else{         //????????????
   SetPage(2,2);
   SetAddress(address,address);
   if(window==1)PutCharR(p[d_where]);//??
   else PutCharL(p[d_where]);
   }
    x_add++;
    d_where++;
}}
void Draw_wordh2 (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(1,1);
     SetAddress(address,address);
     if(window==1)PutCharR(p[d_where]);
     else PutCharL(p[d_where]);
                 
   }
else{         //????????????
         SetPage(3,3);
   SetAddress(address,address);
   if(window==1)PutCharR(p[d_where+width]);//??
   else PutCharL(p[d_where+width]);
   }
    x_add++;
    d_where++;
}}
uint readadc()
{
        uint da=0;
  uchar I;
        CLK=0;
        CS=0;
        delay(5);
        CLK=1;
        delay(5);
        CLK=0;
        delay(5);
        for(I=0;I<12;I++)
        {
                da<<=1;
                CLK=1;
          delay(5);
                CLK=0;
          delay(5);
                da|=DOUT;
        }
        CS=1;
        return da;
}
void main()
                {
                        float a;
                        int b,c,e,f,g;
      lcdini();
                        clrscr();
                        //Draw_wordh(0,0,1,96,Y1);
                        //Draw_wordh2(0,0,1,96,Y2);
                while(1)
                {        
                        if(readadc()<661)
                          a=-0.823*readadc()+3595.401;
                        else if(readadc()>661&&readadc()<1352)
                          a=-0.918*readadc()+3636.668;
                        else
                                a=-0.86*readadc()+3526.97;
                        b=a;
                        c=b/1000;
                        e=b%1000/100;
                        f=b%100/10;
                        g=b%10;
                        Draw_wordh(0,0,0,8,&H1[88]);
                        Draw_wordh(0,8,0,8,&H1[96]);
                        Draw_wordh(0,16,0,8,&H1[c*8]);
                        Draw_wordh(0,24,0,8,&H1[e*8]);
                        Draw_wordh(0,32,0,8,&H1[f*8]);
                        Draw_wordh(0,40,0,8,&H1[80]);
                        Draw_wordh(0,48,0,8,&H1[g*8]);
                        Draw_wordh(0,56,0,16,&H1[104]);
                        
                        Draw_wordh2(0,0,0,8,&H2[88]);
                        Draw_wordh2(0,8,0,8,&H2[96]);
                        Draw_wordh2(0,16,0,8,&H2[c*8]);
                        Draw_wordh2(0,24,0,8,&H2[e*8]);
                        Draw_wordh2(0,32,0,8,&H2[f*8]);
                        Draw_wordh2(0,40,0,8,&H2[80]);
                        Draw_wordh2(0,48,0,8,&H2[g*8]);
                        Draw_wordh2(0,56,0,16,&H2[104]);
                }                        
        }

全部資料51hei下載地址:
傳感器顯示.zip (97.47 KB, 下載次數: 55)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:910270 發表于 2021-4-22 15:47 | 只看該作者
傳感器用的是什么呀
回復

使用道具 舉報

板凳
ID:830137 發表于 2022-4-13 16:17 | 只看該作者
公式怎么算啊?
回復

使用道具 舉報

地板
ID:1027797 發表于 2022-5-30 22:52 | 只看該作者
我想問一下你的AD是怎么算的
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人免费视频网站在线看 | 91 中文字幕 | 99精品久久久 | 一区二区三区av夏目彩春 | 福利精品 | 久久人人网| 精品久久久久久久人人人人传媒 | 天堂在线www| 99亚洲精品视频 | 久久国产精品视频观看 | 高清久久 | 欧美一区二区三区 | 久久激情视频 | 91婷婷韩国欧美一区二区 | 日韩三级一区 | 久久999 | 成人在线中文字幕 | 日日干天天操 | 国产精品区一区二 | 亚洲一区二区三区在线免费观看 | 一呦二呦三呦国产精品 | 91精品国产91久久久久久吃药 | 亚洲黄色高清视频 | 亚洲a一区二区 | 黄一区二区三区 | 国产精品久久久久久久久图文区 | 欧美精品久久 | 久久久视| 色橹橹欧美在线观看视频高清 | 午夜av电影 | 伊人在线 | 成人精品鲁一区一区二区 | 久久精品69 | 黄毛片 | 日韩久久久一区二区 | 国产1区2区在线观看 | 91色综合 | 1000部精品久久久久久久久 | 国产精品区一区二区三 | 欧美一区二区三区在线观看视频 | 亚洲a网|