单片机AD转换c 语言程序
AD转换c 语言程序
#include 〈c8051f020.h〉
#include
#include
#define ad0809 XBYTE[0x2f80] //A/D地址
/********函数声明********/
void Send7279Byte(unsigned char ch); //发送一个命令字
void Delay1us(unsigned char us) ; //延时1μ
void Delay1ms(unsigned char T) ; //延时1ms
void delay10ms(unsigned char time); void SYSCLK_Init (void);
//**** 变量及I/O口定义 *********
unsigned char adx1,adx10,adx100,m,n; unsigned char n31=4,n01,sure,k,mm; unsigned int set,tmr, he;
sbit CLK = P1^6; // HD7279
sbit DAT = P1^7; // HD7279
#define NOSELECT7279 P5 |= 0x80 //SPICS4(P57)=1
#define SELECT7279 P5 &= ~(0x80) //SPICS4(P57)=0
//***********延时N * 1μ*****************************//
void Delay1us(unsigned char us) //延时1μ {
while (us)
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
--us;
}
}
//*********发送一个命令字****************//
void Send7279Byte(unsigned char ch) //发送一个命令字 {
char i;
SELECT7279; //置CS低电平
Delay1us(100); //延时50μ
for (i=0;i<0x8;i++)
{
if (ch&0x80) //输出7位到HD7279A的DATA端
{
DAT=1;
}
else
{
DAT=0;
}
CLK=1; //置CLK高电平
ch=ch<<1; //待发数据左移
Delay1us(20); //延时8μ
CLK=0; //置CLK低电平
Delay1us(20); //延时50μ
}
DAT=0; //发送完毕,DATA端置低,返回
}
/************* 显示时钟 ************/
void displaytime() //显示时钟
{
Send7279Byte(0xcd) ;
Send7279Byte(0xa) ; ////显示 “A”
Send7279Byte(0xcc) ;
Send7279Byte(0xd) ; // //显示 “D”
Send7279Byte(0x83) ;
Send7279Byte(0xa) ; // //显示 “,”
Send7279Byte(0x82) ;
Send7279Byte( adx100) ; //显示百位
Send7279Byte(0x81) ;
Send7279Byte( adx10); //显示 十位
Send7279Byte(0x80);
Send7279Byte(adx1); //显示 个位
}
//*********单片机时钟初始化***********//
void SYSCLK_Init (void)
{
int i; // delay counter
OSCXCN = 0x65; // start external oscillator with
// 18.432MHz crystal
for (i=0; i < 256; i++) ; // Wait for osc. to start up
while (!(OSCXCN & 0x80)) ; // Wait for crystal osc. to settle
OSCICN = 0x88; // select external oscillator as SYSCLK
// source and enable missing clock
// detector }
//***************//初始化IO口*************************//
void PORT_Init (void)
{
//XBR0 = 0x07; // Enable SMBus, SPI0, and UART0
XBR1= 0x02; //交叉开关允许
XBR2 = 0x40; // Enable crossbar and weak pull-ups
EMI0CF=0x2F ; //复用方式,高4端口。
EMI0TC=0x265 ; //时序控制,
P74OUT=0x20FF ; //P4-7口推挽输出
}
// ************ 延时 n*10ms ********************
void delay10ms(unsigned char time)
{
unsigned char i;
unsigned int j;
for (i=0;i
本文档为【单片机AD转换c 语言程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。