驱动要点:

1、上升沿写入串行数据:

CLK=0;

DAT=num&0x01;

CLK=1;

2、写入数据的数码管编码(指代码中的 tab[])

串行数据是FIFO先进先出,也就是先写高位,移位放入。

电路如图:

 共阴数码管74HC164串行驱动(经过测试)

//共阴数码管74HC164串行驱动

#include

#define uint unsigned int

#define uchar unsigned char

sbit DAT=P3^7; //模拟串口数据发送端

sbit CLK=P3^4;//模拟时钟控制端

uchar code tab[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xff,0xf6};//0-9,-,全灭

void sendbyte(uchar byte)

{

uchar num,c;

num=tab[byte];

for(c=0;c<8;c++)

{

CLK=0;

DAT=num&0x01;

CLK=1;

num>>=1;

}

}

void delay_50ms(unsigned int t)

{

unsigned int j;

for(;t>0;t--)

for(j=6245;j>0;j--)

{;}

}

main()

{

unsigned char h;

while(1){

for(h=0;h<10;h++){

delay_50ms(1);

sendbyte(h);

delay_50ms(4);

}

h=0;

}

}

 共阳数码管74HC164串行驱动(暂未测试)

#include

#define uint unsigned int

#define uchar unsigned char

sbit DAT=P1^1; //模拟串口数据发送端

sbit CLK=P1^2;//模拟时钟控制端

uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};//0-9,-,全灭 (共阳字段表)

void sendbyte(uchar byte)

{

uchar num,c;

num=tab[byte];

for(c=0;c<8;c++)

{

CLK=0;

DAT=num&0x80; //(0x80即十进制的128, 二进制的10000000 按位发送)

CLK=1;

num<<=1;

}

}

void delay_50ms(unsigned int t) //50MS演示程序

{

unsigned int j;

for(;t>0;t--)

for(j=6245;j>0;j--)

{;}

}

main()

{

unsigned char h;

while(1){

for(h=0;h<10;h++){

delay_50ms(1);

sendbyte(h);

delay_50ms(10);

}

h=0;

}

}

74HC164dD驱动LED的更多相关文章

  1. (笔记)linux设备驱动--LED驱动

    linux设备驱动--LED驱动 最近正在学习设备驱动开发,因此打算写一个系列博客,即是对自己学习的一个总结,也是对自己的一个督促,有不对,不足,需要改正的地方还望大家指出,而且希望结识志同道合的朋友 ...

  2. TMS320VC5509总线驱动LED灯

    1. 重新建立的工程,需要添加宏定义才行 CHIP_5509 2. 驱动LED用的是74LVC573锁存器,LE高电平时,Q1=D0,LE低电平时,Q1=之前的状态,下面是数据总线 看下地址总线 看下 ...

  3. stm32开发笔记(三):stm32系列的GPIO基本功能之输出驱动LED灯、输入按键KEY以及Demo

    前言   stm32系列是最常用的单片机之一,不同的版本对应除了引脚.外设.频率.容量等'不同之外,其开发的方法是一样的.  本章讲解使用GPIO引脚功能驱动LED灯和接收Key按钮输入.   STM ...

  4. 灵动微电子ARM Cortex M0 MM32F0010 GPIO 的配置驱动LED灯

    灵动微电子ARM Cortex M0 MM32F0010 GPIO的配置 目录: 1.前言 2.学习方法简要说明 3.要点提示 4.注意事项 5.MM32F0010系统时钟的配置 6.MM32F001 ...

  5. MM32F0020 GPIO驱动LED灯(MM32F0020 GPIO Toggle)

    目录: 1.MM32F0020简介 2.MM32F0020系统时钟配置 3.MM32F0020的GPIO外设配置及其初始化 4.使用官网的Systick定时器做延时 5.MM32F0020 GPIO驱 ...

  6. MM32F0140 GPIO驱动LED灯(MM32F0140 GPIO)

    目录: 1.MM32F0140简介 2.MM32F0140系统时钟配置 3.MM32F0140的GPIO外设配置及其初始化 4.使用官网的Systick定时器做延时 5.MM32F0140 GPIO驱 ...

  7. Linux 驱动——Led驱动2

    led_drv.c驱动文件: #include <linux/module.h>#include <linux/kernel.h>#include <linux/init ...

  8. 【GMT43智能液晶模块】例程一:ARM驱动LED

    实验原理: 通过STM32的一个GPIO驱动一个红色LED,GPIO为推挽输出模式,采用灌电流 方式与LED连接,基于STemWin人机界面通过按钮控制GPIO高.低电平输出,从而 控制LED亮灭. ...

  9. Linux字符设备驱动--Led设备驱动

    ①驱动源码 #include <linux/module.h> #include <linux/init.h> #include <linux/cdev.h> #i ...

随机推荐

  1. KMP Client README

    KMP Client README About KMP is a mod for v0.22 of Kerbal Space Program that adds a multiplayer game ...

  2. centos安装问题集合

    1.版本选择可能直接打开www.centos.org打不开,但是可以打开http://wiki.centos.org/zh/Download,直接找到centos下载列表, (1)i386:支持32位 ...

  3. DOSbox汇编集成环境下的具体设置

    alt+enter能够全屏幕,假设认为游戏执行速度不合适,能够改动 cycles=3000 适当调整大小. .执行 DOSBox,会打开两个 DOS 窗体.我们仅仅需在例如以下窗体中键入 mount ...

  4. ! Undefined control sequence. \CJK@XXX ...endcsname {`#2}{`#3}\CJK@ignorespaces \fi l.43 \end{document}

    错误的原因是:你的文本内容超过了一页,需要增加新的一页. 解决问题的方法就是在\end{CJK}或者\end{CJK*}之前加入\newpage,\clearpage或者\cleardoublepag ...

  5. SuperMap iManager跨网段配置许可

    作者:非法小恋 1.开启Docker容器1947映射 修改docker-compose.yml,在iManager的ports添加- "1947:1947" 2.重启iManage ...

  6. Android系统示例分析之AccelerometerPlay

    程序界面: 创建 SimulationView , 实现接口 SensorEventListener , 实现接口中两个抽象方法 public void onSensorChanged(SensorE ...

  7. Docker配置本地镜像与容器的存储位置

    默认情况下Docker的存放位置为:/var/lib/docker 可以通过下面命令查看具体位置: sudo docker info | grep "Docker Root Dir" ...

  8. MySQL学习记录一

    1.MySQL join操作 left join以左表为基础,其记录会全部表示出来,而右表只显示满足搜索条件的记录.right join以右表为基础,其记录会全部显示出来,而左表只显示满足搜索条件的记 ...

  9. js获取当前域名的方法

    一.获取当前域名 1.方法一 var domain = document.domain; 2.方法二 var domain = window.location.host; 但是获取到的domain在线 ...

  10. MS SQL表字段自增相关的脚本

    --查询表是否有自增字段 SELECT OBJECTPROPERTY(OBJECT_ID('[表名]'), 'TableHasIdentity') --查询表的自增字段 SELECT COLUMN_N ...