利用CD4094芯片驱动两个8段共阴极LED显示器
摘要本文介绍了利用CD4094芯片驱动LED显示器的应用实例其中CPU采用PHILIPS的P87LPC764单片机本文还给出了利用P87LPC764 UART的编
程方法
关键词单片机CD4094LED显示器P87LPC764单片机UART
1CD4094芯片
CD4094是8位移位存贮总线寄存器其功能表如下
并行输出串行输出
CLK OE STR D
Q1Q n QS*Q`S
L三态三态Q
不变
L三态三态不变Q
7
H L不变不变Q
不变
Q7不变
H H L L Q
Q7不变
H H H H Q
H H H不变不变不变Q
7
*在时钟脉冲正沿移位寄存器第7级的内容传送到Q 8 和QS
CD4094管脚图
2LED显示器
LED显示器是由发光二极管显示字段组成的显示器本例选用两个8段共阴极LED
显示器发红光LED显示器每段流过的电流一定要小于30mA一般为5mA左右而发红光的共阴极LED显示器每段流过的电流一般为2mA~7mA LED显示器允许的反向电压最大值为5V小尺寸的LED显示器每段只有一个发光二极管其正向压降约为
1.5V~
2.0V
3P87LPC764单片机
3.1 P87LPC764单片机概述
P87LPC764是20脚封装的单片机适合于许多要求高集成度低成本的场合可以
满足许多方面的性能要求作为Philips小型封装系列中的一员P87LPC76x提供高速和低
速的晶振和RC振荡方式可编程选择具有较宽的操作电压范围可编程I/O口线输出
模式选择可选择施密特触发输入LED驱动输出有内部看门狗定时器P87LPC76x采
用80C51加速处理器结构指令执行速度是标准80C51 MCU的两倍P87LPC764拥有4K 字节的OTP程序存储器128字节的SRAM P87LPC764具有全双工通用异步接收/发送器
3.2 P87LPC764的I/O口
P87LPC76x有3组I/O端口Port0Port1和Port2I/O数量取决于振荡和复位方式
选择当选用两个口线作为外部振荡器和一个外部复位时P87LPC76x可使用15个I/O口如果选用片内振荡和内部复位时可使用多达18个脚作为I/O口线
除了3个I/O口P1.2P1.3P1.5以外其他所有的P87LPC76x均可由软件配置
成4种输出类型之一如下表所示四种输出类型分别为准双向口(标准8051输出模式)上拉开漏输出和仅有输入由2个I/O口控制寄存器控制每个I/O口输出类型所有口线均有20mA的驱动能力可以直接驱动LED显示器
I/O口控制寄存器
PxM1.Y PxM2.Y I/O口输出模式
00准双向口
01上拉
10仅为输入
11开漏
3.3 P87LPC764的UART
P87LPC76x内含加强型80C51 全双工通用异步接收/发送器UART模式1及模式3
时定时器1作为波特率可变模式0及模式2时波特率固定由于P87LPC76xMCU时钟不同于标准80C51波特率计算亦有不同在标准80C51 UART基础上增加了帧错误检测及地址识别
串行端口是全双工的即它可同时发送及接收同时带有接收缓冲所以前一接收字
节从SBUF寄存器内读出之前可开始接收下一字节但是如果下一字节接收完毕而前一字
节仍未读出则前一字节将被丢失串行端口接收及发送寄存器均通过SBUF访问对SBUF 写操作则装入发送寄存器读SBUF则访问一个物理上分开的接收寄存器
在本篇应用实例中将使用UART模式0实现P87LPC764与CD4094的串行通信
在UART模式0方式时串行数据通过RxD进出TxD输出时钟每次发送或接收
以LSB低位作首位每次8位波特率固定为MCU时钟频率的1/6
串行口控制寄存器SCON
SCON地址98H
76543210可位寻址
复位值00H SM0/FE SM1SM2REN TB8RB8TI RI
位符号SCON.7FE
功能
帧错误当检测到一个无效停止位时通过UART接收器设置该位但它
你说是我们相见恨晚 我说为爱你不够勇敢必须由软件清零在PCON寄存器中的SMOD0位必须设置为1
SCON.7SM0和SM1定义串行口操作模式在PCON寄存器中的SMOD0必须设置为0
SCON.6SM1和SM0定义串行口操作模式见下表其中UART为通用异步接收和发送
器的英文缩写fosc为振荡器频率
SM0 SM1UART模式波特率
0 00同步移位寄存器Fosc/6
0 118位UART 可变
1 029位UART Fosc/32或Fosc/16
1 139位UART UART可变
SCON.5 SM2在模式2和3中多处理机通信使能位在模式2或3中若sm2=1且接收
到的第9位数据RB8是0则RI接收中断标志不会被激活在模式
1中若sm2=1且没有接收到有效的停止位则RI不会被激活在模式0
中sm2必须是0
SCON.4REN允许接收位由软件置位或清除REN=1时允许接收REN=0时禁止
接收
SCON.3TB8模式2和3中发送的第9数据可以按需要由软件置位或清除
SCON.2RB8模式2和3中已接收的第9位数据在模式1中或sm2=0RB8是已接收
的停止位在模式0中RB8未用
SCON.1TI发送中断标志在模式0中在发送完第8位数据时由硬件置位在其它
模式在发送停止位之初由硬件置位在任何模式中都必须由软件来清
除TI
SCON.0RI接收中断标志在模式0中接收第8位结束时由硬件置位在其它模式中
在接收停止位的半中间由硬件置位在任何模式除SM2必须由软件
清除RI
4电路图
本例的电路图参见下页
5软件设计
5.1程序清单参见下页
5.2子程序使用说明
5.2.1 显示子程序使用说明
标号DISPLAY
功能把DISPLAY_DATA 中的初始数显示到LED1-LED2十位数值显示到LED1个
位数值显示到LED2当十位数值为0时LED1不显示每个数值的显示时间由DISPLAY_TIME确定当显示到99之后返回调用处
入口条件显示初始数在DISPLAY_DATA中每个数值的显示时间在DISPLAY_TIME 中
出口信息无
调用低级子程序SEND_4094DELAY_10ms
影响资源Acc R2R3R7B DPTR
5.2.2 传送数据给CD4094子程序使用说明
标号SEND_4094
功能传送一个字节数给CD4094利用UART模式0
入口条件所要传送的数在Acc中
出口信息无
调用低级子程序无
影响资源特殊功能寄存器SCON SBUF标志位TI
5.2.3 延时10ms子程序使用说明
标号DELAY_10ms
功能延时10ms
入口条件无
出口信息无
调用低级子程序无
于膨玮影响资源R5R6
参考文献
1<<P87LPC76x OTP 单片机使用指南>> 周立功岳宪臣等编
广州周立功单片机发展有限公司 2000.1
2<<MCS-51系列单片机应用系统设计>> 何立民北京航空航天大学出版社 1990.1 3<<;单片微机测控系统设计大全>> 王福瑞等编北京航空航天大学出版社 1998.4 4<<;通用集成电路速查手册>> 宋春荣等编山东科学技术出版社 1995.1
利用CD4094驱动两个8段共阴极LED显示器
王者情侣名字
描写春天的好词好句CPU选用P87LPC764
****************************************************************************硬件使用一个CD4094两个8段LED显示器共阴极P87LPC764的4个I/O口以及八个270的电阻
程序说明下面程序运用UART模式0实现P87LPC764与 CD4094的数据传送并把数据显示到两个8段LED显示器共阴极
****************************************************************************
CLK_4094 EQU P1.0TxD 端口
DATA_4094EQU P1.1RxD 端口
LED1_SELECT EQU P0.0LED1位选0有效
LED2_SELECT EQU P0.1LED2位选0有效
DISPLAY_DATA DATA30H显示数据缓冲区
DISPLAY_TIME DATA31H显示时间间隔缓冲区
P0M1EQU84H端口模式选择SFR总共4个
P0M2EQU85H
P1M1EQU91H
P1M2EQU92H
ORG0000H
AJMP RESET程序初始化
----------------------------------------------------------
子程序
----------------------------------------------------------
ORG0080H
;----------------------------------------------------------
标号SEND_4094
功能把Acc中的数据传送给CMOS4094
入口传送的数据在Acc中
出口数据传送到P1.1 (RxD 端口)
--------------------------------------------------------
SEND_4094:
MOV SCON,#00H设置UART模式0
MOV SBUF,A传送的数据送到SBUF
JNB TI,$等待发送一个字节
CLR TI清除发送中断标志位
RET返回
--------------------------------------------------
标号DELAY_10ms
功能延时10ms时钟6MHz,倍频
入口无
出口无
--------------------------------------------------
DELAY_10ms:
MOV R5,#32H
教师爱岗敬业DELAY_10ms1:
MOV R6,#64H
DJNZ R6,$
DJNZ R5,DELAY_10ms1
RET
-----------------------------------------------------------------------------标号DISPLAY
功能把DISPLAY_DATA 中的数据显示到两个8段LED显示器如果Acc的高四位等于0
则不显示显示时间用完时显示下一个递增数据显示到99时返回
入口显示初始数据在DISPLAY_DATA 中显示时间间隔在DISPLAY_TIME 中
出口无
-----------------------------------------------------------------------------DISPLAY:
MOV R4,DISPLAY_TIME保存显示时间间隔
MOV A,DISPLAY_DATA保存显示数据
MOV R2,A
ANL A,#0FH
MOV R7,A
CJNE R7,#0AH,DIS_1Acc的低四位等于10不等于则跳转
进返京人员最新要求公布MOV A,R2如果等于则加05H
ADD A,#05H
MOV DISPLAY_DATA,A保存数据
AJMP DIS_2继续显示数据
DIS_1:
MOV B,A
MOV A,R2
SWAP A
ANL A,#0FH
MOV R2,A保存显示数据的高四位
MOV R3,B保存显示数据的低四位
JNZ DISPLAY_LOOP显示数据的高四位等于0
不等于则跳转
MOV R2,#0AH等于0则不显示
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论