AVR单片机I2C总线实验。
1、用24C02记录CPU启动次数,并在PB口上显示出来。
2、内部1 M晶振,程序采用单任务方式,软件延时。
3、进行此实验请插上JP1的所有8个短路块,JP7(LED_EN)/PC0/PC1短路块。
4、通过此实验,可以I2C总线操作有个初步认识。
*/
#include "iom16v.h"
extern unsigned char twi_write(unsigned char addr, unsigned char dd);
extern unsigned char twi_read(unsigned char addr, unsigned char *dd);
/*延时函数*/
void delay_ms(unsigned char i) {
unsigned char a, b;
for (a = 1; a < i; a++) {
for (b = 1; b; b++) {
;
}
}
}
void main(void) {
unsigned char temp;
PORTA = 0xFF; /*打开上拉*/
DDRA = 0x00; /*方向输入*/
PORTB = 0xF0; /*电平设置*/
DDRB = 0xFF; /*方向输出*/
PORTC = 0xFF;
DDRC = 0x00;
PORTD = 0xFF;
DDRD = 0x00;
twi_read(0x08, &temp);
PORTB = ~temp;
temp ++;
twi_write(0x08, temp);
while (1) {
;
}
}
关键字:AVR I2C总线
引用地址:
AVR单片机I2C总线实验
推荐阅读最新更新时间:2024-03-16 12:41
AVR单片机控制74HC595 74HC165的示例程序
硬件说明:ATmega48/88/168的PB5是SPI时钟输出,接74HC595/74HC165的移位时钟输入端;PB4是SPI的MISO数据输人,接74HC165的数据输出;PB3是SPI的MOSI数据输出,接74HC595的串行数据输入端SER;PB2接74HC595/74HC165的锁存时钟输入端。 程序1:本例子是用硬件SPI接口循环发送一个变量到74HC595,并且在数据发送完毕后通过 单片机 的另外一个IO接口PB2输出一个“锁存”脉冲 ,使74HC595把移位寄存器的数据输出到锁存寄存器,并驱动8个 LED 输出,实现来回流水的效果。 //本程序在本站的 M8 V2.0 实验板 通过 // CodeWiz
[单片机]
avr单片机的TWI两线串行接口
ATMEL的TWI 和 PHILIPS的IIC 基本上应该是算一个东西,但是他们在名义上是不同的,这样谁都不用支付给对方使用费。他们的协议是一样的,所有我们作为使用者基本可以简单的看成 TWI就是IIC 。 废话说完,开始正题。这次是关于在ATMega16 平台下的硬件IIC(还不太习惯说TWI)的使用。在ATMega16的Datasheet里我们可以看到很强大的功能,主从设置很多。本文只说一种最常用的方式,那就是 ATMega16 硬件TWI 的 扫描发送 和 扫描读取 。 首先要明确TWI 发送和接受的流程: 发送: 1,设定数据传输波特率 2,发送START信号,等待应答 =
[单片机]
基于AVR单片机的AT24C02子程序
/******************************************************************** 目 的: 建立AT24C02操作库 目标系统: 基于AVR单片机 应用软件: ICCAVR *********************************************************************/ /*0101010101010101010101010101010101010101010101010101010101010101010
[单片机]
基于AVR单片机及MODEM芯片的无线电遥测系统设计
一、引言 基于AVR单片机及专用MODEM芯片的MTU(Master Terminal Unit中心调度机)、RTU无线电遥测系统。 分散地分布在全市的管网监测点上的远端RTU(系统可带256个RTU)采集数据,进行数据处理后通过无线电台向中心调度端发送数据,中心调度端接收到数据后进行数据处理,数据存储,并送给模拟屏显示。 二、设计思想 原有系统的使用中,主要存在以下几个问题:1. 无线通信波特率低(300bps),误码率高,巡测速度慢,最多带32个RTU终端;2. 当某一远程RTU端的无线电台一直处于长时间误发射状态时(简称“长发” )一直占用系统频点,由于系统共用一组无线电频点,这将使
[单片机]
通过采用AVR单片机ATXmega128A1进行便携式仪表的设计
1.引言 工业化仪表,因其集信息的获取.转换.存储.传输.分析.处理及显示于一体而成为工业控制领域的基础和核心之一.随着计算机技术.微电子技术的发展,工业化仪表已逐渐发展成为具有微处理器系统的智能化仪表.便携式智能仪表因其携带方便.操作方便.界面友好.人机接口丰富.功耗低等特性,使得其在当今生活中越来越普及. AVR XMEGA是8/16位AVR微处理器的升级版本.其采用Atmel picoPower技术,所有器件均可使用1.6V工作电压.MCU具有5霺唤醒时间和100nA的业界极低耗电量,其内部增加集成了全速USB?高速高精度模拟系统.DMA控制器和创新的事件系统,最大限度的提升了数据吞吐量和实时性能,并有效减轻了处理器负载
[单片机]
单片机avr 输入输出(i/o)端口使用介绍
以ATmega16单片机为例,共有32个通用I/O口,分为4个端口PA,PB,PC,PD,每个端口都包含8个I/O口,如图所示,每个端口对应一个8位的二进制,对应的i/o管脚顺序由高到低排列。 每个I/O口都可以单独设为输入或输出,如上图中PA口的8个I/O口全部设为输出,控制8个发光二极管的亮灭。i/o口除作为输入输出口外,还有第二功能,如PA口也作为AD转换的输入口。 每个端口都具有输入,输出,方向控制三个寄存器: 以PA口为例,其他端口相同,方向寄存器DDRA,对应8个的I/O口,1设为输出,0设为输入。 输出寄存器PORTA,对应的I/O口,1输出高电平,0
[单片机]
avr的IO模拟SPI时序发送23位数据
#include iom16v.h /***********************************************************************/ #define DAT_L PORTA&=~(1 PA1) #define DAT_H PORTA|= (1 PA1) #define CLK_L PORTA&=~(1 PA0) #define CLK_H PORTA|= (1 PA0) #define ENA_L PORTA&=~(1 PA2) #define ENA_H PORTA|= (1 PA2) /*****************USART全局变量**************
[单片机]
在P87LPC764单片机I2C总线系统中扩展LCD显示器
1 引言 I2C总线是Philips公司推出的芯片间串行传输总线。它仅用串行数据线(SDA)和串行时钟线(SCL)两根连线便实现了完善的全双工同步数据传送,并可很方便地构成多机系统和外围器件扩展系统。 本文介绍在P87LPC764单片机中利用I2C总线系统中典型的LCD驱动控制器件PCF8577C来扩展256段静态LCD的电路设计方法。 2 硬件电路设计 2.1 P87LPC764单片机的I2C总线接口 P87LPC764是Philips公司生产的一种小封装、低成本、高性能的单片机(具体内容见参考文献2)。它采用80C51加速处理器结构,片内带有支持I2C总线的硬件接口。当激活I2C总线时,P87LPC7
[工业控制]