实例5: 多位数码管显示 - 单片机开发技术实例(一)

实例名称:多位数码管显示(串行实现方式) 。
实例所需主要资源: AT89C51 、数码管、74HC164
实例目标:利用AT89C51 单片机串行控制3 位数码管,显示温度(0 - 99.9°C范围内任意一个数) ;给出两种实现方式。串行口方式和普通I/ O 模拟串行输出方式;给出汇编语言和C 语言完整程序。
实例目的:学习串行口的原理及其应用方法,学习单片机普通I/O模拟串行输出的方法,掌握数码管的串行驱动方式。
多位数码管显示(串行口方式) 设计
1 硬件设计
系统硬件原理如图

74HCl64 是高速CMOS 器件, 与低功能肖特基型TTL (LSTTL)器件的引脚兼容,其内部逻辑如图所示。

74HCl64 是8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA 或DSB) 之一串行输入,任一输入端可以用作高电平使能端,控制另一输入端的数据输入;两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。时钟( CP) 每次由低变高时,数据右移一位,输入到QO 是两个数据输入端(DSA 和DSB) 的逻辑与。主复位(MR) 输入端上的一个低电平将使其他所有输入端都无效,同时非同步地清除寄存据.强制所有的输出为低电平。其功能表见表