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

发布者:anluran最新更新时间:2015-05-14 来源: 51hei关键字:51单片机  74HC164  串口控制  数码管显示 手机看文章 扫描二维码
随时随地手机看文章
一般数码管需要接7个脚才能显示,如果用单片机本身的I/O口,虽然可以但是浪费宝贵的i/O口资源。本例用移位寄存器74HC164作为数码管驱动进行控制。


74HC164特性   是一种8位串转并口的控制芯片,用于数码管和液晶显示等.
                        工作电压2--6V
              管脚定义:
                                 


    1)  A,B管脚:与门数据输入引脚。
     2)QA---QH 数据并口输出引脚
     3) CLR 低电平时,数据清零,不能输入
     4) CLK 数据输入时钟,上升沿读取串口数据
     

    
      
                          :
                      
 时序图:
             

[page]
             注意脉冲宽度:

               





本51单片机用的是12MHZ晶振,每条指令最小执行时间1uS》》1ns  ,可以根据时序图随便使用.

原理图:
             


程序代码:
完整的keil工程文件下载地址: http://www.51hei.com/f/k164.rar 
 ORG 00H                       ;程序起始地址00H
START:

                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

 
DP0:
MOV DPTR,#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:                                            ;数码管码表
         DB 40H,79H,24H,30H,19H   ;0,1,2,3,4
DB 12H,02H,78H,00H,10H   ;5,6,7,8,9
END

关键字:51单片机  74HC164  串口控制  数码管显示 引用地址:51单片机74HC164串口控制数码管显示

上一篇:第2课 keil软件及工程文件的建立
下一篇:ATMEL的ISP下载线

推荐阅读最新更新时间:2024-03-16 14:02

51单片机做的数码管电子日历
电路图 及仿真文件下载: http://www.51hei.com/bbs/dpj-20404-1.html 下面是程序 源码 : #include reg52.h #define uchar unsigned char #define uint unsigned int sbit db=P2^7; char i,sec,min,h,date,month,year,flag; uchar j,k,m,n,o,p; sbit dula=P2^0; sbit wela1=P2^1; sbit wela2=P2^2; sbit key_ch=P3^5; sbit key_add=P3^6; sbit key_minus
[单片机]
<font color='red'>51单片机</font>做的<font color='red'>数码管</font>电子日历
8051单片机I/O口的工作原理
一、P0端口的结构及工作原理 P0端口8位中的一位结构图见下图: 由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。 下面,先分析组成P0口的各个部分: 先看输入缓冲器:在P0口中,有两个三态的缓冲器,在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态),上面一个是读锁存器的缓冲器,下面一个是读引脚的缓冲器,读取P0.X引脚上的数据,要使这个三态缓冲器有效,引脚上的数据才会传输到内部数据总线上。 D锁存器:在51单片机的32根I/O口线中都是用一个D触发器来构成锁存器的。D端是数据输入端,CP是控制端(也就是时序控制信号输入端),Q是输出端,Q非是
[单片机]
80<font color='red'>51单片机</font>I/O口的工作原理
8051单片机C语言数据采集程序
/8051单片机TLC1549数据采集程序源代码 //单片机:At89S52 //连接类型:232 |485 接口 //校验方式:checksum //开发环境:keil C #i nclude stdio.h #i nclude REGX51.H #i nclude iic.h #define uchar unsigned char #define uint unsigned int uint Timer_Pro_Flag=0;//0为显示处理,1为时序采集处理 sbit TEST_CAP_VOL_CRLT=P1^0;//用于控制外部继电器 sbit PWM_Pin=P3^7;//PWM输出 sbit I
[单片机]
PIC单片机对LED数码管矩阵键盘显示的设计
#include #include “。./head/config.h” __CONFIG(HS&WDTDIS&LVPDIS&PWRTEN);//对熔丝位进行设置 单片机LED共阳极段码表(带小数点) 0~9 const char table1[]={0X0A,0XFA,0X8C,0XA8,0X78,0X29,0X09,0XBA,0X08,0X28,0x18,0x49,0x0f,0xc8,0x0d,0x1d}; 数码管位码表 const char table[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; unsigned int result = 0,lastresult = 0;
[单片机]
PIC单片机对LED<font color='red'>数码管</font>矩阵键盘<font color='red'>显示</font>的设计
基于AT89C51单片机的自行车仪表系统设计
一.系统概述 系统使用的模块有AT89C51单片机+小灯+按键+ADC0832+DS1302时钟模块。 系统内使用AT89C51单片机作为主控,检测到的自行车速度会通过ADC0832转换后发送到单片机,并且会将速度数据上传到LCD1602上进行显示,通过按键可以设定阈值,当检测到速度超过设定阈值后就会通过小灯报警,使用DS1302时钟模块给系统提供时钟数据,显示屏上会显示日期时间等参数。 二.仿真概述 1.LCD1602显示屏上显示自行车车速和阈值。 2.按下界面切换后显示日期和时间数据。 3.通过ADC0832和电位器模拟自行车车速。 4.通过按键可以设定自行车的车速阈值。 5.当检测到车速超过阈值就会通过小
[单片机]
基于AT89C<font color='red'>51单片机</font>的自行车仪表系统设计
【自学51单片机】2 --​keil软件编写程序、烧录程序和点亮LED
1、 外设 LED 介绍 LED小灯 即发光二极管,发光二极管为二极管中的一种,二极管中有阳极和阴极,电流从正极流向负极导通,反向阻断。其中贴片发光二极管,正向导通电压在1.8V — 2.2V之间,靠电流驱动,工作电流在1mA – 20mA之间,1mA – 5 mA之间LED小灯亮度变化明显,5 mA – 20mA之间LED小灯亮度变化不大,20mA以上LED小灯易烧坏。 贴片发光二极管 2、计算限流电阻 LED小灯电路 1. 限流电阻: 电阻的阻值大小变化可以直接改变整条电路的电流大小,称为限流电阻。 2. 该开发板VCC电压为5V,GND接地为0V,贴片LED电压大概在2V左右,限流电阻电压为3V左右,要使LED灯
[单片机]
【自学<font color='red'>51单片机</font>】2 --​keil软件编写程序、烧录程序和点亮LED
51单片机教程第7讲_时钟
STC的单片机一般都是1T型单片机,比传统的单片机运行速度要快12倍左右。传统的51单片机只有一个时钟源,就是利用外部晶振,而stc51单片机除了可以用外部晶振,自己内部还有一个时钟源,由RC振荡器实现,精度没有外部时钟高,但是,在没有对时钟要求特别严格的时候,还是可以用的,这样会免去外部晶振,缩小电路板体积,减少一个晶振和2个电容一共6个焊点的费用。这两种时钟的切换只需要在下载程序的时候,在ISP下载软件上配置好即可,省去了写程序的麻烦。 接外部晶振的引脚一共有2个,分别是XTALIN和XTALOUT。 时钟的大小,也影响到了单片机的功耗,时钟越高,功耗越大,时钟越低,功耗越低。stc增加了一个时钟分频寄存器,这个寄存器可以对主
[单片机]
数码管显示驱动和键盘扫描控制器CH451及其应用
摘要:介绍一种新型的键盘显示驱动芯片CH451的性能特点和工作原理,给出了CH451键盘显示驱动芯片与MCS-51单片机的接口方法与相应的软件驱动程序。 关键词:键盘显示控制;单片机;CH451 单片机在开发过程中,常常会因为资源不足而不得不大量扩展接口芯片以满足应用系统的需要,其中原因之一是人机界面中的键盘显示占用了系统太多资源,从而造成系统庞大,同时降低了系统的可靠性。在单片机应用系统中,键盘显示通常可采用以下几种方式: (1)采用并行接口的键盘显示专用芯片8279。但8279所需外围元件多(显示驱动、译码等)、占用电路板面积大、综合成本高,在中小系统中常常大材小用; (2)采用通用并行I/O芯片扩展(如用8155等
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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