⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 twi.c

📁 一个基于51单片机的定时报警设计电路及程序
💻 C
字号:
//-----------------------------------------------------------
//程序由AVR辅助开发工具V2.0.0自动生成     
//MCU系统的处理器为:    ATMega16
//MCU系统的晶振频率:    8.0000 Mhz
//-----------------------------------------------------------

#include <iom16v.h>
#include "delay.h"
#include "twi.h"

//-----------------------------------------------------------
//TWI初始化子程序
//-----------------------------------------------------------
void TWI_Init(void)
{
   TWCR= 0x00;     //disable twi
   TWBR= 0x49;     //set bit rate
   TWSR= 0x03;     //set prescale
   TWAR= 0xFE;     //set slave address
}

//总线上起动停止条件
void twi_stop(void)
{
   TWI_Stop();
}

//总线上起动开始条件
unsigned char twi_start(void)
{
   TWI_Start();
   TWI_Wait();
   return TW_STATUS;
}

//写一字节
unsigned char twi_writebyte(unsigned char c)
{
   TWDR = c;
   delay_nms(10);   
   TWCR = (1 << (TWINT)) | (1 << (TWEN));
   TWI_Wait();
   delay_nms(10);  
   return TW_STATUS;
}

//读一字节 ack: true时发ACK,false时发NACK
unsigned char twi_readbyte(unsigned char *c ,unsigned char ack)
{
   unsigned char tmp=(1 << (TWINT)) | (1 << (TWEN));
   if(ack)
      tmp|=(1 << (TWEA));
   TWCR=tmp;
   delay_nms(10);
   TWI_Wait();
   delay_nms(10); 
   *c=TWDR;
   return TW_STATUS;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -