用了自己写的起动总线和停止总线,终于可以成功


// PROGRAM   : 4-17.c                                          2011.0521
// FUNCTION : I2C Master/Slave Mode Demo Program   By Steven
// Note     : Configuration Option Setting--
//            SIM Function = Enable
//void I2C_START(void);
//void I2C_STOP(void);
//void WriteByte(unsigned short);
//unsigned short ReadByte(void);
//void CheckACK(void);
//void PAUSEIIC(unsigned short);
//void I2C_INIT(void);
//void INIT_TVP5150(void);
//void IICWRITE_ADDRSSDATA(unsigned char addrss,unsigned char data);
//#pragma   rambank0                                    //BIT Data Type Must in Bank 0
//bit       RxFlag,DeviceFlag;
//unsigned short RxData,TxData;
#include    "HT68F30.h"
#include    "ht68f30iic.h"const unsigned char IICADDRSS=0XB8;//I2CSEL接做VD1_OUT7的话地址是0XB8,I2CSEL=0,地址是0XBAvoid I2C_INIT(void)
{_cp0c=0x08; _cp1c=0x08; //_acerl=0;        //Disable CP0/CP1/ADCWIDEO_PWDN_C=0;//把PWN设置成为输出状态WIDEO_PWDN=0;//设置时钟频率WIDEO_RESET_C=0;//把复位端口设置成输出状态WIDEO_RESET=1; //低电平进行复位 置成1保证处在正常工作状态
//  PWR_EN5150C=0;
//  PWR_EN5150=1;//电源供电给5150//SEG_Port=0; SEG_PortC=0;                       //Clear & Config SEG_Port as O/P//ID_PortC=0xFF; ID_Pull=0xFF;                    //ID_Port as I/P & Enable Pull-up//FG_LED=0; FG_LEDC=0;                              //Clear FG_LED & Config as O/P//_sima=GetID()<<1;                                //Get ID from DIP SW//_simc0=0b11000000;                                //Select I2C Slave Mode//_mf2e=1; _sime=1; _simen=1; _emi=1;           //Enable Interrupt and SIM Function
}
void INIT_TVP5150(void)
{   unsigned char data;
/*  unsigned int k;k=10;while(k--){        SCL=0; SDA=0;                                 //Set SCL=0, SDA=0//PAUSEIIC(10);_delay(10);SCL=1; SDA=1;                                   //Set SCL=0, SDA=0    //PAUSEIIC(10);_delay(10);}//I2C_INIT();//开始IIC前开始的初始化工作IICWRITE_ADDRSSDATA(0x03,0x8F);//2. 杂项控制寄存器k=10;SCLC=0;SDAC=0;while(k--){        SCL=0; SDA=0;                                 //Set SCL=0, SDA=0//PAUSEIIC(10);_delay(10);SCL=1; SDA=1;                                   //Set SCL=0, SDA=0    //PAUSEIIC(10);_delay(10);}data =IICREAD_ADDRSSDATA(0x03);//0x0D默认值是0x47   k=10;while(k--){       SCL=0; SDA=0;                                 //Set SCL=0, SDA=0//PAUSEIIC(10);_delay(10);SCL=1; SDA=1;                                   //Set SCL=0, SDA=0    //PAUSEIIC(10);_delay(10);}//if(data!=0)if(data==0x8F){Test_Pc6C=0;Test_Pc6=1; _tmpc0=0;//取消PC5引脚的复用功能Test_Pc5C=0;  //如果从机应答的话把这个引脚电平拉高Test_Pc5=1;  }*/IICWRITE_ADDRSSDATA(0x03,0x8F);//2.  杂项控制寄存器IICWRITE_ADDRSSDATA(0x0D,0x40);//3.  输出和数据比率选择寄存器    }
void IICWRITE_ADDRSSDATA(unsigned char addrss,unsigned char data)
{I2C_START();WriteByte(IICADDRSS);CheckACK();I2C_START();WriteByte(addrss); CheckACK();WriteByte(data);CheckACK();_delay(64);//5150要求有64us的延时I2C_STOP();
}
unsigned char IICREAD_ADDRSSDATA(unsigned char addrss)
{unsigned char data;I2C_START();WriteByte(0XB8);//写器件地址CheckACK();WriteByte(addrss);//写寄存器地址CheckACK();//_delay(64);I2C_STOP();I2C_START();WriteByte(0XB9);//写器件地址//_delay(64);CheckACK();data=ReadByte();//读  I2C_STOP();return data;
}
void I2C_START(void)
{
/*  SCL=0; SDA=0;                                 //Set SCL=0, SDA=0SCLC=0;SDAC=0;                                    //SCL/SDA as Output Mode_delay(10);SCL=1; SDA=1; _delay(10);                      //SCL=1, SDA=1, Delay 10usSDA=0; _delay(10);                             //SDA=0, Delay 10us    SCL=0; _delay(10);                                 //SCL=0, Delay 10us
*/  SCLC=0;SDAC=0;SCL=0;SDA=0;_delay(10);SCL=1;SDA=1;_delay(10);SDA=0;_delay(10);SCL=0;_delay(10);
}
void I2C_STOP(void)
{
/*  SCL=0; SDA=0;                                    //Set SCL=0, SDA=0SDAC=0;                                         //SDA as Output Mode_delay(10);SCL=1; _delay(10);                              //SCL=1, Delay 10usSDA=0; _delay(10);                             //SDA=0, Delay 10usSDA=1; _delay(10);                             //SDA=1, Delay 10us        SCL=0; _delay(10);                             //SCL=0, Delay 10us
*/  SCLC=0;SDAC=0;SCL=0;SDA=0;_delay(10);SCL=1;_delay(10);SDA=1;_delay(10);SCL=0;_delay(10);
}
void WriteByte(unsigned short I2CData)
{   unsigned short temp=0b10000000;SCLC=0;SCL=0; SDAC=0;                                       //SCL=0, SDAC as Outputdo{  SDA=I2CData & temp; _delay(10);          //Set SDA State and delay 10usSCL=1; _delay(10);//_delay(10); SCL=0; _delay(10);  //Generate SCL Clocktemp>>=1;                                     //Next Bit} while (temp!=0);
}
unsigned char ReadByte(void)
{   unsigned char I2CData=0, temp=0b10000000;SDAC=1;                                            //Config SDAC as InputSCLC=0;SCL=0;do{ SCL=1; _delay(10);                         //Set SCL=1, Delay 10usif(SDA) I2CData|=temp;                     //Received DataSCL=0; _delay(10);                          //Set SCL=0, Delay 10ustemp>>=1;                                       //Next Bit} while (temp!=0);SDA=1; SDAC=0; _delay(10);                        //Send NoACK SignalSCL=1; _delay(10); SCL=0;return I2CData;
}
void CheckACK(void)
{   unsigned short i=200;SDAC=0;SDA=1;// 先由主机把数据线拉高释放总线 再去检测数据线的电平高低SDAC=1;                                            //Config SDAC as InputSCL=1; //_delay(10);                              //Set SCL=1, Delay 10uswhile(i--){//Test_Pc4C=0;  //如果从机应答的话把这个引脚电平拉高//Test_Pc4=1;   if(!SDA) {//DeviceFlag=1; Test_Pc4C=0;  //如果从机应答的话把这个引脚电平拉高Test_Pc4=1;   //_tmpc0=0;//取消PC5引脚的复用功能//Test_Pc5C=0;  //如果从机应答的话把这个引脚电平拉高//Test_Pc5=1;break;}//Break if Device Respounding_delay(100);//200*100uS=2ms Waiting Time} SCL=0; _delay(10);                              //Set SCL=0, Delay 10us
}
void PAUSEIIC(unsigned short i)
{   unsigned short j;for (j=0;j<i;j++) _delay(10000);             //Delay i*10mS
}

成功驱动5150用HT68F30相关推荐

  1. MAC OS X10.9.5下成功驱动独立显卡影驰Nvidia GeForce GTX 760大将(4GB)--非公版

    我的机器是台式机(自己组装的),硬件参数如下: 操作系统 Windows 7 旗舰版 64位 SP1 ( DirectX 11 )处理器 英特尔 Core i7-4770K @ 3.50GHz 四核 ...

  2. 网络存储服务器接显示器,Unraid下,单核显IGPU实现win10外接显示屏,显卡成功驱动...

    Unraid下,单核显IGPU实现win10外接显示屏,显卡成功驱动 2020-12-18 19:13:18 32点赞 132收藏 64评论 折腾了2天,扒拉了N多外文,最后在此贴帮助下实现了 具体需 ...

  3. 成立一年超100家客户,卫瓴科技如何用“客户成功”驱动SaaS企业内外增长? | CEO面对面

    如今,"客户成功"已经成为了SaaS企业服务中越来越重要的一个概念. 与更关注成交和转化环节的传统销售不同,客户成功会贯穿客户的整个生命周期,通过服务和产品来实现客户层面的数字化转 ...

  4. ThinkPad E450 小米无线Wifi成功驱动

    按照远景论坛文章成功驱动---------------------------之前也试了好多方法都不成,这个亲测可行 标题为如下 为论坛作贡献,小度wifi,小米wifi,360wifi等usbwif ...

  5. GPT(4kb硬盘) 单硬盘装变色龙、GA-H61MA-D2V、ALC887-VD、HD6570成功驱动经验(转)

    GPT(4kb硬盘) 单硬盘装变色龙.GA-H61MA-D2V.ALC887-VD.HD6570成功驱动经验2012-08-21 11:32:17 分类: 系统运维 终于用上黑苹果了,所以决定把这近一 ...

  6. Mac10.14.4 独立显卡 影驰GTX 760 4GB成功驱动

    先了解下这篇文章: https://blog.csdn.net/JoeBlackzqq/article/details/39612351 这是我的硬件配置! 当初装10.14.4时, 看网上文章说我的 ...

  7. 成功驱动HD4600-Clover引导

    本人机器配置如下: 操作系统      Windows 7 旗舰版 64位 SP1 ( DirectX 11 )          处理器        英特尔 Core i7-4770K @ 3.5 ...

  8. 联想Z470安装OSX10.11并成功驱动显卡、声卡、网卡

    说一下电脑主要配置: CPU:英特尔 Core i3-2310M (双核) 主板:联想 KL6 (英特尔 HM65 (Cougar Point) [B3]) 内存:4 GBytes 显卡:英特尔 HD ...

  9. A20成功驱动FT5206触摸屏

    经过三个晚上的奋斗,终于在A20上驱动了FT5206触摸屏.实现过程有限蹊跷,现在暂时将实现过程记录下来以免遗忘. FT5206的驱动在bsp里已经以ko文件的形式提供了,只要在sun7i.init. ...

最新文章

  1. python turtle库画图案-python之绘制图形库turtle(转)
  2. linux—select具体解释
  3. QT学习:多国语言国际化
  4. 比特币一种点对点的电子现金系统是哪一年诞生的_阎王解读比特币白皮书:点对点电子现金系统...
  5. 2017.10.12 礼物(zjoi2011) 失败总结
  6. 蔚来汽车股价跌跌不休 盘中触及上市以来最低点
  7. Web后端学习笔记 Flask(13)memcached
  8. 不为人知的 35 个 More Effective C++ 改善编程与设计的最佳方法 | 原力计划
  9. SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum
  10. 学习c++ 必知三大特性
  11. 北京购房攻略(4.17)
  12. warehouse提供的免费oracle学习视频
  13. Android图片拼接9宫格
  14. 使用主题背景编辑器设计应用主题背景
  15. 免费的mysql云平台_免费的mysql云服务器
  16. 【180622】带音效的VC++俄罗斯方块游戏源码
  17. CMake Error: The current CMakeCache.txt directory is different than the other
  18. 机器学习工程师 — Udacity 电影评分的 k 均值聚类
  19. JS判断用户输入是否为素数
  20. 本地通过cmd开启一个服务

热门文章

  1. 8大排序算法图文讲解转
  2. Matrix Computations 1
  3. @Pointcut的用法
  4. acrobat 控件可以发布吗_短视频可以同时在多个平台发布吗?
  5. 【机器学习】opencv-摄像头中的人脸采集
  6. springmvc视图解析器_SpringMVC视图及REST风格
  7. st官网下载stm32固件库方法
  8. caffe common 程序分析 类中定义类
  9. 阿里云rds升级mysql8_为更强大而生的开源关系型数据库来了!阿里云RDS for MySQL 8.0 正式上线!...
  10. 计算机在超声的应用,计算机在医学超声成像中应用.pdf