资讯详情

51单片机74HC164串口控制数码管显示

一般数码管需要接7个脚才能显示,如果用单片机本身的I/O口,虽然可以但是浪费宝贵的i/O口资源。本例用移位寄存器74HC164作为数码管驱动进行控制。 74HC164特性 是一种8位串转并口的控制芯片,用于数码管和液晶显示等. 工作电压2--6V 管脚定义: 1) A,B管脚:与门数据输入引脚。 2)QA---QH 数据并口输出引脚 3) CLR 低电平时,数据清零,不能输入 4) CLK 数据输入时钟,上升沿读取串口数据 : 时序图: 注意脉冲宽度: 本51单片机用的是12MHZ晶振,每条指令最小执行时间1uS》》1ns ,可以根据时序图随便使用. 原理图: 程序代码: 完整的keil工程文件下载地址: http://www.51hei.com/f/k164.rar ORG 00H ;程序起始地址00H ART:

MOV 50H,#9 ;立即数9放入50H单元 第一个 显示9 MOV 51H,#4 ;立即数4放入51H单元 第二个数码管显示4 MOV R0,#50H ;R0=50 MOV R1,#60H ;R1=60 MOV R2,#2 0: MOV D ,#TABLE ;将码表首地址给DPTR指针 MOV A,@R0 ;将50H单元中的9给A MOVC A,@A+DPTR ;查表得到(9+码表首地址)合成的地址中的数给累加器A MOV @R1,A ;把立即数9的段码,放入 60H单元中 INC R1 ;R1=61H INC R0 ;R0=51H DJNZ R2,DP0 ;如果R2不等于0,则跳转到DP0 //---------------从上面计算可得到: (60H)=10H,(61H)=19H MOV R0,#60H ;R0=60重新建立映射关系 MOV R1,#2 ;数码管有2个段码 DP1: MOV R2,#8 ;一个71HC164 需要移动8次,以产生并口输出数据给数码管 MOV A,@R0 ;(60H)中的数9的段码,赋给累加器A DP2: RLC A ;带进位标志的左移操作 MOV P2.0,C ;串行输出一位段码数据 CLR P2.1 ; SETB P2.1 ;来个上升沿以产生移位时钟, 每次来这个脉冲,移位寄存器上的数往后面移动一位,原来A=1, ;来个脉冲后B=1,在来个脉冲后,C=1,以此类推。。。。。 DJNZ R2,DP2 ;判断8位段码是否输出完整 INC R0 ;下一个需要输出的段码地址加1 DJNZ R1,DP1 ;判断2个段码是否输出完毕 JMP $ ;程序停在此处 TABLE: ;数码管码表 40H,79H,24H,30H,19H ;0,1,2,3,4 DB 12H,02H,78H,00H,10H ;5,6,7,8,9 END

-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台