#inc
#include
#include"12864.h"
#include"delay.h"
#defineuintunsignedint
#defineucharunsignedchar
#defineDataPortP0//8个数据口
sbitLCD12864RS=P2^4;//串行时为CS,串片选,每次数据操作时都要将CS拉高
sbitLCD12864RW=P2^5;//串行时为SID,串数据口,
sbitLCD12864EN=P2^6;//串行时为SCLK,同步时钟信号
sbitLCD12864PSB=P2^1;//并、串选择端,1为并行,0为串行
voidSendCom(ucharcom)//写一个指令
{
uchari;
uchardt;
dt=0xf8;
LCD12864RS=1;
LCD12864EN=0;
for(i=0;i<8;i++)
{
LCD12864RW=(bit)(dt&0x80);
LCD12864EN=0;
LCD12864EN=1;
dt=dt<<1;
}
dt=com;
dt&=0xf0;
for(i=0;i<8;i++)
{
LCD12864RW=(bit)(dt&0x80);
LCD12864EN=0;
LCD12864EN=1;
dt=dt<<1;
}
dt=com;
dt<<=4;
for(i=0;i<8;i++)
{
LCD12864RW=(bit)(dt&0x80);
LCD12864EN=0;
LCD12864EN=1;
dt=dt<<1;
}
LCD12864RS=0;
delayms(1);
}
voidSendData(uchardate)//写一个数据
{
uchari;
uchardt;
dt=0xfa;
LCD12864RS=1;
LCD12864EN=0;
for(i=0;i<8;i++)
{
LCD12864RW=(bit)(dt&0x80);
LCD12864EN=0;
LCD12864EN=1;
dt=dt<<1;
}
dt=date;
dt&=0xf0;
for(i=0;i<8;i++)
{
LCD12864RW=(bit)(dt&0x80);
LCD12864EN=0;
LCD12864EN=1;
dt=dt<<1;
}
dt=date;
dt<<=4;
for(i=0;i<8;i++)
{
LCD12864RW=(bit)(dt&0x80);
LCD12864EN=0;
LCD12864EN=1;
dt=dt<<1;
}
LCD12864RS=0;
delayms(1);
}
voidWriteString(uchari,ucharj,uchar*string)//在i行j列写一个字符串
{
uchark;
if(i>=1&&i<=4&&j>=1&&j<=8)
{
switch(i)
{
ca1:SendCom(0x80+j-1);break;
ca2:SendCom(0x90+j-1);break;
ca3:SendCom(0x88+j-1);break;
ca4:SendCom(0x98+j-1);break;
}
for(k=0;string[k]!='0';k++)
{
SendData(string[k]);
}
}
}
voidWriteNum(uchari,ucharj,uintnum)//在i行j列显示一个数据;
{
//ucharshi,ge;
//shi=num/10;
//ge=num%10;
if(i>=1&&i<=4&&j>=1&&j<=8)
{
switch(i)
{
ca1:SendCom(0x80+j-1);break;
ca2:SendCom(0x90+j-1);break;
ca3:SendCom(0x88+j-1);break;
ca4:SendCom(0x98+j-1);break;
}
SendData(num+0x30);
//SendData(ge+0x30);
}
}
voidInit12864()//初始化
{
LCD12864PSB=0;
LCD12864EN=0;
SendCom(0x30);//
SendCom(0x0c);//打开显示,无光标
SendCom(0x01);//清屏
}
#include"delay.h"
voiddelayms(uintxms)
{
uinti,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
#include
#include
#include"12864.h"
#include"delay.h"
#defineuintunsignedint
#defineucharunsignedchar
sbitcs=P3^5;
sbitrd=P3^6;
sbitwr=P3^7;
voiddisplay(uinttemp)
{
uchara,b,c,d;
temp=temp*18.6;
a=temp/1000;
b=temp%1000/100;
c=temp%1000%100/10;
d=temp%1000%100%10;
WriteNum(3,1,a);
WriteNum(3,2,b);
WriteNum(3,3,c);
WriteNum(3,4,d);
WriteString(3,5,"mV");
}
voidmain()
{
ucharm,temp;
Init12864();
P1=0x7f;
while(1)
{
cs=0;
wr=1;
_nop_();
wr=0;
_nop_();
wr=1;
for(m=10;m>0;m--)
{
display(temp);
}
P1=0xff;
WriteString(1,1,"直流稳压电源");
WriteString(2,1,"电压采集:");
rd=1;
_nop_();
rd=0;
_nop_();
temp=P1;
rd=1;
}
}
本文发布于:2023-01-04 02:57:53,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/88184.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |