#define uchar unsigned char
#define uint unsigned int
uchar code seg_data1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}
uchar code seg_data2[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}
sbit p20=P2^0
sbit p21=P2^1
sbit p22=P2^2
/隐激/sfr ADC_CONTR=0xBC
//sfr P1ASF=0x9D
//sfr ADC_RES=0xBD
void delay(uint a1)
void input()
void display(uint count)
void main()
{
uint x
while(1)
{
input()
x=5*(ADC_RES*50)/255
display(x)
}
}
void input()
{
P1ASF=0x01
ADC_CONTR=0x88
delay(25)
IE=0xA0
}
void drop() interrupt 5
{
ADC_CONTR=0X88
}
void display(uint count)
{
uchar i
for (i=0i<5i++)
{
P0=seg_data1[count%10]
p20=0
delay(25)
p20=1
P0=seg_data2[count/10%10]
p21=0
delay(25)
p21=1
if(count>=100)
{
P0=seg_data1[count/100]
p22=0
delay(25)
p22=1
}
}
}
void delay(uint a1) //误差 0us
{
unsigned char a,b,c
for(c=a1c>0c--)
for(b=142b>0b--)
for(a=2a>0a--)
}
这是我自己写的,用数差誉码管显示,你只需要把void display(uint count)函数改为12864的显示函数灶庆袜即可
不知你的液晶是什么控制器的,这个是st7920的/********************************************************************
* 文件名 : 串行12864显示.c
* 描述: 该程序实现了12864以串行的方式进行通信卜兄。
* 创建人 : 东流,2009年4月10日
* 版本号 : 2.0
***********************************************************************/
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit CS=P2^5 //片选信号
sbit SID=P2^6 //数据信号
sbit SCLK=P2^7 //时钟信号
sbit RST=P2^2 //复位信号段亏
sbit CH = P2^4 //并行、串行选择信号
/********************************************************************
* 名称 : delay()
* 功能 : 延时,延时时间为 100us * t。这是通过软件延时,有一定误差。
* 输入 : t
* 输型燃袭出 : 无
***********************************************************************/
void delay(unsigned int t)
{
unsigned int i,j
for(i=0i<t i++)
for(j=0j<10j++)
}
/********************************************************************
* 名称 : sendbyte()
* 功能 : 按照液晶的串口通信协议,发送数据
* 输入 : zdata
* 输出 : 无
***********************************************************************/
void sendbyte(unsigned char zdata)
{
unsigned int i
for(i=0i<8i++)
{
if((zdata <<i) &0x80)
{
SID = 1
}
else
{
SID = 0
}
SCLK = 0
SCLK = 1
}
}
/********************************************************************
* 名称 : write_com()
* 功能 : 写串口指令
* 输入 : cmdcode
* 输出 : 无
***********************************************************************/
void write_com(unsigned char cmdcode)
{
CS = 1
sendbyte(0xf8)
sendbyte(cmdcode &0xf0)
sendbyte((cmdcode <<4) &0xf0)
delay(2)
}
/********************************************************************
* 名称 : write_data()
* 功能 : 写串口指令
* 输入 : cmdcode
* 输出 : 无
***********************************************************************/
void write_data(unsigned char Dispdata)
{
CS = 1
sendbyte(0xfa)
sendbyte(Dispdata &0xf0)
sendbyte((Dispdata <<4) &0xf0)
delay(2)
}
/********************************************************************
* 名称 : lcdinit()
* 功能 : 初始化函数
* 输入 : cmdcode
* 输出 : 无
***********************************************************************/
void lcdinit()
{
RST = 0
delay(100)
RST = 1
delay(20000)
write_com(0x30)
delay(50)
write_com(0x0c)
delay(50)
}
/********************************************************************
* 名称 : hzkdis()
* 功能 : 显示字符串
* 输入 : *s
* 输出 : 无
***********************************************************************/
void hzkdis(unsigned char code *s)
{
while(*s >0)
{
write_data(*s)
s++
delay(50)
}
}
/********************************************************************
* 名称 : Test()
* 功能 : 显示子函数
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Test()
{
write_com(0x03)
delay(50)
write_com(0x81)
hzkdis(" HOT-51")
write_com(0x91)
hzkdis("单片机开发板")
write_com(0x89)
hzkdis(" ")
write_com(0x98)
hzkdis("东流电子")
}
/********************************************************************
* 名称 : Main()
* 功能 : 主函数
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Main()
{
CH = 0
delay(1)
lcdinit()
delay(10)
while(1)
{
Test()
delay(5000)
}
}
(武汉谷鑫科技)专业研发生岁丛产单片机驱动TFT彩色液晶显示模块颤昌。你可以去看看他们公司的彩色液晶的并行程序,他们的网站上的好乎洞樱像有这个示例程序,就是这个1T的单片机的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)