📄 system.c
字号:
/*********************************************************/
/* */
/* 电量计 查询方式 */
/* */
/* 实验电路板,ATmega48单片机,CPU时钟1MHz */
/* ------------------------------------------------------*/
/* 软件环境: */
/* */
/* ICCAVR 6.31A */
/*********************************************************/
/********************
* 头 文 件 配 置 区 *
********************/
# include "PF_Config.h"
/********************
* 系 统 宏 定 义 *
********************/
/*------------------*
* 常 数 宏 定 义 *
*------------------*/
/*------------------*
* 动 作 宏 定 义 *
*------------------*/
/********************
* 模块结构体定义区 *
********************/
/********************
* 模块函数声明区 *
********************/
/********************
* 模块变量声明区 *
********************/
/***********************************************************
* 函数说明:主函数 *
* 输入: 无 *
* 输出: 无 *
* 调用函数:System_INIT() *
***********************************************************/
void main(void)
{
unsigned int Voltage;
unsigned char Loop_Counter, Port_Value;
System_INIT(); //调用初始化器件函数
SEI(); //器件初始化完成,允许中断
while(TRUE)
{
ADCSRA |= 1<<ADSC; //置位ADSC位,启动一次转换
while(!(ADCSRA&(1<<ADIF))); //查询方式等待转换完成
Voltage = ADC; //读入ADCH和ADCL中的转换结果
Loop_Counter = Voltage/170; //转换为光柱显示
Port_Value = 0x00;
while(Loop_Counter>0)
{
Port_Value |= 1<<(Loop_Counter-1);
Loop_Counter--;
}
Port_Value^=0xFF; //由于端口上的LED在低电平时点亮,为了适应习惯
PORTB = Port_Value; //在这里对端口数据做了反相的处理
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -