📄 ad574.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 + -