切换到宽版
爱科技/爱创意/爱折腾/爱极致;技术知识分享平台,点击进入新版数码之家网站
  • 2156阅读
  • 4回复

[另类]直流电机 1602 [复制链接]

上一主题 下一主题
 

发帖
47
M币
51
专家
0
粉丝
13
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2012-07-30
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint  unsigned int

sbit RS=P2^2;
sbit RW=P2^3;
sbit E=P2^4;

//Delay Function
void Delay_Ms(uint ms)
{
    uchar t;
    while(ms--)
        for(t=0;t<120;t++);
}

//Busy Checking Function
uchar Busy_Check()
{
    uchar lcd_status;
    RS=0;
    RW=1;
    E=1;
    Delay_Ms(1);
    lcd_status=P0;
    E=0;
    return lcd_status;
}

//Write LCD Command Function
void Write_LCD_Command(uchar cmd)
{
     while((Busy_Check()&0x80)==0x80); //busy! wait!!!
    RS=0;
    RW=0;
    E=0;
    P0=cmd;
    E=1;
    Delay_Ms(1);
    E=0;
}

//Write LCD Data Function
void Write_LCD_Data(uchar dat)
{
      while((Busy_Check()&0x80)==0x80); //busy! wait!!!
    RS=1;
    RW=0;
    E=0;
    P0=dat;
    E=1;
    Delay_Ms(1);
    E=0;    
}

//LCD Initialize Funtion
void  Initialize_LCD()
{
    Write_LCD_Command(0x38);
    Delay_Ms(1);
    Write_LCD_Command(0x01);
    Delay_Ms(1);
    Write_LCD_Command(0x06);
    Delay_Ms(1);
    Write_LCD_Command(0x0c);
    Delay_Ms(1);
}

//Display String Function
void Display_String(uchar x,uchar y,uchar *str)
{
    uchar i=0;    
    if(y==0)                     //setting display char start
        Write_LCD_Command(0x80|x);
    if(y==1)
        Write_LCD_Command(0xc0|x);
    for(i=0;(i<16)&&(str!='\0');i++)
    {
        Write_LCD_Data(str);
    }
}
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
离线飙风人生

发帖
139803
M币
29855
专家
22
粉丝
305
只看该作者 1楼 发表于: 2012-07-30
请登录后查看

发帖
47
M币
51
专家
0
粉丝
13
只看该作者 2楼 发表于: 2012-07-30
请登录后查看

发帖
47
M币
51
专家
0
粉丝
13
只看该作者 3楼 发表于: 2012-07-30
请登录后查看
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
离线sumandigit

发帖
1729
M币
4194
专家
3
粉丝
26
只看该作者 4楼 发表于: 2012-07-30
请登录后查看
快速回复
限80 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个