標(biāo)題: 0-30V 4A數(shù)控穩(wěn)壓電源制作 單片機(jī)程序 [打印本頁]

作者: CoxWux    時(shí)間: 2022-9-20 17:26
標(biāo)題: 0-30V 4A數(shù)控穩(wěn)壓電源制作 單片機(jī)程序


單片機(jī)源程序如下:
#include"reg52.h"
#include"math.h"
#include"intrins.h"
#include"function.h"

#define DB P0

sbit RS = P1^4;
sbit RW = P1^5;
sbit E  = P1^6; void busy(void)//RS=0;RW=1;wait=0閑;wait!=0忙
{
    uchar wait;
    RS = 0;
    RW = 1;
    E = 1;
    for(;;)
    {
        wait = DB;
        wait &= 0x80;
        if(wait == 0)break;
    }
    E = 0;
}

/************************************************************************************
                   寫指令函數(shù)         
************************************************************************************/
void w_code(uchar c)//RS=0;RW=0;E下降沿
{
    busy();
    RS = 0;
    RW = 0;
    DB = c;
    E = 1;
    E = 0;
    DB = 0xff;
}

/************************************************************************************
                   寫數(shù)據(jù)函數(shù)        
************************************************************************************/
void w_data(uchar d)//RS=1;RW=0;E下降沿
{
    busy();
    RS = 1;
    RW = 0;
    DB = d;
    E = 1;
    E = 0;
    DB = 0xff;
}

/************************************************************************************
                         讀數(shù)據(jù)函數(shù)         
************************************************************************************/
uchar r_data(void)//RS=1;RW=1;E下降沿
{
    uchar rd_lcd;
    busy();
    RS = 1;
    RW = 1;
    E = 1;
    rd_lcd = DB;
    E = 0;
     return rd_lcd;
}

/************************************************************************************
                   寫DGRAM:x_lcd橫坐標(biāo),y_lcd縱坐標(biāo)         
************************************************************************************/
void address(uchar x_lcd,uchar y_lcd)//
{
    w_code(y_lcd);//垂直坐標(biāo)
    w_code(x_lcd);//水平坐標(biāo)
}

/************************************************************************************
                   初始化液晶屏
                   0:字庫  1:繪圖      
************************************************************************************/
void  lcd_rst(bit a)
{  
    if(a)
    {
    w_code(0x01);//   清屏  
    w_code(0x32);//   功能設(shè)置---8BIT控制界面,繪圖顯示ON  
    w_code(0x36);//   功能設(shè)置---8BIT控制界面,擴(kuò)充指令集  
    }
    else
    {
    w_code(0x30);// 功能設(shè)置---8BIT控制界面,基本指令集
    w_code(0x0c);//顯示打開,光標(biāo)關(guān),反白顯示關(guān)
    w_code(0x01);// 清除屏幕顯示,將DDRAM的地址計(jì)數(shù)器歸零
    }
}

/************************************************************************************
---------------------------寫整屏點(diǎn)陣數(shù)據(jù)
---------------------------x :圖像數(shù)據(jù)的起始地址        
************************************************************************************/

void  write_lcd_full(uint x )
{
      
      uchar  i,j,a;
      j = 0x80; //Y地址寄存器   
      for(a = 0;a < 32;a++)
          {
        w_code(j);
        j++;
        w_code(0x80);//X地址寄存器
          for(i = 0;i < 16;i ++)
              {
            w_data(logo[x]);
            x++;
            }
        }

      j = 0x80; //Y地址寄存器  
      for(a = 0;a < 32;a++)
          {
        w_code(j);
        j++;
        w_code(0x88);//X地址寄存器
          for(i = 0;i < 16;i ++)
              {
            w_data(logo[x]);
            x++;
            }
        }
}

Keil代碼和原理圖下載: Keil代碼.7z (748.24 KB, 下載次數(shù): 85)

作者: zhangzhi0406    時(shí)間: 2022-9-21 08:43
雖然不懂,但看著相當(dāng)牛!
作者: yyzf998    時(shí)間: 2022-9-21 21:48
厲害!好好學(xué)習(xí)!天天向上!
作者: fk624191    時(shí)間: 2022-9-23 09:42
有沒有多打樣板,想做個(gè)試試。
作者: shuijingfeng    時(shí)間: 2022-9-27 10:50
不錯(cuò)再增加功率,顯示就好了
作者: yygdzjs    時(shí)間: 2022-9-27 11:42
看起來不錯(cuò),應(yīng)該好久以前的資料.
有空看看.謝謝分享!




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1