⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 l297.h

📁 我写的L297步进电机的驱动
💻 H
字号:
/*****************************************
*      基于AD转化程序设计 		   	     *
* 功    能:AD转化          			 *
* 时钟频率:内部8M 						 *
* 设    计:莫锦攀						 *
* 修改日期:2007年07月04日				 *
* 编译环境:ICC-AVR6.31					 *
* 实验环境:M16学习板					 *
* 使用端口:PC6,PC7,PA4~PA7,PA0 		 *
*****************************************/

#include <iom16v.h>
#include "1602.h"
#define uchar unsigned char
#define uint unsigned int
uchar Data[5]={0,0,0,0,0};//初始值为0000,最后一个0是结束符
void change(uint i,uchar *p)		 //显示处理
{p[3]=i%10+48;//个
 p[2]=i/10%10+48;//十
 p[1]=i/100%10+48;//百
 p[0]=i/1000%10+48;//千
}

uint ADC_convert(void)//AD转换函数,读取采样获得的10位数据
{
uint temp1,temp2;
temp1=(uint)ADCL;
temp2=(uint)ADCH;
temp2=(temp2<<8)+temp1;
return temp2;
}


void main(void)
{uint i,j;
//uchar a;
DDRA=0x00;
PORTA=0x01;		//A口为不带上拉输入
DDRD=0xFF;
PORTD=0xff;
LCD_init();//液晶初始化

  ADMUX=(1<<REFS1)|(1<<REFS0);//选择第一通道ADC0,内部REF(2.56V)
  ADCSR=0xe7;//8M32分频,125k速率,自由模式;启动AD转换器
  delay_nms(100);//延迟100ms等待系统稳定后读取数据
  
   while(1)
   {i=ADC_convert();
   j=0;
   change(i,Data);
   LCD_write_string(3,0,"ADC by cac");
   LCD_write_string(0,1,Data);
   if(i>0x2BC)
  { LCD_write_string(6,1,"Forw");
   PORTD|=(1<<PD1);
   while(j<=2000)
   {
   PORTD|=(1<<PD2);
   delay_nus(20);   
   PORTD&=~(1<<PD2);
   delay_nus(20);
   j++;
   }
   }
   else if(i<0xC8&&i>0xAA)
   {LCD_write_string(6,1,"Back");
   PORTD&=~(1<<PD1);
   while(j<=2000)
   {
   PORTD|=(1<<PD2);
   delay_nus(20);   
   PORTD&=~(1<<PD2);
   delay_nus(20);
   j++;
   }
   }
   else 
   LCD_write_string(6,1,"Stop");
 //    LCD_write_command(0x01);  //清屏
   }
 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -