资源简介
使用16位精度的LTC1864模数转换器编程实现高精度数字电压表,量程为50V,精度达到1mV,并使用12864液晶显示器,给出了protues仿真!感兴趣的同学,可以参考一下!
代码片段和文件信息
#include
#include“12864.h“
sbit conv=P3^5;
sbit sck=P3^6;
sbit sdo=P3^7;
unsigned int dat;
/*---------------LTC1864的驱动函数----------------*/
void convert()
{ int i=0;
dat=0;
conv=0;
conv=1;
for(i=0;i<5;i++);
conv=0;
for(i=0;i<16;i++)
{
sck=1;
sck=0;
if(sdo)
dat|=0x8000>>i;
sck=1;
}
}
void empty(char p)
{ char i;
for(i=0;i<8;i++)
{ if(i<4)
{cs1=1;cs2=0;
hz_disp16(2*p16*ikge);
}
else
{ cs1=0;cs2=1;
hz_disp16(2*p16*(i-4)kge);
}
}
}
void start()
{
cs1=1;cs2=0;
hz_disp16(132hying);
hz_disp16(148hying+32);
hz_disp16(416hying+32*4);
hz_disp16(432hying+32*5);
hz_disp16(448dianya);
cs1=0;cs2=1;
hz_disp16(10hying+32*2);
hz_disp16(116hying+32*3);
hz_disp16(40dianya+32);
hz_disp16(416dianya+32*2);
hz_disp16(432meili+32*13);
}
/*------------------实现汉字的滚动显示------------------*/
void gundong()
{ char i;
cs1=1;cs2=0;
for(i=0;i<4;i++)
{if((k>=16)&&(k<32))
hz_disp16n(016*imeili+32*(i+1)+k%16);
else if((k>=32)&&(k<48))
hz_disp16n(016*imeili+32*(i+2)+k%16);
else if((k>=48)&&(k<64))
hz_disp16n(016*imeili+32*(i+3)+k%16);
else if((k>=64)&&(k<80))
hz_disp16n(016*imeili+32*(i+4)+k%16);
else if(k>=80)
hz_disp16n(016*imeili+32*(i+5)+k%16);
else
hz_disp16n(016*imeili+32*i+k%16);
}
cs1=0;cs2=1;
for(i=0;i<4;i++)
{if((k>=16)&&(k<32))
hz_disp16n(016*imeili+32*(i+1+4)+k%16);
else if((k>=32)&&(k<48))
hz_disp16n(016*imeili+32*(i+2+4)+k%16);
else if((k>=48)&&(k<64))
hz_disp16n(016*imeili+32*(i+3+4)+k%16);
else if((k>=64)&&(k<80))
hz_disp16n(016*imeili+32*(i+4+4)+k%16);
else if(k>=80)
hz_disp16n(016*imeili+32*(i+5+4)+k%16);
else
hz_disp16n(016*imeili+32*(i+4)+k%16);
}
}
void lcheng_jdu()
{ cs1=1;cs2=0;
hz_disp12(30lcheng);
hz_disp12(312lcheng+24);
char_disp(324ASC+0);
char_disp(332ASC+16*13);
char_disp(340ASC+16*5);
char_disp(348ASC+0);
char_disp(356ASC+16*11);
hz_disp16(60dqian);
hz_disp16(616dqian+32);
hz_disp16(632dianya);
hz_disp16(648dianya+32);
cs1=0;cs2=1;
hz_disp12(38jingdu);
hz_disp12(320jingdu+24);
char_disp(332ASC+16);
char_disp(340ASC+16*14);
char_disp(348ASC+16*11);
char_disp(60ASC+16*12);
}
void main()
{
unsigned char disp_dat[]={001000011}icount=0;
unsigned int buf;
init_lcd();
empty(0);
empty(1);
empty(2);
empty(3);
start();
for(i=0;i<180;i++)
for(buf=0;buf<1000;buf++);
empty(0);
empty(1);
empty(2);
lcheng_jdu();
while(1)
{count++;
if(count>1)
{count=0;
k++;
}
if(k>=96)
k=0;
gundong();
convert();
buf=dat;
buf=buf*(50.0/65535)*1000;
disp_dat[5]=buf%10;
disp_dat[4]=(buf/10)%10;
disp_dat[3]=(buf/100)%10;
disp_dat[1]=(buf/1000)%10;
disp_dat[0]=(buf/10000)%10;
/*--------实时电压显示-----------*/
cs1=0;cs2=1;
for(i=0;i<7;i++)
{
char_di
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9612 2011-05-01 14:20 LTC1864_12864数字电压表\12864.h
文件 1054 2011-05-29 09:31 LTC1864_12864数字电压表\12864显示.PWI
文件 3082 2011-05-01 14:23 LTC1864_12864数字电压表\LTC1864.c
文件 10799 2011-05-05 17:44 LTC1864_12864数字电压表\LTC1864.hex
文件 46 2011-05-05 17:44 LTC1864_12864数字电压表\LTC1864.lnp
文件 20366 2011-05-05 17:44 LTC1864_12864数字电压表\LTC1864.M51
文件 172 2011-05-25 21:07 LTC1864_12864数字电压表\LTC1864.plg
文件 13235 2011-04-28 10:40 LTC1864_12864数字电压表\LTC1864.uvproj
....... 56041 2011-05-05 18:29 LTC1864_12864数字电压表\LTC1864_uvopt.bak
文件 0 2011-04-28 10:05 LTC1864_12864数字电压表\LTC1864_uvproj.bak
文件 383615 2011-04-19 07:40 LTC1864_12864数字电压表\LTC1864.pdf
....... 56037 2011-05-25 21:07 LTC1864_12864数字电压表\LTC1864.uvopt
文件 101009 2011-05-06 11:44 LTC1864_12864数字电压表\Last Loaded 12864显示.DBK
文件 101009 2011-05-27 19:16 LTC1864_12864数字电压表\12864显示.DSN
文件 6394 2011-05-05 17:44 LTC1864_12864数字电压表\LTC1864.LST
文件 21736 2011-05-05 17:44 LTC1864_12864数字电压表\LTC1864.OBJ
文件 18591 2011-05-05 17:44 LTC1864_12864数字电压表\LTC1864
目录 0 2011-05-01 14:26 LTC1864_12864数字电压表
----------- --------- ---------- ----- ----
802798 18
- 上一篇:可调时钟+闹钟——基于DS1302
- 下一篇:灰度距亚像素边缘检测
相关资源
- msp430数字电压表
- 数字电压表基于proteus的仿真
- 基于DAQ及LabVIEW的虚拟数字电压表的设
- ADC0808实现数字电压表源码与仿真
- PROTUS数字电压表程序
- 简易数字电压表的设计
- 基于51单片机的自动量程数字电压表
- 基于51单片机的ADC0832数字电压表仿真
- 基于51单片机的ADC0808 数字电压表
- 数字电压表的电路图(仿真).DSN
- 31/2位直流数字电压表的设计
- 积分式直流数字电压表
- 数字电压表proteus仿真+程序资料
- 八路数字电压表基于单片机的
- 单片机数字电压表 包含电路图 ,源程
- 数字电压表.zip
- ADC0809 数字电压表
- 单片机课程设计,数字电压表,主要
- 数字电压表 单片机 0-5V 精确度0
- 简易数字电压表
- 量程自动切换数字电压表proteus仿真
- 数字电压表及proteus仿真
- 基于单片机的数字电压表的设计
- 简单的数字电压表设计
- 使用 STM8S103F3 设计的数字电压表头
- 基于单片机的简易数字电压表的设计
- 数字电压表的源代码及PROTEUS仿真5V
- 微机原理课程设计--数据采集控制与数
- 基于adc0832的数字电压表
- 基于TLC2543数字电压表
评论
共有 条评论