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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2864|回復(fù): 0
收起左側(cè)

基于51單片機(jī)和Proteus仿真的自動(dòng)換擋電壓表

[復(fù)制鏈接]
ID:517871 發(fā)表于 2019-5-9 17:29 | 顯示全部樓層 |閱讀模式
#include <AT89X52.H>

#define LEDDATA P0
#define v20_on {s3=0;s2=0;s1=1;} //宏定義不同量程,不同的開(kāi)關(guān)狀態(tài)
#define v2_on {s3=0;s2=1;s1=0;}
#define v02_on {s3=1;s2=0;s1=0;}
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
unsigned char dispbuf[8]={0,0,0,0,0,0,0,0};
unsigned char getdata;
unsigned long temp;
unsigned char i,k,l,m;
unsigned char code  mytable0[]=" Welcome to use  ";
unsigned char code  mytable1[]="Auto Voltmeter!";
unsigned char code line0[]="  Voltmeter   ";    //初始化顯示
unsigned char code line1[]=" Value:     V ";
//引腳定義
sbit lcdrs=P2^0;
sbit lcden=P2^1;                                                       
sbit s3=P3^7;  
sbit s2=P3^6;
sbit s1=P3^5;
sbit OE=P3^0;
sbit EOC=P3^1;
sbit ST=P3^2;

void delay(unsigned int z)      //延時(shí)子函數(shù)  z*1ms
{
        unsigned int x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
void write_com(unsigned char c)   //寫命令子函數(shù)
{
        lcdrs=0;                //低電平選擇為 寫指令
        lcden=0;               
        LEDDATA=c;                   //把指令寫入P0口
        delay(5);               //參考時(shí)序圖
        lcden=1;                //開(kāi)使能
        delay(5);               //讀取指令
        lcden=0;                //關(guān)閉使能         
}

void write_data(unsigned char d)  //寫數(shù)據(jù)子函數(shù)
{
        lcdrs=1;             //高電平選擇為 寫數(shù)據(jù)
        LEDDATA=d;                //把數(shù)據(jù)寫入P0口
        delay(5);            //參考時(shí)序圖
        lcden=1;             //開(kāi)使能
        delay(5);            //讀取數(shù)據(jù)
        lcden=0;                 //關(guān)閉使能
}
void initialize()      //LCD初始化函數(shù)
{   
    unsigned char num;
        lcden=0;
        write_com(0x38);   //設(shè)置16x2顯示,5x7點(diǎn)陣顯示,8位數(shù)據(jù)接口
        write_com(0x0c);   //00001DCB,D(開(kāi)關(guān)顯示),C(是否顯示光標(biāo)),B(光標(biāo)閃爍,光標(biāo)不顯示)
        write_com(0x06);   //000001N0,N(地址指針+-1)
        write_com(0x01);      //清屏指令  每次顯示下一屏內(nèi)容時(shí),必須清屏            
        write_com(0x80+0x10);           //第一行,頂格顯示                           
        for(num=0;num<17;num++)        
        {
                write_data(mytable0[num]);
                delay(10);
        }
        write_com(0x80+0x50);           //第二行,從第一格開(kāi)始顯示
        for(num=0;num<15;num++)      
        {
                write_data(mytable1[num]);
                delay(10);
        }
                for(num=0;num<16;num++)
        {
                write_com(0x1c);   //0001(S/C)(R/L)**;  S/C:高電平移動(dòng)字符,低電平移動(dòng)光標(biāo);  R/L:高電平左移,低電平右移
                delay(300);
        }
           delay(1000);
                     
        write_com(0x01);      //清屏指令  每次顯示下一屏內(nèi)容時(shí),必須清屏
        write_com(0x80);                                   
        for(num=0;num<14;num++)     
        {
                write_data(line0[num]);
                delay(10);
        }

        write_com(0x80+0x40);         
        for(num=0;num<15;num++)        
        {
                write_data(line1[num]);
                delay(10);
        }        
}
void value(unsigned char add,unsigned char dat)   
{       
         write_com(0x80+0x47+add);
         if(l==3&&add==2||l!=3&&add==1)
           {
              write_data(0x2e);
           }
         else
           {
              write_data(0x30+dat);
           }       
}
main()
{
   initialize();
   while(1)
_20v:
     {
       v20_on;                  
       ST=0;                  
       ST=1;
       ST=0;   
          while(EOC==0);
          OE=1;
                  getdata=P1;
          OE=0;
                   if(getdata<21)            
           {
             goto _2v;
           }
                  l=3;
              temp=getdata;      
          temp=(temp*1000/51)/2;
                  goto disp;

_2v:                          
         v2_on;
          ST=0;
          ST=1;
          ST=0;   
          while(EOC==0);
           OE=1;
           getdata=P1;
           OE=0;
           if(getdata<21)
           {
             goto _02v;
           }
           else if(getdata>204)
           {
             goto _20v;
           }
           l=2;
           temp=getdata;
           temp=(temp*1000/51)/2;
           goto disp;

_02v:                     
          v02_on;
          ST=0;
          ST=1;
          ST=0;   
          while(EOC==0);
           OE=1;
           getdata=P1;
           OE=0;
          if(getdata>204)
           {
             goto _2v;
           }
           l=1;
           temp=getdata;
           temp=(temp*1000/51)/2;
                   m=temp%10;
                   if(m>5){temp=temp/10+1;}
                   else{temp=temp/10;}
                   goto disp;

disp:          for(i=0;i<=3;i++)         
             {
               dispbuf[i]=temp%10;
               temp=temp/10;  
             }
                  if(l==3)
                    {
                           for(i=4;i>=3;i--)       
                           dispbuf[i]=dispbuf[i-1];
                    }
                  else
                   {
                          dispbuf[4]=dispbuf[3];
                   }
              for(k=0;k<5;k++)            
           {
                      value(k,dispbuf[4-k]);
               }
                 if(l==2){goto _2v;}
                 else if(l==1){goto _02v;}
          }
}

電壓表.png

基于51單片機(jī)和Proteus仿真的自動(dòng)換擋電壓表.zip

69.9 KB, 下載次數(shù): 23, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 蜜臀网| 久久精品国产一区 | 亚洲午夜视频 | 男女网站免费观看 | 在线观看中文字幕 | 久久久久国产精品一区二区 | 国产精品中文在线 | 日韩欧美中文字幕在线观看 | 91av视频在线 | 国产三区av | 国产成人精品一区二区 | 国产精品乱码一二三区的特点 | 美女三区| www.国产日本| 亚洲码欧美码一区二区三区 | www免费视频 | 91极品视频 | 中国一级特黄真人毛片 | 久久男女视频 | 久产久精国产品 | 日本二区在线观看 | 色嗨嗨| 不卡一二三区 | 成人免费看黄网站在线观看 | 日韩av福利在线观看 | 做a视频| h视频免费在线观看 | 国产精品欧美一区二区三区不卡 | 欧美二区乱c黑人 | 狠狠av | 精品日韩一区 | av一区在线观看 | 影视一区 | 黄色综合 | 国产96色在线 | 欧美精品一区二区三区在线 | 久久99精品国产99久久6男男 | 一二三四在线视频观看社区 | 免费看啪啪网站 | 国产精品一区在线 | 国产精品美女久久久久久久久久久 |