AVR单片机硬件I2C接口驱动程序

发布者:BlissfulHeart最新更新时间:2016-09-23 来源: eefocus关键字:AVR单片机  I2C接口  驱动程序 手机看文章 扫描二维码
随时随地手机看文章
今天上午写了atmega16的I2C硬件接口程序,程序不难,只是给初学的朋友一个思路,不过通过和51的软件模拟I2C程序比较发现,AVR的I2C硬件接口使程序更简单了,
 程序功能:先由atmega16向EEPROM中某地址写数字71,然后再从EEPROM里读出来显示到数码管上;
AVR单片机硬件I2C接口驱动程序 - 瀚海浸月 - 瀚海浸月
 
#include
#include
unsigned char const  duacode[]={0x3f,0x06,0x5b,0x4f,
                                                          0x66,0x6d,0x7d,0x07,
          0x7f,0x6f,0x77,0x7c,
          0x39,0x5e,0x79,0x71};  //0-f 数字模*/
void delay(unsigned int);
void display(unsigned int);
void send1byte(unsigned char address,unsigned char data);
unsigned char read1byte(unsigned char address);
#define START TWCR=BIT(7)|BIT(5)|BIT(2)
#define STOP TWCR=BIT(7)|BIT(4)|BIT(2)
#define WRITE(x) {TWDR=x; TWCR=BIT(7)|BIT(2);} 
void main()
{unsigned char i=0;
 DDRC=0xff;
 while(1)
  { 
   send1byte(4,71);
   i=read1byte(4);
   display(i);
   
  } 
}
void send1byte(unsigned char address,unsigned char data)
{
  START;
  while(!(TWCR&0x80));
  WRITE(0xa0);
  while(!(TWCR&0x80));
  WRITE(address);
  while(!(TWCR&0x80));
  WRITE(data);
  while(!(TWCR&0x80));
  STOP;
  delay(2);
}
unsigned char read1byte(unsigned char address)
{
 unsigned char temp;
 START;
 while(!(TWCR&0x80));
 WRITE(0xa0);
 while(!(TWCR&0x80));
 WRITE(address);
 while(!(TWCR&0x80));
 START;
 while(!(TWCR&0x80));
 WRITE(0xa1);
 while(!(TWCR&0x80));
 TWCR=BIT(7)|BIT(2);
 while(!(TWCR&0x80)); 
 temp=TWDR; 
 STOP;
 return temp; 
}
void display(unsigned int dat)
{
 unsigned char a[4],i;
 for(i=0;i<4;i++)
  {
a[3-i]=dat%10;
dat/=10;
}
DDRB=0xff; DDRD=0xff;
for(i=0;i<4;i++)
 {
   PORTB=duacode[a[i]];
   PORTD&=~BIT(i);
   delay(10);
   PORTD|=BIT(i);
 }
}
 
void delay(unsigned int x)
{
unsigned int a; unsigned char b;
for(a=x;a>0;a--)
  for(b=100;b>0;b--);
}

关键字:AVR单片机  I2C接口  驱动程序 引用地址:AVR单片机硬件I2C接口驱动程序

上一篇:ATMEGA16用IO模拟SPI驱动ADS7843
下一篇:AVR熔丝位的配置

推荐阅读最新更新时间:2024-03-16 15:11

