?? dianyabiao.c
字號(hào):
/*電壓表程序設(shè)計(jì)*/
#include <REG51.h>
#include <intrins.h>
#include <absacc.h>
#include "VIIC_C51.h"
#include "ZLG7290.h"
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define ZLG7290 0x70 //定義器件地址
//定義TLC549串行總線操作端口
sbit CLK=P1^0;
sbit DAT=P1^1;
sbit CS=P1^2;
//定義I2C總線控制端口
sbit SDA=P1^7;
sbit SCL=P1^6;
//顯示緩沖區(qū)初始化:DP-51PRO
uchar disp_buf[8]={0x15,0x18,0x16,0x01,0x05,0x1f,0x16,0x0d};
uchar bdata ADCdata;
sbit ADbit=ADCdata^0;
/***************************************************
**函數(shù)名稱(chēng): TLC549ADC()
**函數(shù)功能: 讀取上一次A/D轉(zhuǎn)換的數(shù)據(jù),啟動(dòng)下一次A/D轉(zhuǎn)換
****************************************************/
uchar TLC549ADC(void)
{
uchar i;
CLK=0;
DAT=1;
CS=0;
for(i=0;i<8;i++)
{
CLK=1;
_nop_();
_nop_();
ADCdata<<=1;
ADbit=DAT;
CLK=0;
_nop_();
}
return (ADCdata);
}
/****************************************
**函數(shù)名稱(chēng): delay()
**函數(shù)功能: 硬件延時(shí)50MS程序
**入口參數(shù): i
****************************************/
void delay(uchar i)
{ uchar j;
for(j=0;j<i;j++)
{
TMOD=0x01;
TH0=0X3C;
TL0=0XB0;
TF0=0;ET0=0;
TR0=1;
while(!TF0);
TR0=0;TF0=0;
}
}
/*A/D數(shù)據(jù)轉(zhuǎn)換處理和輸出顯示功能函數(shù)*/
/*******************************************
**函數(shù)名稱(chēng): display()
**函數(shù)功能: 處理A/D轉(zhuǎn)換后的數(shù)據(jù)并輸出顯示
********************************************/
void display(uchar advalue)
{
ulong ad_disp;
ad_disp=((ulong)advalue)*500/255;
disp_buf[2] =(uchar)(ad_disp/100%10)+0x80;
disp_buf[1] =(uchar)(ad_disp/10%10);
disp_buf[0] =(uchar)(ad_disp/1%10);
ZLG7290_SendBuf(disp_buf,8);
}
/*****************************
**主程序函數(shù)
*****************************/
void main()
{
uchar ad_sample;
ZLG7290_SendBuf(disp_buf,8);
ZLG7290_SendData(0X15,0X02);
disp_buf[7] =0x1f;
disp_buf[6] =0x1f;
disp_buf[5] =0x1f;
disp_buf[4] =0x1f;
disp_buf[3] =0x1f;
delay(50);
while(1)
{
ad_sample=TLC549ADC();
display(ad_sample);
delay(6);
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -