STC单片机内部ADC转换程序文档格式.docx

上传人:b****0 文档编号:13329952 上传时间:2022-10-09 格式:DOCX 页数:38 大小:25.93KB
下载 相关 举报
STC单片机内部ADC转换程序文档格式.docx_第1页
第1页 / 共38页
STC单片机内部ADC转换程序文档格式.docx_第2页
第2页 / 共38页
STC单片机内部ADC转换程序文档格式.docx_第3页
第3页 / 共38页
STC单片机内部ADC转换程序文档格式.docx_第4页
第4页 / 共38页
STC单片机内部ADC转换程序文档格式.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

STC单片机内部ADC转换程序文档格式.docx

《STC单片机内部ADC转换程序文档格式.docx》由会员分享,可在线阅读,更多相关《STC单片机内部ADC转换程序文档格式.docx(38页珍藏版)》请在冰豆网上搜索。

STC单片机内部ADC转换程序文档格式.docx

#include<

adc.h>

//#include<

cbit.h>

/*----------------------------

初始化ADC寄存器中断方式

----------------------------

voidInitADC()

{

unsignedunsignedcharchan=0;

P1ASF=0xff;

//设置P1口全部为ADC通道

ADC_RES=0;

//清除高8位缓冲数据

ADC_RESL=0;

//清除低2位缓冲数据

ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|chan;

_nop_();

//打开ADC

}

*/

//----------------------------

//ADC中断处理

/*voidadc_isr()interrupt5using1

unsignedunsignedintAD_Result_Temp

ADC_CONTR&

=!

ADC_FLAG;

//清除ADC中断标志位

return(((AD_Result_Temp|ADC_RES)<

<

2)+ADC_RESL);

//返回10位ADC转换结果

if(++ch>

7)ch=0;

//却换到下一个通道

unsignedintGetADCResult(unsignedcharchan)

AD_Result_Temp=0;

ADC_RES=0;

ADC_RESL=0;

ADC_CONTR=ADC_POWER|ADC_SPEEDHH|chan|ADC_START;

//Mustwaitbeforeinquiry

while(!

(ADC_CONTR&

ADC_FLAG));

//等待完成

=~ADC_FLAG;

//关闭ADC转换

AD_Result_Temp=(((AD_Result_Temp|ADC_RES)<

returnAD_Result_Temp;

//74HC595

//发送完一个8位数据,就锁存一次

//8个数码管,可以这样做

//for(i=0;

i<

8;

i++)

//{

//Send_HC595(....//要发送的8为数据);

//Show_595();

//}

 

/********************************************************/

/**/

/*将显示数据送入74HC595内部移位寄存器*/

voidSend_HC595(INT16ULED_DATA)

INT8Ui;

for(i=0;

{

HC595_DS=LED_DATA&

0x80;

HC595_SHCP=1;

//上升沿发生移位

HC595_SHCP=0;

LED_DATA=LED_DATA<

1;

}

/*将移位寄存器内的数据锁存到输出寄存器并显示*/

voidShow_595(void)

HC595_STCP=0;

HC595_STCP=1;

//上升沿将数据送到输出锁存器

//74HC164

#ifndef__74LS164_H__

#define__74LS164_H__

externvoidWrite_Bit8(unsignedcharbit_8)

unsignedchari;

for(i=8;

i>

0;

i--)//数码管段8位数据

{

Data=bit_8&

//传送一位数据

CLK=0;

CLK=1;

bit_8=bit_8<

20位串口A/D转换器CS5513

20位串口A/D转换器CS5513接口程序2010-03-2214:

56//cs5513接口的C51官方程序

//cs5513返回长整型数据

//CS=0时表示片选有效,当然可以直接接地,这样可以节省一个I/O口

sbitADCS=P2^0;

sbitADCLK=P2^1;

sbitADDO=P2^2;

unsignedlongintADConv(void)

uchari;

unsignedlongintResult=0;

ADCLK=0;

ADCS=0;

_nop_();

ADCLK=0;

while(ADDO);

ADCLK=1;

for(i=0;

3;

i++){

for(i=0;

20;

i++){

Result=Result<

if(ADDO)

Result=Result+1;

ADCLK=1;

ADCS=1;

returnResult;

//LCDSMC12864-05

#ifndef_CRYFUCNS_H_

#define_CRYFUCNS_H_

voidSend(unsignedchartype,unsignedchartransdata);

voidInit_LCD(void);

voidClear_GDRAM(void);

voidDisp_HZ(unsignedcharaddr,constunsignedchar*pt,unsignedcharnum);

voidDraw_PM(constunsignedchar*ptr);

voidDraw_TX(unsignedcharYaddr,unsignedcharXaddr,constunsignedchar*dp);

voidDisp_SZ(unsignedcharaddr,unsignedcharshuzi);

cryfucns.h>

STC12C5A.H>

#include<

intrins.h>

types.h>

externconstINT8Ushuzi_table[];

voidSend(INT8Utype,INT8Utransdata);

/**********液晶控制IO的宏定义*************/

sbitRS_CS=P0^0;

sbitRW_SDI=P0^1;

sbitE_CLK=P0^2;

/*******************************************

函数名称:

delay_Nus

功能:

延时N个us的时间

参数:

n--延时长度

返回值:

********************************************/

voiddelay_Nus(INT16Un)

for(i=n;

i>

0;

i--)

}

delay_1ms

延时约1ms的时间

voiddelay_1ms(void)

for(i=150;

i--)_nop_();

delay_Nms

延时N个ms的时间

********************************************/

voiddelay_Nms(INT16Un)

INT16Ui=0;

delay_1ms();

Ini_Lcd

初始化液晶模块

voidInit_LCD(void)

{

delay_Nms(100);

//延时等待液晶完成复位

Send(0,0x30);

/*功能设置:

一次送8位数据,基本指令集*/

delay_Nus(72);

Send(0,0x02);

/*DDRAM地址归位*/

Send(0,0x0c);

/*显示设定:

开显示,不显示光标,不做当前显示位反白闪动*/

Send(0,0x01);

/*清屏,将DDRAM的位址计数器调整为“00H”*/

Send(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 法学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1