AVR单片机的主要特性及应用解析
AVR单片机是ATMEL公司研发的增强型内置Flash的RISC精简指令集高速8位单片机,设计时吸取了8051及PIC单片机的优点,具备单时钟周期执行一条指令的能力,运行速度高达1Mips/MHz。AVR单片机可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。 AVR单片机硬件结构采取8位机与16位机的折中策略,即采用局部寄存器存堆(32个寄存器文件)和单体高速输入/输出的方案(即输入捕获寄存器、输出比较匹配寄存器及相应控制逻辑),提高了指令执行速度,克服了瓶颈现象,增强了功能;同时又减少了对外设管理的开销,相对简化了硬件结构,降低了成本。AVR单片机在软/硬件开销;速度、性能和成本诸多方面取
[单片机]
<font color='red'>AVR单片机</font>的主要特性及应用解析
基于AVR单片机的电子镇流器设计
摘要:电子镇流器(Electrical ballast)是镇流器的一种,是指采用电子技术驱动电光源,使之产生所需照明的电子设备。电子镇流器自身功耗低,有更佳的照明效果,消除了闪频现象,发光更稳定,而且可以调光。文章采用AVR单片机作为控制芯片,通过电子镇流器进行调光和相关功能的控制,最大限度地发挥智能型镇流器的特点。实际应用表明,文中的方法有效。 关键词:电子镇流器;AVR单片机;调光 0 引言 电子镇流器是新型节能产品,不仅能带动一些照明灯具,还可以和一些紫外灯结合在一起,对于空气净化和水源净化都有着非常大的作用。当前,全世界都在大力提倡环境保护,电子镇流器间接地为环保提供了原动力。AVR单片机是一款性价比较高的单片机,用
[单片机]
基于<font color='red'>AVR单片机</font>的电子镇流器设计
AVR单片机学习之路
一、购买一两本书,笔者推荐两本 《单片机 C语言开发入门指导》,《高档8位单片机ATmega128原理与开发应用指南》。买书的目的:看书大体了解单片机的结构和工作原理,了解基本概念和基础知识,其实新手是不可能完全看懂一本书的,如果你能,你已经是高手了,所以不要期望一字一句去搞懂书上说的到底是什么东西。看完书对相关内容有个概念性的了解就可以了。   二、开始动手配置开发环境,动手去做,实践出真知。笔者推荐使用ICC AVR + AVR studio +AVR mega16 + JTAG&ISP下载仿真器的组合。抄几个程序,增强一下自己的信心,看到自己的程序在单片机上跑起来,那种愉悦的心情是和用软件仿真仅仅看到IO口的变化是
[单片机]
MSP430应用技巧3:MSP-FET430UIF V3驱动程序的安装
原先一直使用正版windows操作系统和CCS进行MSP430的程序设计,在升级CCS以后,插上仿真器都会要求升级仿真器上的firmware,更新后一直使用正常。由于计算机硬盘损坏,装了个和谐的windows win7旗舰版操作系统(这里说明的是,Dell公司很不像话,操作系统的镜像虽然在硬盘上,但是操作系统也是用户花钱购置的,你不能硬盘坏了,操作系统就不能用了吧,为这事情我和Dell公司沟通很多次,三位支持工程师给我了三种不同的回答,第一个说给我一个正版的光盘寄过来,我等了一周没有消息了;第二个说给我个正版的链接,我自己装就好了,呵呵,仔细一看哪个连接是Microsoft的Win7 SP2的更新,真不知这位工程师怎么配在Dell
[单片机]
MSP430应用技巧3:MSP-FET430UIF V3<font color='red'>驱动程序</font>的安装
PCI传输卡的WDM驱动程序设计
摘要:介绍了在Windows2000操作系统下,使用DriverStudio软件编写符合WDM模式的PCI数据传输卡驱动程序,并详细分析了一个应用实例。 关键词:PCI总线 设备驱动程序 WDM模式 DriverStudio PCI总线规范是为提高微机总线的数据传输速度而制定的一种局部总线标准。在设计自行开发的基于PCI总线的数据传输设备时,需要开发相应的设备驱动程序。通常开发PCI设备驱动程序有多种模式,在Windows2000环境下,主要采用WDM模式。本文针对自行开发的基于PCI总线的CCD视频信号传输控制卡,编写了符合WDM模式的驱动程序。 1 WDM模式驱动程序 1.1 WDM模式(Windows Driver
[应用]
任务8:在LED阵列上,显示数字“0”
本系列教程以AVR单片机为对象,介绍单片机的快速开发方法。 参考教材:《单片机技术及应用项目教程》 栾秋平 电子工业出版社 2019.6 第1版 本文介绍使用74HC595在LED阵列上,显示数字“0”的方法。 一、灯光阵列 二、config.h文件的使用 #ifndef MAIN_H_ #define MAIN_H_ /* ******************************************************************************** 调试 *************************************************************
[单片机]
任务8:在LED阵列上,显示数字“0”
基于AVR单片机的博物馆防盗保护器系统设计
引言 博物馆内的藏品常常受到人为盗窃的威胁,周围环境的变化也会对其造成破坏,因此需要极为可靠的防盗系统及完善的空调系统,本设计的目的就是实现对馆藏品的智能化防盗和保护。博物馆关闭时便可将此防盗保护器启动,通过CMOS传感器对博物馆进行扫描,图像信号在微处理器中进行处理筛选压缩,并与被监控信号(人形信号)进行比较,一旦出现类人形信号,便将数据进行存储(这样可以大大节省存储空间),并进行报警。被监控信号可以增加,可以是其它任何可能对馆藏品造成损害的动物,只不过在进行筛选比较处理时要复杂一些。另外,通过温度传感器对温度信号进行采集监控,通过控制馆内空调来达到调节温度的效果,以避免馆内文物因为温度的变化而造成损害。 图1 系统功能框
[单片机]
基于<font color='red'>AVR单片机</font>的博物馆防盗保护器系统设计
Linux环境下基于I2C总线的EEPROM 驱动程序
  1 引言   I2C (Inter-Integrated Circuit1总线是一种由Philips公司开发的2线式串行总线,用于连接微控制器及其外围设备。它是同步通信的一种特殊形式,具有接口线少、控制方式简单、器件封装形式小、通信速率较高等优点。在主从通信中,可有多个I2C总线器件同时接到I2C总线上,通过地址来识别通信对象。笔者在开发基于MPC8250的嵌入式Linux系统的过程中发现I2C总线在嵌入式系统中应用广泛,I2C总线控制器的类型比较多,对系统提供的操作接口差别也很大。与I2C总线相连的从设备主要有微控制器、EEPROM、实时时钟、A/D转换器等.MPC8250处理器正是通过内部的I2C总线控制器来和这些连接在I
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved