单片机模数TLC549转换这个程序什么意思? 20
#include"TLC549.h"#include"sopc.h"//****************************************//延时函数//*...
#include"TLC549.h"
#include "sopc.h"
//****************************************
//延时函数
//****************************************
void delay(uint16_t n)
{
int i;
while(n--)
for(i=0;i<10;i++);
}
//****************************************
//TLC549转换函数
//****************************************
uint8_t tlc549_convert() //转换
{
uint8_t i=0;
uint8_t advalue=0; //赋值
//cs=1;
IOWR_ALTERA_AVALON_PIO_DATA(PIO_CS_BASE, 1);
//clk=0;
IOWR_ALTERA_AVALON_PIO_DATA(PIO_CLK_BASE, 0);
//cs=0;
IOWR_ALTERA_AVALON_PIO_DATA(PIO_CS_BASE, 0);
delay(1);
//TLC549为串行8bit AD
//数据输出格式从最高位到最低位
for(i=0;i<8;i++)
{
advalue=advalue<<1; //先将数据左移一位,为后面的低位数据腾出空间
if(tlc549_in)
advalue=advalue|0x01; //读取当前总线上的数据
IOWR_ALTERA_AVALON_PIO_DATA(PIO_CLK_BASE, 1);
delay(1); //上升沿期间总线更新下一位数据
IOWR_ALTERA_AVALON_PIO_DATA(PIO_CLK_BASE, 0);
}
IOWR_ALTERA_AVALON_PIO_DATA(PIO_CS_BASE, 1);
return advalue;
}
这个程序是怎么实现的模数转换?
【advalue=advalue|0x01; //读取当前总线上的数据 】 这一句,我看这个程序是把最低位置1呀,怎么就成读取当前数据了呢?
初学,不太懂。 展开
#include "sopc.h"
//****************************************
//延时函数
//****************************************
void delay(uint16_t n)
{
int i;
while(n--)
for(i=0;i<10;i++);
}
//****************************************
//TLC549转换函数
//****************************************
uint8_t tlc549_convert() //转换
{
uint8_t i=0;
uint8_t advalue=0; //赋值
//cs=1;
IOWR_ALTERA_AVALON_PIO_DATA(PIO_CS_BASE, 1);
//clk=0;
IOWR_ALTERA_AVALON_PIO_DATA(PIO_CLK_BASE, 0);
//cs=0;
IOWR_ALTERA_AVALON_PIO_DATA(PIO_CS_BASE, 0);
delay(1);
//TLC549为串行8bit AD
//数据输出格式从最高位到最低位
for(i=0;i<8;i++)
{
advalue=advalue<<1; //先将数据左移一位,为后面的低位数据腾出空间
if(tlc549_in)
advalue=advalue|0x01; //读取当前总线上的数据
IOWR_ALTERA_AVALON_PIO_DATA(PIO_CLK_BASE, 1);
delay(1); //上升沿期间总线更新下一位数据
IOWR_ALTERA_AVALON_PIO_DATA(PIO_CLK_BASE, 0);
}
IOWR_ALTERA_AVALON_PIO_DATA(PIO_CS_BASE, 1);
return advalue;
}
这个程序是怎么实现的模数转换?
【advalue=advalue|0x01; //读取当前总线上的数据 】 这一句,我看这个程序是把最低位置1呀,怎么就成读取当前数据了呢?
初学,不太懂。 展开
展开全部
DAT0 BIT P1.0
CLK0 BIT P1.1
CS BIT P1.2
;----------------------------------------------------------------------------
TLC549_ADC: ;串行显示处理程序,结果存在A中
CLR A
CLR CLK0
CLR CS
MOV R6,#8
ADLOOP:
SETB CLK0
NOP
NOP
MOV C,DAT0
RLC A
CLR CLK0
NOP
DJNZ R6,ADLOOP
SETB CS
SETB CLK0
RET
CLK0 BIT P1.1
CS BIT P1.2
;----------------------------------------------------------------------------
TLC549_ADC: ;串行显示处理程序,结果存在A中
CLR A
CLR CLK0
CLR CS
MOV R6,#8
ADLOOP:
SETB CLK0
NOP
NOP
MOV C,DAT0
RLC A
CLR CLK0
NOP
DJNZ R6,ADLOOP
SETB CS
SETB CLK0
RET
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
STM32是一种由意法半导体(STMicroelectronics)公司设计和生产的单片机系列,广泛用于嵌入式系统、物联网(IoT)设备、汽车电子、工业自动化等领域。STM32具有以下优点:1. 低功耗:STM32单片机通常具有较低的功耗,...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |