我想用mega16自带的AD,且要两个通道不停转换,但不知道程序什么地方出问题了,用protues仿真AD通道只能一个变换,有时候甚至不能变换,求助
用的是icc+protues:
程序如下:
#include <iom16v.h>
#include "string.h"
#include "lcd1602.h"
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
uint flag1=0,flag2=0,ms=0;
ulong addata=0,add1=0,add2=0;
uint kflag=0,kstate=1;
int a=0;
uchar table1[]={"0000 0 "};
uchar table2[]={"0000 0 "};
//延时程序:系统时钟:8M
static void delay1us(void) //1us延时函数
{ asm("nop"); }
static void delaynus(unsigned int n) //n us延时函数
{
unsigned int i=0;
for(i=0;i<n;i++)delay1us();
}
static void delay1ms(void) //1ms延时函数
{
unsigned int i;
for (i=0;i<1140;i++);
}
static void delaynms(unsigned int n) // n ms延时函数
{
unsigned int i=0;
for (i=0;i<n;i++) delay1ms();
}
/*-------------定时器0定时中断初始化-----------*/
void timer0init(void){ //定时器0定时中断初始化 10m进入中断
TCNT0=178;
TCCR0=0x05;
TIMSK|=0x01;
TIFR|=(1<<TOV0);
}
void display1(ulong add){
table1[0]=add1/1000+'0';
table1[1]=add1%1000/100+'0';
table1[2]=add1%100/10+'0';
table1[3]=add1%10+'0';
DisplayListChar(0,0,table1);
}
void display2(ulong add){
table2[0]=add2/1000+'0';
table2[1]=add2%1000/100+'0';
table2[2]=add2%100/10+'0';
table2[3]=add2%10+'0';
DisplayListChar(0,1,table2);
}
void main()
{
int a=0,b=0;
/* //pwm初始化
DDRD|=0x31; //pwm端口初始化+确定键指示灯端口设置为输出
TCCR1A=0x53; //10位快速pwm,比较匹配时清零,N=256 COMA1:0为0时,端口为低电平
TCCR1B=0x19;
OCR1A=13; //pwmA匹配值
// OCR1B=13; //pwmB匹配值*/
DDRA&=0xFC; //ad端口初始化
PORTA&=0xFC;
ACSR |= 0x80; //禁用模拟比较器
//adc初始化
ADMUX=0xC0;
//SFIOR&=0x1F;
// SFIOR|=0x80; //选择T0溢出中断作为adc触发源
ADCSRA=0x07; //adc允许、自动触发转换、adc转换中断允许、adclk=62.5khz
LCD_Init();//1602初始化
DisplayListChar(0,0,table1);
DisplayListChar(0,1,table2);
SREG|=0x80; //开总中断
delaynms(1000);
while(1){
ADMUX|=0xC2;
ADCSRA=0xC7;
while( (ADCSRA&0x40)==0);
//delaynms(5);
add1=ADCL;
add1=add1+ADCH*256;
ADCSRA=0x07;
display1(add1);
delaynms(5000);
ADMUX|=0xC1;
ADCSRA=0xC7;
while( (ADCSRA&0x40)==0);
// delaynms(5);
add2=ADCL;
add2=add2+ADCH*256;
ADCSRA=0x07;
display2(add2);
delaynms(5000);
}
}
这是protues仿真的电路:
ceshi3.rar
(15.88 KB, 下载次数: 12)
2012-5-3 21:10 上传
点击文件名下载附件
顺便贴下lcd1602的程序~
lcd.doc
(34 KB, 下载次数: 11)
2012-5-3 21:10 上传
点击文件名下载附件
此帖出自
小平头技术问答
一周热门 更多>