TLC2543芯片AD转换例子,采集第2通道AIN2的电压数据,并通过串口发送转换结果
发送格式为:“转换结果,毫伏数值”。每隔150ms闪亮LED灯。
/
#include <mega8535h>
#include <delayh>
#include <stdioh>
#define uchar unsigned char
#define uint unsigned int
#define _LED PORTD6
#define TXEN 3
#define TCL2543_EOC PINB4 // EOC输出信号
#define TCL2543_CLK PORTB3 // 时钟信号
#define TCL2543_ADIN PORTB2 // 数据输入端
#define TCL2543_DOUT PINB1 // 数据输出端
#define TCL2543_CS PORTB0 // 片选信号
#define TCL2543_DDR 0x0D // 0000 1101
uchar ct=0;
void Init(void)
{
DDRD = 0xFF;
PORTD = 0xFF;
DDRB = TCL2543_DDR;
PORTB = 0xFF;
// T = 1024108/110592 = 10000us = 10ms
TCCR0 = 0x05; // 1024分频, 110592M, 10ms定时
TCNT0 = 148; // 初值。计数=256-148 = 108
TIMSK |= 0x01; // T/C0 溢出中断使能
UBRRH = 0;
UBRRL = 71; // 9600bps, 110592MHz
UCSRB = (1<<TXEN); // 发送器使能
SREG7 = 1; // 全局中断使能
TCL2543_CS = 0; //初始化TLC2543
TCL2543_CS = 1;
百度文库上有很多,或者可以去颖展IC芯片上看看。
我来给你解答吧。
看你的printf语句的终端是指向哪里了,可能是串口也可能只是你keil里边的一个虚拟终端。
这俩差不多,keil的虚拟终端也是模拟的串口的
首先需要包含stdioh
然后需要显示实现一个函数,重新定义一个fput函数,该函数是ANSI标准的,在这个函数里边的实现的是发送一个字符到串口。然后以此函数为基础的printf就可以用了。详细的步骤,请查查“标准输出函数的重定义”。
1)、定时器初始化函数:
你改成这样,VICVectCntl0 = (0x20 | 0x05);你看看定时器1的中断源,是5, 你为什么写0X25呢?
VICIntEnable = (1<<0x05);;你看看定时器1的中断源,是5,不是2,你上面干嘛写成0x02?
2)、 if( (IO0SET&LEDCON) == 0 )?你是要判断引脚的电平,但是IO0SET是引脚的设置寄存器,不是引脚值寄存器,可能这样写执行结果也对,但是不推荐,相当于驴唇和马嘴,推荐:
if((IO0PIN&LEDCON)==0);
但是程序为了省事你可以这样写if(IO0PIN&LEDCON) IO0CLR = LEDCON; (如果高电平则熄灭)
else IO0SET = LEDCON;
通常在芯片解密完成之后,都需要把复制出来的程序代码,烧写进新的空芯片里面,以便 于可以把芯片直接用于机器设备上,但是由于没有专业的烧写工具和技术人员,烧写芯片 往往就会出现烧写不进去或是烧写不全等诸多问题,北京致芯简要的叙述下:
芯片的文件格式是hex,out,bin等
一般芯片烧录方法是:
将一芯片贴装于一主机板上;将一烧录文件装入一烧录机台中;所述烧录机台通过一并行 接口将所述烧录文件传送给所述烧录卡;所述烧录卡将接收到的所述烧录文件转换为串行 数据;所述烧录卡将转换后的烧录文件通过一串行接口传送给所述芯片,对其进行烧录。
你好!
很高兴为你解答,首先我们一步一步看,(0x01 << 3) = 二进制 1000,(~(100)) = (0111)//设置寄存器的低3位位1 DIR &= 0x0111,这样你能理解吗!
以上就是关于用lpc2148芯片实现tlc2543转换的程序怎么写全部的内容,包括:用lpc2148芯片实现tlc2543转换的程序怎么写、各位百度大神们,在keil uv3环境下编译lpc2000系列程序,应该如何使用printf()函数、LPC2114定时器1使用程序,求解释,灯不闪,仿照定时器0修改等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)