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

📄 ad574.c

📁 基于ATMEGA16的AD转换的C程序源代码
💻 C
字号:
/////////////////////////////////////////////////////////////
//  文件:AD574调试                                        //
//  环境:iccavr7                                          //
//  硬件:ATMEGA16芯片                                     //
//  日期:2007.08.30                                       //
//  功能:AD转换                                           //
/////////////////////////////////////////////////////////////
//cs:pc3 a0:pc2 r/c:pc1  ce:pc0
#include <iom16v.h>
#include <macros.h>
#define F_CPU 8000000
#include <delay.h>
#include <AVR_XQV12.h>
/*******************************************************/
/******   函数名称: conver_start()                ******/
/******   功    能: 启动AD转换                    ******/
/******                                           ******/
/******   参    数: 无                            ******/
/******   返回值  : 无                            ******/
/*******************************************************/
void conver_start()
 {
   PORTC|=BIT(0);
   PORTC&=~BIT(1);
   PORTC&=~BIT(2);
   PORTC&=~BIT(3);   
 }
/*******************************************************/
/******   函数名称:                               ******/
/******   功    能:                               ******/
/******                                           ******/
/******   参    数:                               ******/
/******   返回值  :                               ******/
/*******************************************************/
void eight_out()
 {
   PORTC|=BIT(0);
   PORTC|=BIT(1);
   PORTC&=~BIT(2);
   PORTC&=~BIT(3);
   PORTC&=~BIT(7);
 }
/*******************************************************/
/******   函数名称:                               ******/
/******   功    能:                               ******/
/******                                           ******/
/******   参    数:                               ******/
/******   返回值  :                               ******/
/*******************************************************/
void four_out()
 {
   PORTC|=BIT(0);
   PORTC|=BIT(1);
   PORTC|=BIT(2);
   PORTC&=~BIT(3);
   PORTC&=~BIT(7);
 }
/*******************************************************/
/******   函数名称: void port_int()               ******/
/******   功    能: I/O端口设置                   ******/
/******                                           ******/
/******   参    数: 无                            ******/
/******   返回值  : 无                            ******/
/*******************************************************/
void port_int()
 {
   DDRC&=~BIT(6);
   PORTC|=BIT(6);
   DDRB=0xFF;
   DDRA=0xFF;
   DDRD=0x00;
   DDRC|=BIT(0);
   DDRC|=BIT(1);
   DDRC|=BIT(2);
   DDRC|=BIT(3);
   DDRC|=BIT(7);
 }
/*******************************************************/
/******   函数名称: conver_vo()                   ******/
/******   功    能: 转换数据                      ******/
/******                                           ******/
/******   参    数: 无                            ******/
/******   返回值  : 无                            ******/
/*******************************************************/
void conver_vo()
 { 
   if(!(PINC&BIT(6)))
   {
   unsigned int ADHI,ADLO,VO,middle;
   unsigned char VOO[5];
   unsigned char i;
   eight_out();
   ADHI=PIND;
   four_out();
   ADLO=PIND;
   VO=((ADHI<<4)+ (ADLO & 0x0f));
   middle=VO; 
   for(i=0;i<5;i++)
    {
	  VOO[i]=middle%10;
	  middle=middle/10;
	}
   for(i=0;i<5;i++)
    {
	  Display_One_SMG(i,VOO[i]);
	} 
    conver_start();
   }    
 }
/*******************************************************/
/******   函数名称:void main()                    ******/
/******   功    能:主                             ******/
/******                                           ******/
/******   参    数:无                             ******/
/******   返回值  :无                             ******/
/*******************************************************/
void main()
 {
   port_int();
   conver_start();
   while(1)
    {
	  conver_vo();
	}
 }

⌨️ 快捷键说明

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