找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1825|回复: 5
打印 上一主题 下一主题
收起左侧

0-30V 4A数控稳压电源制作 单片机程序

  [复制链接]
跳转到指定楼层
楼主


单片机源程序如下:
#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;
}

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

/************************************************************************************
                   写数据函数        
************************************************************************************/
void w_data(uchar d)//RS=1;RW=0;E下降沿
{
    busy();
    RS = 1;
    RW = 0;
    DB = d;
    E = 1;
    E = 0;
    DB = 0xff;
}

/************************************************************************************
                         读数据函数         
************************************************************************************/
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横坐标,y_lcd纵坐标         
************************************************************************************/
void address(uchar x_lcd,uchar y_lcd)//
{
    w_code(y_lcd);//垂直坐标
    w_code(x_lcd);//水平坐标
}

/************************************************************************************
                   初始化液晶屏
                   0:字库  1:绘图      
************************************************************************************/
void  lcd_rst(bit a)
{  
    if(a)
    {
    w_code(0x01);//   清屏  
    w_code(0x32);//   功能设置---8BIT控制界面,绘图显示ON  
    w_code(0x36);//   功能设置---8BIT控制界面,扩充指令集  
    }
    else
    {
    w_code(0x30);// 功能设置---8BIT控制界面,基本指令集
    w_code(0x0c);//显示打开,光标关,反白显示关
    w_code(0x01);// 清除屏幕显示,将DDRAM的地址计数器归零
    }
}

/************************************************************************************
---------------------------写整屏点阵数据
---------------------------x :图像数据的起始地址        
************************************************************************************/

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, 下载次数: 84)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏9 分享淘帖 顶4 踩
回复

使用道具 举报

沙发
ID:698901 发表于 2022-9-21 08:43 | 只看该作者
虽然不懂,但看着相当牛!
回复

使用道具 举报

板凳
ID:688460 发表于 2022-9-21 21:48 | 只看该作者
厉害!好好学习!天天向上!
回复

使用道具 举报

地板
ID:470946 发表于 2022-9-23 09:42 | 只看该作者
有没有多打样板,想做个试试。
回复

使用道具 举报

5#
ID:478456 发表于 2022-9-27 10:50 | 只看该作者
不错再增加功率,显示就好了
回复

使用道具 举报

6#
ID:59830 发表于 2022-9-27 11:42 | 只看该作者
看起来不错,应该好久以前的资料.
有空看看.谢谢分享!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表