虚拟I2C总线串行显示电路介绍

发布者:数字驿站最新更新时间:2014-01-11 来源: elecfans关键字:虚拟I2C总线  串行显示  SAA1064 手机看文章 扫描二维码
随时随地手机看文章

  本文主要介绍了虚拟I2C总线串行显示电路,其中包括SAA1064引脚功能介绍、硬件电路设计、片内可编程功能以及程序举例。

  1.SAA1064引脚功能

  ① VDD、VEE:电源、接地端。电源4.5~15V;

  ② P1~P16:段驱动输出端。分为两个8位口:

  P1~P8;P9~P16。P8、P16为高位。口锁存器具有反相功能,置1时,端口输出0。

  ③ MX1、MX2:位码驱动端。静态显示驱动时,一片SAA1064可驱动二位LED数码管;动态显示驱动时,按图9-10连接方式,一片SAA1064可驱动四位LED数码管;

  ④ SDA、SCL:I2C总线数据端、时钟端;

  ⑤ CEXT:时钟振荡器外接电容,典型值2700pF

  ⑥ ADR:地址引脚端。SAA1064引脚地址A1、A0采用ADR模拟电压比较编址。当ADR引脚电平为0、3VDD/8,5VDD/8、VDD时,相应引脚地址A2、A1、A0 分别为000、001、010、011;

  2.硬件电路设计

  3.片内可编程功能
       

  CO: 静动态控制,C0=1,动态显示,动态显示时,data1、data2轮流从P8~P1输出,data3、data4轮流从P16~P9输出;

  C1: 显示位1、3亮暗选择,C1=1,选择亮;

  C2: 显示位2、4亮暗选择,C2=1,选择亮;

  C3: 测试位,C3=1,所有段亮;

  C4、C5、C6: 驱动电流控制位,C4、C5、C6分别为1时,驱动电流分别为3mA、6mA、12mA;C4、C5、C6全为1时,驱动电流最大,可达21mA。[page]

  ⑶ 写数据操作格式
       

  红色部分由80C51发送,SAA1064接收;黑色部分由SAA1064发送,80C51接收。

  SLAW为写SAA1064寻址字节,

  按图所示连接电路:SAA1064(1)SLAW=01110000B;SAA1064(2)SLAW=01110110B。其中0111(D7~4)为SAA1064器件地址,D3~1为A2A1A0寻址字节,末位D0为R/W;SADR为片内寄存器地址;COM为控制命令。

  4.程序设计

  例:已知8位显示符(共阴编码)已依次存入内RAM 51H~58H中,试按图9-10编程将其输入SAA1064(1),(2)动态显示,驱动电流为12mA。设VIIC软件包已装入ROM,VSDA.VSCL.SLA.NUMB.MTD.MRD均已按8.3.2软件包小结中协议定义。

  VSAA: MOV MTD,#00H ;置SAA1064控制命令寄存器COM片内子地址

              MOV 31H,#01000111B;置控制命令字,动态显示,驱动电流12mA

             MOV NUMB,#6 ;置发送数据数:SADR+COM+data1~4=6

  SAA1: MOV RO,#51H ;将51H~54H显示符数据移至32H~35H

             LCALL MOVB ;

             MOV SLA,#01110000B;置SAA1064(1)写寻址字节SLAW

             LCALL WRNB ;发送给SAA1064(1)

  SAA2: MOV R0,#55H ;将55H~58H显示符数据移至32H~35H

             LCALL MOVB ;

             MOV SLA,#01110110B;置SAA1064(2)寻址字节SLAW

             LCALL WRNB ;发送给SAA1064(2)

             RET ;

  MOVB: MOV R1,#32H ;显示符数据移至32H~35H子程序

  MOVB1:MOV A,@R0 ;读出

             MOV @R1,A ;存入

             INC RO ;指向下一读出单元

             INC R1 ;指向下一存入单元

             CJNE R1,#36H,MOVB1 ;判4个数据移完否?未完继续

             RET ;

关键字:虚拟I2C总线  串行显示  SAA1064 引用地址:虚拟I2C总线串行显示电路介绍

上一篇:L型网络列车监控系统的应用与实现
下一篇:基于PCI总线的1553B总线接口卡设计

推荐阅读最新更新时间:2024-05-02 22:55

串行口动态扫描显示电路
单片机并行I/O口数量总是有限的,有时并行口需作其他更重要的用途,一般也不会用数量众多的并行I/O口专门用来驱动显示电路,能否用80C51的串行通信口加上少量I/O及扩展芯片用于显示电路呢?答案是肯定的。 80C51的串行通信口是一个功能强大的通信口,而且是相当好用的通信口,用于显示驱动电路再合适不过了,下面我们就根据这种需要设计一个用两个串行通信口线加上两根普通I/O口,设计一个4位LED显示电路。当然只要再加上两根I/O口线即可轻易实现8位LED的显示电路。 左图是电原理图,我们还是采用C2051单片机,同时用廉价易得的74LS164和74LS138作为扩展芯片。74LS164(详细技术手册)是一个8位串入并出
[单片机]
<font color='red'>串行</font>口动态扫描<font color='red'>显示</font>电路
串行口驱动led显示程序
//本文介绍一个串行口驱动led显示的c语言源程序 //一个74hc595位移寄存器驱动三极管驱动led位, //两个74hc595驱动led段,方式位5位x8段x2=10个数码管 //5分频,每次扫描时间位1.25ms //定义特殊符号 #define nul 0xf #define qc 0xc #define qb 0xb #define q_ 0xa #define q__ 0xd #define q___ 0xe #define qp 0x10 #define qe 0x11 #define qj 0x12 #define qn 0x13 #define qf 0x14 #define qa 0x15 #define
[单片机]
利用80C31单片机串行口实现多个LED显示的一种简单方法
在单片机系统中,常常用数码管(LED)做显示器。一般的显示器为4位或8位,即需要4个或8个LED。实现这种显示的方法比较多,也比较简单。但是,对于多个LED显示,就必须采取必要的措施才能实现。本文介绍一种设计方法,利用该方法设计的多路LED显示系统具有硬件结构简单,软件编程方便,价格低廉的特点,经在储蓄所大屏幕利率显示屏中应用,效果很好。 1 硬件电路 80C31单片机是MCS-51系列单片机的一种,它广泛应用于各种小型控制系统中。我们知道,80C31单片机有一个串行口可用于串行通讯,笔者发现它在方式0状态下,还可以扩展并行I/O口,从而实现多个LED显示,其硬件原理如图1所示。其中,74HC164为串行输入、并行输出移位
[单片机]
利用80C31单片机<font color='red'>串行</font>口实现多个LED<font color='red'>显示</font>的一种简单方法
串行口通信 AD采集信号,显示在数码管,发送给上位机
一. 程序功能 用AD以1HZ的频率采集模拟信号,然后转换成数字量,显示在数码管上,再将其以1200bps发送到计算机,在计算机上显示. 二. 程序源码 #include reg52.h #include intrins.h //需要用到_nop_()函数 #define uchar unsigned char #define uint unsigned int sbit dula = P2 ^ 6; //申明U1锁存器的锁存端 sbit wela = P2 ^ 7; //申明U2锁存器的锁存端 sbit adwr = P3 ^ 6; //申明AD的WR端口 sbit
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved