公交车自动报站系统设计(4)

2019-03-03 20:16

void ISD4004_Play(uint addr) {

Sendcmd(POWERUP,0); DelayMs(25); SendCmd(SETPLAY,addr); SendCmd(PLAY,0); }

uint ISD4004_Stop(void) {

uint tmp;

tmp= SendCmd(STOP,0); return tmp; }

void ISD4004_Record(uint addr) {

SendCmd(POWERUP,0); DelayMs(25); SendCmd(POWERUP,0); DelayMs(50); SendCmd(SETREC,addr); SendCmd(REC,0); }

uint ISD4004_Rint(void)

{

return SendCmd(RINT,0); }

*******************************************************************************

//I2CLib.h

#ifndef TWI_H

15

#define TWI_H

#include #include

#define ERROR

#define START 0x08 #define MT_SLA_ACK 0x18 #define MT_DATA_ACK 0x28 #define MR_SLA_ACK 0x40

#define MR_DATA_ACK 0x50 #define MR_DATA_NACK 0x58

void TwiWrite(char sladdr,char addr,char* dat,int len); void TwiRead(char sladdr,char addr,char* dat,int len); #endif/*TWI_H*/ //I2CLib.c

#include \

static void Delay(int num) {

int i;

for(i=0;i

void TwiWrite(char sladdr,char addr,char* dat,int len); {

int i;

for(i=0;i

if((TWSR&0xF8)!=START)ERROR(START);

16

TWDR=(sladdr<<1)&0xfe; TWCR=(1<

if((TWSR&0xF8)!=MT_SLA_ACK) ERROR(MT_SLA_ACK);

TWDR=addr+1; TWCR=(1<

if((TWSR&0xF8)!=MT_DATA_ACK) ERROR(MT_DATA_ACK);

TWDR=*(dat+i); TWCR=(1<

if((TWSR&0xF8)!=MT_DATA_ACK) ERROR(MT_DATA_ACK);

TWCR=(1<

Delay(3000); } }

void TwiRead(char sladdr,char addr,char* dat,int len); {

int i;

for(i=0;i

if((TWSR&0xF8)!=START)ERROR(START);

TWDR=(sladdr<<1)&0xfe; TWCR=(1<

if((TWSR&0xF8)!=MT_SLA_ACK) ERROR(MT_SLA_ACK);

TWDR=addr+1; TWCR=(1<

17

while(!(TWCR&(1<

if((TWSR&0xF8)!=MT_DATA_ACK) ERROR(MT_DATA_ACK);

TWCR=(1<

if((TWSR&0xF8)!=START)ERROR(START);

TWDR=(sladdr<<1)|0x01; TWCR=(1<

if((TWSR&0xF8)!=MR_SLA_ACK)ERROR(MR_SLA_ACK);

TWCR=(1<

if((TWSR&0xF8)!=MR_DATA_NACK)ERROR(MR_DATA_NACK); *(dat+i)=TWDR;

TWCR=(1<

*******************************************************************************

//include.h

#ifndef INCLUDE_H #define INCLUDE_H

#include #include

#include\ #include \

#define HEAD 0 #define TAIL 1 #define RECORD_NUM 30

18

#define KEY_PLAY_LEVEL (PIND&0x04) #define KEY_STOP_LEVEL (PINB&0x40) #define KEY_RECORD_LEVEL (PINB&0x80) #define INT_LEVEL (PINC&0x01)

typedef enum{ KEY_NONE, KEY_PLAY, KEY_STOP, KEY_RECORD }KeyCode;

typedef enum{ PLAY_NONE, PLAY_HEAD, PLAY_ZHAN, PLAY_TALL, PLAY_OVER }PlayStatus;

typedef enum{ RECORD_NONE, RECORD_ONGOING, RECORD_OVF }RecordStatus;

typedef enum{ FALSE, TRUE }Bool;

void TxData(char data); void DelaayMs(uint n); uchar MEGA48SPISendByte(uchar byte); viod MEGA48SSLevel(Level level);

#endif/*INCLUDE_H*/ //include.c

19


公交车自动报站系统设计(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国石油天然气股份有限公司财务报表分析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: