tlc2543程序 单片机

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include
#include
#define uchar unsigned char
#define uint unsigned int

sbit AD_CS=P2^3;
sbit AD_OUT=P2^4;
sbit AD_IN=P2^5;
sbit AD_CLOCK=P2^6;
uchar code table_1[]="0000";
uchar code table_2[]="0123456789";


sbit lcdrs=P2^2; //液晶端口
sbit lcdrw=P2^1;
sbit lcden=P2^0;
uchar num;


void delay(uchar n)
{
uchar i;
for(i=0;i{
_nop_();
}
}
void delayms(uchar z) //延时z毫秒
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/***************************************************************
函数名称: read_ad(uchar port)
功 能: 读取port端口的ad值
参 数: 端口port, 时钟clock, 使能端cs,数字输入in,输出out ,+verf接5v,——verf接0
返回值 : uint ad
****************************************************************/
uint read_ad(uchar port)
{
uint ad=0,i;
AD_CS=1;
AD_CLOCK=0;
delay(3); //3
AD_CS=0;
port<<=4;
for(i=0;i<12;i++)
{
if(AD_OUT)
ad|=0x01;
AD_IN=(bit)(port&0x80);
AD_CLOCK=1;
delay(3);
AD_CLOCK=0;
delay(3);
port<<=1;
ad<<=1;
}
AD_CS=1;
ad>>=1;
return(ad);
}

//液晶部分。。。。。。。。。

void write_com(uchar com) //写指令
{
lcdrs=0;
lcdrw=0;
P0=com;
delayms(5);
lcden=1;
delayms(5);
lcden=0;
}

void write_data(uchar date) //写数据
{
lcdrs=1;
lcdrw=0;
P0=date;
delayms(5);
lcden=1;
delayms(5);
lcden=0;
}

void lcd_clear() //清屏函数
{
write_com(0x01);
delayms(5);
}
void init_lcd() //液晶初始化
{
lcden=0;
write_com(0x38); //显示模式
write_com(0x0c); //显示光标设置
write_com(0x06); //地址指针移动方式
write_com(0x01); //显示清屏
write_com(0x80); //当前指针地址
}



void display(uint shu)
{
uchar q,b,s,g;
q=shu/1000;
b=shu%1000/100;
s=shu%100/10;
g=shu%10;
write_com(0x80);
write_data(table_2[q]);
delayms(10);
write_data(table_2[b]);
delayms(10);
write_data(table_2[s]);
delayms(10);
write_data(table_2[g]);
delayms(10);
}

uint lvbo(uint r)
{
uint a,b,c,d,e,aver;
e=d;
d=c;
c=b;
b=a;
a=r;
aver=(a+b+c+d+e)/5;
return aver;

}
void main()
{
uint x,i=0;
init_lcd();
write_com(0x80);
for(num=0;num<4;num++)
{
write_data(table_1[num]);
delayms(10);
}

while(1)
{
x=read_ad(8);
display(x);
delayms(50);
}

}

相关文档
最新文档