找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2072|回复: 0
收起左侧

单片机数字电压表程序

[复制链接]
ID:661343 发表于 2019-12-11 10:57 | 显示全部楼层 |阅读模式
本帖最后由 xiaolouluo 于 2019-12-18 09:48 编辑

#include<reg52.h>
#define LCD_DB  P2     
sbit LCD_RS = P1^0;
sbit LCD_RW = P1^1;
sbit LCD_EN = P1^2;
sbit AD_OE=P3^1;        
sbit AD_EOC=P3^2;
sbit AD_A=P3^4;
sbit AD_B=P3^5;
sbit AD_C=P3^6;
sbit AD_START=P3^0;
unsigned char sj,ai;
int AD_sj=0,AD_ai=0;
        
unsigned char Zh1[]="voltmeter";
unsigned char Zh2[]="voltage:        ";


void Busy()                 //检忙
{
    unsigned char sta;      
    LCD_DB = 0xff;
    LCD_RS = 0;
    LCD_RW = 1;
    do
    {
    LCD_EN = 1;
    sta = LCD_DB;
    LCD_EN = 0;   
    }
    while(sta&0x80);
}

void Lcd_Write_Cmd(unsigned char cmd)      //命令
{
    Busy();
    LCD_RS = 0;
    LCD_RW = 0;
    LCD_DB = cmd;
    LCD_EN = 1;
    LCD_EN = 0;   
}

void Lcd_Write_Data(unsigned char dat)     //数据
{
    Busy();
    LCD_RS = 1;
    LCD_RW = 0;
    LCD_DB = dat;
    LCD_EN = 1;
    LCD_EN = 0;
}
void InitLcd()                            //初始化
{
    Lcd_Write_Cmd(0x38);   
    Lcd_Write_Cmd(0x08);
    Lcd_Write_Cmd(0x01);
    Lcd_Write_Cmd(0x06);
    Lcd_Write_Cmd(0x0c);     
}
void LcdSetCursor(unsigned char x,unsigned char y)   //坐标
{
    unsigned char addr;
    if(y == 0)
        addr = 0x00 + x;
    else
        addr = 0x40 + x;

    Lcd_Write_Cmd(addr|0X80);
}

void LcdShowStr(unsigned char x,unsigned char y,unsigned char *s)  //字符串   
{
    LcdSetCursor(x,y);     
    while(*s)
    {
        Lcd_Write_Data(*s);
        s++;
    }
}
批注 2019-12-11 105635.png

fangzhen.zip

29.77 KB, 下载次数: 11, 下载积分: 黑币 -5

全部文件

评分

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

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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