找回密码
 立即注册

QQ登录

只需一步,快速开始

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

如何在单片机程序中看12864串并口连接?

[复制链接]
跳转到指定楼层
楼主
ID:235703 发表于 2017-12-27 19:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大大,我在网上看到的一个程序下载到单片机中,成功了,但是不知道他是串口还是并口传输;测试PSB引脚电压为3.3V稳定;测试D0-D7分别在1.3V-2.5V之间,但是数值跳动;不明白是串口还是并口,附上程序。
#ifndef __yejing_H__
#define __yejing_H__
#define uchar unsigned char
#define uint unsigned int
uchar CMDAddress;
sbit RS=P2^5;
sbit RW=P2^6;
sbit EN=P2^7;

void delay(uchar t)             //延时函数
{         
        uint x,y;
        for(x=t;x>0;x--)
        for(y=110;y>0;y--);
}
bit busy()                         //判忙标志位
{
        bit flag;
        RS=0;
        RW=1;
        EN=1;
        flag=(bit)(P0&0x80);        
        EN=0;
        return flag;
}                                          
void write_cmd(uchar cmd)                  //写命令字
{
        while(busy());
        RW=0;
        RS=0;
        delay(5);
        P0=cmd;
        EN=1;
        delay(5);
        EN=0;
        delay(5);                 
}
void write_date(uchar dat)            //写数据
{
        while(busy());
        RW=0;
        RS=1;
        delay(5);
        P0=dat;
        EN=1;
        delay(5);
        EN=0;
        delay(5);               
}
void init()                       //初始化
{
        delay(200);
        write_cmd(0x30);      //Extended Function Set(功能设定控制字)基本指令集 ,8位
        delay(1);
        write_cmd(0x30);       //Function Set 基本指令集
        delay(1);
        write_cmd(0x0c);       //(显示开关控制字),全部显示ON,游标OFF,闪烁OFF
        delay(1);
        write_cmd(0x01);      //清屏控制字
        delay(15);
        write_cmd(0x06);          //Entry Mode (进入设定点控制字)光标从左向右加一位移动
        delay(1);      
}
void SetAddress(uchar x,uchar y)             //设置输入数据位置
{
        switch(y)
        {
                case 0:CMDAddress=0x80+x;break;
                case 1:CMDAddress=0x90+x;break;
                case 2:CMDAddress=0x88+x;break;
                case 3:CMDAddress=0x98+x;break;
        }
        write_cmd(CMDAddress);
}
void putstring(uchar x,uchar y,uchar *pdate)             //该行是否完
{
        SetAddress(x,y);
        while(*pdate!='\0')
        {
                 write_date(*pdate++);
        }
}
void show()                               //显示"温度"
{        
        putstring(0,0,"温度:");              //第一排首位子显示"温度"两字
    putstring(0,3,"液晶温度显示");        //第三排首位子显示"液晶温度显示"
}        
void display(uint Temp )                 // 显示温度值
{
        uint t1,t2,t3        ;                  //,t0,t1,t2                 
        t1=Temp/100%10;
        t2=Temp/10%10;
        t3=Temp%10;           
        write_cmd(0x93);
        write_date(0x30+t1);
        write_date(0x30+t2);
        write_date('.');
        write_date(0x30+t3);
        write_date(0xA1);
        write_date(0xE6);  
}
#endif

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

使用道具 举报

沙发
ID:267959 发表于 2017-12-27 20:03 | 只看该作者
P0口给8位数据,是并口的
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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