/*************************************
>>>>>>>>>>>>>AVR学习笔记<<<<<<<<<<<<<<
【4】数码管显示两路AD转换结果
编译环境:ICC_AVR
By:fan Time:2013-9-20
*************************************/
#include<iom16v.h>
#include"delay.h"
#define F_CPU 4000000UL
#define uchar unsigned char
#define uint unsigned int
//各数字的数码管段码,最后一位为空白
const uchar SEG_CODE[] =
{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF};
//两路模拟转换结果显示缓冲,显示格式为:X.XX X.XX ,第4位和第8位不显示
uchar data_buffer[] = {0,0,0,10,0,0,0,10};
//====================================================================
//选择通道channel 并转换数据
//====================================================================
void AD_convert(uchar channel)
{
int result;
ADMUX=channel; //channel=0/1,分别对应选通ADC0和ADC1
//读取电压值 并转换
//result=(int)((ADCL+(ADCH<<8))*500.0/1023.0);
result=(int)(ADC*500.0/1023.0);
//将0x0000~0x03ff(0~1023)转换到0~500范围内,对应0.00~5.00V
//ADC结果存放到缓冲数组中
//ADC0结果放在data_buffer[]的0.1.2单元,ADC1结果放在data_buffer[]的4.5.6单元
//data_buffer[]的 3单元 和 7单元 不显示 用于分隔
data_buffer[channel*4]=result/100;
data_buffer[channel*4+1]=result%100/10;
data_buffer[channel*4+2]=result%100%10;
}
//====================================================================
//主函数
//====================================================================
void main()
{
uchar i;
DDRA=0xFC;//PA0/PA1做输入 采集模拟量
//数码管显示部分设置
DDRC=0xff; PORTC=0x00;
DDRD=0xff; PORTD=0x00;
//启动ADC
ADCSRA=0xe6; //1110 0110 分频因子64
delay_nms(3000); //等待系统稳定
while(1)
{
//启动ADC0、ADC1两个通道的数据转换
AD_convert(0);
AD_convert(1);
//数码管显示部分
for(i=0;i<8;i++)
{
PORTC=0xff; //关闭段码
PORTD=(1<<i); //发送位码
PORTC=SEG_CODE[data_buffer[i]]; //发送数字段码
if(i==0||i==4)
PORTC&=0x7f;
delay_nms(1);
}
}
}
ADC.rar_AVR AD转换_Proteus ADC avr_adc proteus
版权申诉
161 浏览量
2022-09-23
13:30:43
上传
评论 1
收藏 231KB RAR 举报
林当时
- 粉丝: 98
- 资源: 1万+
最新资源
- HPSoftwareFramework
- 在C语言中,文件读写操作主要通过标准库中的stdio.h头文件提供的函数来实现 这些函数包括fopen()用于打开文件,fclo
- Python是一种功能强大且广泛使用的编程语言,它在多个领域都发挥着重要作用 以下是对Python资源的500字介绍: Pyt
- 2022级高等数学A2期中试题B.doc
- 基于遥感影像处理的土地利用专题图分析-以武汉市为例
- A Description of the Fundamentals of Analog Electronics
- A Description of the Fundamentals of Analog Electronics
- c++基础和进阶课堂讲义完整版
- unity插件Rope Toolkit-2.2.0
- 在C#中实现乘法口诀.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