金牌会员
- 积分
- 2209
- 威望
- 1177
- 贡献
- 670
- 兑换币
- 270
- 注册时间
- 2012-4-13
- 在线时间
- 181 小时
|
//程序功能:LED显示AD转换结果
//硬件连接:PORTB接8个LED,67脚接电位器,接5V
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
#define uchar unsigned char
#define uint unsigned int
//程序功能:初始化AD各寄存器
void ATD0_Init()
{
ATD0DIEN=0X00;//禁止数字输入功能
ATD0CTL1=0X40;//AD转换精度选择12位,采样前不放电
ATD0CTL2=0X40;//启动A/D转换,快速清零,禁止中断
ATD0CTL3=0X88;//转换结果右对齐,每次只转换一个通道
ATD0CTL4=0X03;//采样时间4个周期,PRS=3
ATD0CTL5=0X20;//对通道0单通道连续采样
}
//程序功能:主函数
void main()
{
uchar AD_result;
ATD0_Init(); //初始化AD寄存器
DDRB=0XFF; //初始化LED
PORTB=0XFF;
for(;;)
{
while(!ATD0STAT2L_CCF0)//等待转化完成
{;}
AD_result=ATD0DR0H;//转化精度为12为,结果为右对齐,所以12~15为空(0)
//此时可以转动电位器,因为取的是高8位,所以只有数码管的低四位变化
//高四位一直亮
PORTB=AD_result;
}
}
|
|