文档介绍:数字电压表的设计
实训目的
;
;
。
二、实训内容
,实现一个数字式直流电压测量表,将测量到的直流电压值在LCD上显示;
,查看仿真结果;
三、硬件电路设计
四、代码编辑
#include<>
#define ADC0809Addr 0x78ff
#define Addr 0xa7ff 
#define LCDWriteDatAddr 0xafff 
#define uchar unsigned char
#define uint unsigned int
uchar Disp[6];
void delay_ms(uint t)
{
  uchar x,y;
  for(t;t>0;t--)
  {
    for(x=0;x<114;x++)
  for(y=0;y<1;y++);
  }
}
void Init1602(void)
{
  delay_ms(15);
  *((uchar xdata*)Addr)=0x38;
  delay_ms(5);
  *((uchar xdata*)Addr)=0x38;
  delay_ms(5);
  *((uchar xdata*)Addr)=0x38;
  delay_ms(2);
  *((uchar xdata*)Addr)=0x08;
  delay_ms(2);
  *((uchar xdata*)Addr)=0x01;
  delay_ms(2);
  *((uchar xdata*)Addr)=0x0c;
  delay_ms(2);
  *((uchar xdata*)Addr)=0x06;
  delay_ms(2);
  *((uchar xdata*)Addr)=0x80;
  delay_ms(2);
}
void Display(void)
{
  *((uchar xdata*)Addr)=0XC0;
  delay_ms(2);
  *((uchar xdata*)LCDWriteDatAddr)='I';
  delay_ms(2);
  *((uchar xdata*)LCDWriteDatAddr)='N';
  delay_ms(2);
  *((uchar xdata*)LCDWriteDatAddr)='0';
  delay_ms(2);
  *((uchar xdata*)LCDWriteDatAddr)='=';
  delay_ms(2);
  *((uchar xdata*)LCDWriteDatAddr)=('0'+Disp[0]);
  delay_ms(2);
  *((uchar xdata*)LCDWriteDatAddr)=('.');
  delay_ms(2);
  *((uchar xdata*)LCDWriteDatAddr)=('0'+Disp[1]);
  delay_ms(2);
  *