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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12829|回復: 25
收起左側

STC15F204EA單片機簡易電壓表(順便實驗一下cowboy的2個IO驅動LCD1602方案

  [復制鏈接]
ID:51121 發表于 2013-6-20 23:28 | 顯示全部樓層 |閱讀模式
015134mzjvm33m5c3ud07m.jpg 015135jbrquopz6xxg6t3t.jpg 015137tasttgx5jyjggp5s.jpg 015138ur0zlltwoqrb0bbx.jpg 015140e6mhzw1ph8mc1116.jpg 015141z2y5utrmm4jn5knu.jpg 源代碼:
// STC 1T @ 12MHz
// P1.0        測量端
// P1.1 接基準源2.5V(TL431)
//
#include <STC15F204EA.H>

sbit IO_4 = P0^0;           //接LCD1602的引腳D4
sbit IO_E = P0^1;           //接LCD1602的引腳E

#define Set_xy(x,y) Send(0,(y<<6)|(x&15)|0x80)

uint8c ASC[]={
                      0x04,0x1F,0x15,0x1F,0x15,0x1F,0x04,0x07,   //0:電       
                      0x0F,0x08,0x0A,0x0A,0x0F,0x0A,0x13,0x0F,   //1:壓
                                  0x0f,0x09,0x09,0x0f,0x09,0x09,0x0f,0x00,   //2:
                                  0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00,   //3:
                                  0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x00,   //4:       
                      0x0f,0x09,0x0f,0x09,0x0f,0x09,0x11,0x00,   //5:
                                  0x0f,0x09,0x09,0x0f,0x09,0x09,0x0f,0x00,   //6:
                                  0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00    //7:
                         };

void YS14520us(void)   
{
    uint8 a,b,c;
    for(c=2;c>0;c--)
        for(b=238;b>0;b--)
            for(a=90;a>0;a--);
}

void YS660us(void)   
{
    uint8 a,b,c;
    for(c=2;c>0;c--)
        for(b=94;b>0;b--)
            for(a=9;a>0;a--);
}

void YS30us(void)  
{
    uint8 a;
     for(a=87;a>0;a--);
}

void YSms(uint8 n)
{
        uint8 a,b;       
        while(n)
        {
            for(b=222;b>0;b--)
        for(a=12;a>0;a--);
            n--;
        }
}
                               
void Send(uint8 RS, uint8 dat)
{
  uint8 i;

  for(i=2;i;i--)
  {
    if(dat & 0x80)IO_4 = 1;   else IO_4 = 0;
    YS14520us();           //14520us (5V,2.2KΩ,2.2uF,4.751065V)

    if(RS)IO_E = 1;

    if(dat & 0x40)IO_4 = 1;   else IO_4 = 0;
    YS660us();             //660us   (5V,2.2KΩ,100nF,4.751065V)

    if(dat & 0x20)IO_4 = 1;   else IO_4 = 0;
    YS30us();              //30us          (5V,2.2KΩ,4.7nF,4.725256V)

    IO_E = 1;
    if(dat & 0x10)IO_4 = 1;   else IO_4 = 0;
    NOP12();               //0.5us < t < 1.36us

    IO_E = 0;

    dat <<= 4;
  }
}

void Send_S(uint8 *p)
{
  while(*p) Send(1,*p++);
}

void Init_1602(void)
{
        uint8 i = 3;

        P0M0 = 0x03;            //P0.0、P0.1推挽輸出         
          IO_4 = 0;
          IO_E = 0;
          YSms(40);
                                    
        Send(0,0x33); YSms(1);                     
        Send(0,0x32); YSms(1);          
          Send(0,0x28); YSms(1);
          Send(0,0x0C); YSms(1);
        Send(0,0x06); YSms(1);
          Send(0,0x01); YSms(1);

          // 裝入CGRAM //
        Send(0,0x06);                      // CGRAM 地址自動加1
        Send(0,0x40);                      // CGRAM 地址設為 00處
    for(i=0;i<64;i++)Send(1,ASC);   // 按數組寫入數據
}

/* ADC操作『ADC_CONTR寄存器』常量定義 */
#define    ADC_POWER       0x80                  //ADC 電源控制位
#define    ADC_FLAG        0x10                  //ADC 完成標志
#define    ADC_START       0x08                  //ADC 啟動控制位
#define    ADC_speed_LL    0x00                  //540 時鐘
#define    ADC_speed_L     0x20                  //360 時鐘
#define    ADC_speed_H     0x40                  //180 時鐘
#define    ADC_speed_HH    0x60                  // 90 時鐘
/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
函數:A/D轉換初始化
      初次使用和更換 A/D 轉換通道要適當延時(20uS~200uS), 使輸入電壓穩定。
      以后如果不更換 A/D 轉換通道的話, 不需要加延時。
      如果輸入電壓信號源的內阻在10K以下,可不加延時。
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
void AD_Init()
{
     P1M0 |= 0x03;                           //P1.0、P1.1高阻模式
     P1M1 |= 0x03;            
         ADC_RES = 0;
         P1ASF = 0x03;                           // P1.0、P1.1口作為模擬功能A/D使用
         ADC_CONTR = ADC_POWER | ADC_speed_H ;  //打開A/D電源 ,轉換1次/270時鐘,默認P1.0通道      
     YS14520us();              //開電源后延時
}
/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
函數:A/D轉換程序
輸入:通道號0~7
返回:8位轉換值
說明:更換 A/D 轉換通道要適當延時(20uS~200uS)
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
uint8 ADC(uint8 CHa)
{
         s_uint8 CHb;

         if(CHa != CHb)                                   //檢測是否更換通道號
         {
            ADC_CONTR &= 0xF8;                   //清通道
                ADC_CONTR |= CHa;                   //更換通道
                YS660us();                       //更換 A/D 轉換通道要適當延時(20uS~200uS)
         }
         CHb = CHa;                                           //保存此次通道號

     ADC_CONTR |= ADC_START;       //ADC_START = 1啟動 AD 轉換,轉換結束ADC_START = 0
         NOP12();                                           //經過4個時鐘延時后,才能夠正確讀到ADC_CONTR控制寄存器的值
         while(!(ADC_CONTR & 0x10));
     ADC_CONTR &= ~ADC_FLAG;       //清0 ADC_FLAG 位, 停止A/D轉換
     return ADC_RES;               //返回轉換結果
}                       

void main(void)
{
        uint8  Value,TL431;
    uint16 Voltage;

        Init_1602();
        Send(0,0x01); //清屏
        AD_Init();

        while(1)
        {       
                        Value = ADC(0);
                        TL431 = ADC(1);
                        Voltage = 250*Value/TL431;

                        // 顯示 測量電壓值
                        Set_xy(0,0);
                        Send(1,0);
                        Send(1,1);
                        Send(1,':');
                        Send(1,' ');
                        Send(1,'0'+ Voltage/100);
                        Send(1,'.');
                        Send(1,'0'+ Voltage/10%10);
                        Send(1,'0'+ Voltage%10);
                        Send_S("V");

                        // 顯示 測量轉換值 : 基準源轉換值
                Set_xy(9,1);                  
                        Send(1,'0'+ Value/100);
                        Send(1,'0'+ Value/10%10);
                        Send(1,'0'+ Value%10);
                        Send(1,':');
                        Send(1,'0'+ TL431/100);
                        Send(1,'0'+ TL431/10%10);
                        Send(1,'0'+ TL431%10);
                        YSms(10);       
        }
}

評分

參與人數 1黑幣 +5 收起 理由
ssfc + 5 贊一個!

查看全部評分

回復

使用道具 舉報

ID:51343 發表于 2013-7-2 15:32 | 顯示全部樓層
好東西,51Hei(51黑)論壇有你更精彩.
回復

使用道具 舉報

ID:62553 發表于 2014-6-3 16:12 | 顯示全部樓層
比較給力  樓主
回復

使用道具 舉報

ID:55565 發表于 2014-8-18 18:54 | 顯示全部樓層
頂一下,很好不錯
回復

使用道具 舉報

ID:58502 發表于 2014-8-18 23:10 | 顯示全部樓層
為什么兩線也能驅動1602
回復

使用道具 舉報

ID:65361 發表于 2014-8-22 20:41 | 顯示全部樓層
收藏備用。。。。。
回復

使用道具 舉報

ID:47760 發表于 2014-9-13 06:35 | 顯示全部樓層
謝謝你的分享!
回復

使用道具 舉報

ID:51348 發表于 2014-9-14 02:11 | 顯示全部樓層
很好  學習  謝謝
回復

使用道具 舉報

ID:66181 發表于 2014-9-15 11:56 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

ID:51348 發表于 2014-9-17 09:11 | 顯示全部樓層
還沒看,應該很好
回復

使用道具 舉報

ID:61148 發表于 2014-10-12 22:21 | 顯示全部樓層
值的學習
回復

使用道具 舉報

ID:67281 發表于 2014-10-13 10:00 | 顯示全部樓層
給力  ,,,,,,,,,,
回復

使用道具 舉報

ID:69323 發表于 2014-11-23 22:05 | 顯示全部樓層
很準的,這個好呢。
回復

使用道具 舉報

ID:71359 發表于 2014-12-30 13:24 | 顯示全部樓層
謝謝樓主
回復

使用道具 舉報

ID:32627 發表于 2015-1-2 09:01 | 顯示全部樓層
頂一下,很好不錯!!!
回復

使用道具 舉報

ID:70330 發表于 2015-1-4 15:40 | 顯示全部樓層
頂一個,謝謝
回復

使用道具 舉報

ID:70330 發表于 2015-1-4 15:40 | 顯示全部樓層
好好學習學習
回復

使用道具 舉報

ID:66060 發表于 2015-4-27 18:17 | 顯示全部樓層
圖片不給力
回復

使用道具 舉報

ID:48994 發表于 2016-4-21 08:55 | 顯示全部樓層
學習了!
回復

使用道具 舉報

ID:112693 發表于 2016-4-21 23:29 | 顯示全部樓層
被測試電壓  連接何處???
回復

使用道具 舉報

ID:146045 發表于 2017-1-12 16:47 | 顯示全部樓層
感謝分享
回復

使用道具 舉報

ID:112693 發表于 2017-1-12 18:47 | 顯示全部樓層
能不能給個全面的介紹,包括線路圖之類的
回復

使用道具 舉報

ID:188031 發表于 2017-7-13 15:49 | 顯示全部樓層
下來改一下,可以用!編程還是不行啊
回復

使用道具 舉報

ID:127666 發表于 2018-8-28 17:30 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

ID:433219 發表于 2025-6-1 10:26 | 顯示全部樓層
Nubility  
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品国偷自产在线 | 国产91观看| 黄色一级片aaa | 亚洲三级在线 | 国产激情免费视频 | 日韩一级免费电影 | 五月婷婷中文 | 中文字幕亚洲一区 | 欧美精品网站 | 亚洲在线一区二区 | 久久久99精品免费观看 | 97精品国产97久久久久久免费 | 中文字幕第十一页 | 久久久999精品 | 成人欧美一区二区三区黑人孕妇 | 亚洲一区二区精品视频在线观看 | 国产精品久久久久久52avav | 天堂视频中文在线 | 伊人网站 | 精品香蕉一区二区三区 | 亚洲精品美女视频 | www在线| 日韩av大片免费看 | 精品亚洲一区二区三区 | 亚洲欧美日韩一区二区 | 能看的av| 天天射天天干 | 精品国产一区探花在线观看 | 成人精品免费视频 | 成人免费视频在线观看 | 97av视频| 黄色大片在线免费观看 | 欧美视频在线播放 | 2021狠狠天天天 | 亚洲激情专区 | 欧美一级三级在线观看 | 日韩播放 | 日韩精品一区二区三区中文在线 | 国产精品久久久久久久岛一牛影视 | 91在线视频播放 | 91精品国产综合久久久久久丝袜 |