PCF8576C及PCF8566T的C51驱动程序新编
更新时间:2024-05-24 01:12:01 阅读量: 综合文库 文档下载
PCF8576C/PCF8566T的C51驱动程序新编 原文载本人空间,以下为应用程序:
/******************************************************************** STC单片机驱动PCF8566/PCF8576演示程序: wannenggong原创 2013/9/28 控制器件:STC12C5A32S2 受控器件PCF8576或PCF8566
应用此程序前请浏览受控器件的数据手册或先了解器件的应用方法 注:单片机实验板的P0口外接有8*10K的上拉排电阻
*********************************************************************/ #include
#define uchar unsigned char #define uint unsigned int
#define PCF8566 0x7C //被控器总线地址
//#define PCF8576 0x72
#define PCF_MODE1 0xC8 //1/3偏置4背极SA0=0显示方式命令字 //#define PCF_MODE2 0xC9 //SA0=1静态显示方式命令字 #define SAX 0xE0 //A0,A1,A2的编码 单芯片时为000 sbit SDA=P0^1; //定义模拟I2C数据传送端口 sbit SCL=P0^2; //定义模拟I2C时钟控制端口 uchar wei=6; //LCD数码位数设定
/********************************************************************/ uchar Digit[]={0xd7,0x06,0xe3,0xa7,0x36,0xb5,0xf5,0x17,0xf7,0xb7,0xd7}; //{0,1,2,3,4,5,6,7,8,9,0}字形码;其定义方法参见硬件接线图。
/********************************************************************/ //延时程序==总线专用==1T/12MHz延时5微秒===== void delay() {
uchar a,b;
for(b=3;b>0;b--) for(a=8;a>0;a--); }
//延时程序==长延时==1T/12MHz延时time毫秒=====
void delay_long(uint time) {
uchar a,b,c;
for(c=time;c>0;c--) {
for(b=129;b>0;b--) for(a=45;a>0;a--); } }
/*********************************************************
启动总线函数 名称:START
描述:启动I2C 总线子程序--发送I2C 起始条件
*********************************************************/ void START() {
SDA=1; delay(); SCL=1; delay(); SDA=0; delay(); SCL=0; delay(); }
/********************************************************* 停止总线函数 名称:STOP
描述:停止I2C 总线子程序--发送I2C总线停止条件
*********************************************************/ void STOP() {
SDA=0; delay(); SCL=1; delay(); SDA=1; delay(); SCL=0; delay(); }
/******************************************************** 应答信号 名称:ACK
描述:响应器件的应答
*********************************************************/ void ACK() {
SDA=1; delay(); SCL=1; delay(); SCL=0; delay(); }
/********************************************************* 发送一个字节函数 名称:SendByte
描述:字节数据传送子程序发送一个字节数据或地址给被控器 移位发送数据完成后发送总线应答信号
*********************************************************/ void SendByte(uchar Data) {
uchar i=8;
for(i=8;i>0;i--)
{
if((Data&0x80)==0x80)//提取数据最高位判断是1或是0 SDA=1; //如果数据是1就模拟发送1 else
SDA=0; //否则模拟发送0 delay();
SCL=1; //模拟时钟脉冲高电平
delay();
SCL=0; //形成时钟脉冲下跳沿完成一位数据发送 delay();
Data=Data<<1; delay();
} //8次循环后完成1个完整数据字节8位的发送 ACK(); //提供总线应答信号
}
/********************************************************************** 发送显示数据函数 名称:Display_Data
描述:发送指令或数据dat 注::
1.所有总线应答信号均由字节发送函数SendByte(uchar Data)提供
2.被控器件地址是器件在总线上的固有命令字、由器件给定、受SA0位接线的影响 3.除总线地址指令外其他指令可任意排列、需要注意的是 排列在最后的指令使C=0、不是最后一条指令的要使C=1
4.装载数据指针指令如果不在最后一条指令的位置、因C=1为0x80、否则为0x00 5.不闪烁命令字在最后的指令位置时为0x70、否则应为0xf0 若不需要闪烁设置、可以免除此指令 6.单器件应用时可以不发送器件地址指令
***********************************************************************/ void Display_Data(uchar dat)
{
uchar i=0;
START(); //启动总线 /*发送m个指令*/
SendByte(PCF8566); //发送被控器总线地址 SendByte(PCF_MODE1); //工作方式设定
SendByte(SAX); //总线上多器件时的器件地址 SendByte(0x80); //发送装载数据指针
SendByte(0x70); //不闪烁命令字为最后一条指令 /*发送n个显示数据*/ for(i=0;i SendByte(dat);delay(); } STOP(); } /******************************************** 主函数 ********************************************/ void main(void) { delay_long(50); //等待器件进入稳定工作状态 Display_Data(0x00); //使显示数据为0清除屏显 delay_long(50); //等待清屏操作完成 while(1) { uchar i; for(i=0;i<10;i++) { Display_Data(Digit[i]);//演示所有数码位同时显示0-9累加 delay_long(6000); } } }
正在阅读:
PCF8576C及PCF8566T的C51驱动程序新编05-24
电大货币银行学试题及答案1102-27
_焦点访谈_节目内容分析09-06
083-电力系统继电保护13-14(2)课程作业主观题09-13
2015学年秋学期期中考试电子专业《电工技术》试卷01-14
小学生二年级作文小动物教案06-13
小学生二年级保护环境的作文100字06-13
A Framework for Automatic Adaptation of Tunable Distributed Applications04-30
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 新编
- 驱动程序
- PCF8576C
- PCF8566T
- C51
- 河南省义马市高级中学2015-2016学年高二4月月考语文试题
- 互联网金融相关法律法规存在问题及完善方案
- 复式条形统计图说课稿
- 卡斯文男士内衣服饰品牌网络SEO推广工作计划方案
- 本科毕业论文-农村小学教育面临的困境分析
- 关于新《预算法》贯彻落实情况的调查报告
- 活性焦
- 小学一年级叠词训练
- 2012中考数学压轴题及答案 2
- 2011.11.12炼四1030单元管线腐蚀调查报告 - 图文
- 工程测量四级知识复习题(理工大) 2
- 西泠印社书法练习指导三年级下册教案2018年3月18日
- 关于预算执行情况分析的一点思考
- 万科地产营销回款业务流程梳理及优化方案
- 2019精品试题高考物理总复习-第六章 碰撞与动量守恒 专题讲座六
- 电机答案
- 茂名市《船舶行业规范申请报告》全文
- 中外服装鉴赏
- 黑龙江省哈尔滨师范大学附属中学2018届高三10月月考地理试题含解
- 劳动防护用品发放记录表