谁有AVR单片机中“1602.h”文件 邮箱1477650529@qq.com
发布网友
发布时间:2022-05-12 19:08
我来回答
共3个回答
热心网友
时间:2023-10-19 01:42
我有一个1602秒表的:
1.显示部分的程序
//-----------------------------------------------------------------
// 名称: 液晶控制与显示程序
//-----------------------------------------------------------------
#include <avr/io.h>
#include <util/delay.h>
#define INT8U unsigned char
#define INT16U unsigned int
//LCD控制引脚定义
//LCD端口定义
//-----------------------------------------------------------------
// LCD忙等待
//-----------------------------------------------------------------
void LCD_BUSY_WAIT()
{
}
//-----------------------------------------------------------------
// 写LCD命令寄存器
//-----------------------------------------------------------------
void Write_LCD_Command(INT8U cmd)
{
}
//-----------------------------------------------------------------
// 写LCD数据寄存器
//-----------------------------------------------------------------
void Write_LCD_Data(INT8U dat)
{
}
//-----------------------------------------------------------------
// 设置显示位置
//-----------------------------------------------------------------
void Set_LCD_POS(INT8U x, INT8U y)
{
}
//-----------------------------------------------------------------
// LCD初始化
//-----------------------------------------------------------------
void Initialize_LCD()
{
}
//-----------------------------------------------------------------
// 显示字符串
//-----------------------------------------------------------------
void LCD_ShowString(INT8U x, INT8U y,char *str)
{
}
2.这部分是main()的
//-----------------------------------------------------------------
// 名称: 用1602LCD设计的秒表
//-----------------------------------------------------------------
// 功能: 首次按下K1时开始计时,再次按下时暂停,第三次按下时继续
// 累加计时,再按下时停止计时. K2用来清零秒表.
//
//-----------------------------------------------------------------
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <string.h>
#include <stdio.h>
#define INT8U unsigned char
#define INT16U unsigned int
//蜂鸣器定义
//液晶相关函数
//固定显示消息串
char *msg1 = {"Second Watch 0 "};
char *msg2 = {"---->>>> "};
char Prompts[][16] =
{
};
//时,分,秒,百分秒计时缓冲与显示缓冲
INT8U Time_Buffer[] = {0,0,0,0};
char LCD_Display_Buffer[] = {"00:00:00:00"};
//Key_func_NO用于在一个按钮上区分四种不同操作(取值限于0,1,2,3)
volatile INT8U Key_func_NO = 0xFF;
//-----------------------------------------------------------------
// 蜂鸣器声音输出
//-----------------------------------------------------------------
void Sounder()
{
}
//-----------------------------------------------------------------
// T2中断控制计时
//-----------------------------------------------------------------
ISR (TIMER2_OVF_vect )
{
}
//-----------------------------------------------------------------
// 主函数
//-----------------------------------------------------------------
int main()
{
}
//-----------------------------------------------------------------
// INT0中断服务程序(区分四档按键:0,2为启动或继续, 1,3为暂停或停止)
//-----------------------------------------------------------------
ISR (INT0_vect)
{
}
//-----------------------------------------------------------------
// INT1中断服务程序
//-----------------------------------------------------------------
ISR (INT1_vect)
{
}
热心网友
时间:2023-10-19 01:43
首先我不知道你说的是什么意思?貌似楼主不怎么懂单片机啊。
Atmel将 AVR 微控制器的支持范围拓展至交流和无刷直流 (BLDC) 电机控制应用领域,为这些应用带来了高度灵活且具有成本效益的解决方案。AVR 闪存微控制器 (Flash Microcontroller) 的卓越性能以及全面特征为设计者提供了最佳解决方案,使他们得以满足与电机控制设计相关的多种技术要求。
现有的专用标准产品 (ASSP) 对于目标应用而言往往过于具体并有限,而将微控制器用于电机控制则是更具吸引力的选择。AVR 闪存微控制器包括从8针脚到100针脚的各种设备,无论是诸如 PC 风扇的简单应用,还是极其先进的电机控制应用,AVR 闪存微控制器都能应付自如。所有 AVR 产品都整合了一个闪存程序存储器以及一个 EEPROM(电可擦除只读存储器),使设计者能将同样的微控制器用于多种设计,并在产品生命周期内随时安装最新程序。另外,AVR 的代码兼容性使设计者能够将其开发成果转移至其他 AVR 设备并满足各种需求。这种灵活性可缩短上市时间,并有助于实现系统成本的最小化。
电机控制是通过使用具有 PWM(脉冲宽度调制)的内在定时器、模数转换器 (ADC) 和输入/输出设备中断信号来实现的。PWM 处理电机的电压起伏,并实现速度和加速度控制。内建 10位模数转换器测量能耗并向目标应用发出电流过载 (over-current) 警告,同时 AVR 的针脚更改中断信号则监控无刷直流电机的霍尔感应器 (Hall Sensor)。对于没有感应器的无刷直流电机,AVR 的模数转换器和模拟比较器 (Analog Comparator) 则用于预报电机的状态。所有基于中断信号的特征实现了电机控制功能的执行,同时保证另外的资源用以满足其它应用需求。典型功能包括定制启动次序、温度测量、SMBus(TM)(系统管理总线)、Two-Wire Interface(双线接口)以及 SPI(串行外围接口)通信。
热心网友
时间:2023-10-19 01:43
找到没有啊