关闭
关闭
首页 > 嵌入式硬件 > 驱动开发

串行驱动LED显示

本文引用地址: http://embed.21ic.com/hardware/drivers/201801/50390.html

//一个74hc595位移寄存器驱动三极管驱动led位 ,

//两个74hc595驱动led段,方式位5位x8段x2=10个数码管

//5分频,每次扫描时间位1.25ms

//定义特殊符号

#define nul 0xf

#define qc 0xc

#define qb 0xb

#define q_ 0xa

#define q__ 0xd

#define q___ 0xe

#define qp 0x10

#define qe 0x11

#define qj 0x12

#define qn 0x13

#define qf 0x14

#define qa 0x15

#define qr 0x16

#define qd 0x17

#define qu 0x18

#define ql 0x19

#define qh 0x1a

#define qwen 0x1b

#define qt 0x1c

#define qla 0x1d

#define qlb 0x1e

#define qlc 0x1f

#define qld 0x20

#define qle 0x21

#define qlf 0x22

#define qlg 0x23

#define qldp 0x24

//显示段信息,不同led排列组合的段信息只需更改8个数值即可。

//因此,该定义具有通用性。

// 显示

// -d 20

// |c 40 |e 10

// - g 80

// |b 2 |f 4

// _a1 .dp 8

#define pa 1

#define pb 2

#define pc 0x40

#define pd 0x20

#define pe 0x10

#define pf 4

#define pg 0x80

#define PDP 8

//--------------

#define l0 PDP+pg

#define l1 255-pf-pe

#define l2 PDP+pc+pf

#define l3 pdp+pc+pb

#define l4 pdp+pa+pb+pd

#define l5 pdp+pb+pe

#define l6 pdp+pe

#define l7 pdp+pc+pg+pb+pa

#define l8 pdp

#define l9 pdp+pb

#define la pdp+pa

#define lb pdp+pd+pe

#define lc pdp+pg+pe+pf

#define ld pdp+pc+pd

#define le pdp+pe+pf

#define lf pdp+pe+pf+pa

#define l_ 255-pg

#define lnul 255

#define ll pdp+pg+pd+pf+pe

#define lp pdp+pa+pf

#define lt pdp+pd+pe+pf

#define lr pdp+pe+pf+pg+pa

#define ln pdp+pg+pa

#define lh pdp+pd+pe+pa

#define ly pdp+pb+pd

#define lu pdp+pg+pd

#define l__ pdp+pg+pb+pc+pe+pf

#define l___ l__-pg

#define l_1 255-pa

#define l_2 255-pa-pg

#define lj 255-(pe+pf+pa)

#define lwen 255-(pd+pe+pg+pb)

#define lall 0

#define lla 255-pa

#define llb 255-pb

#define llc 255-pc

#define lld 255-pd

#define lle 255-pe

#define llf 255-pf

#define llg 255-pg

#define lldp 255-pdp

//串行送出的位信息,目前是10位led显示。

unsigned char code un_dig[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb};

//串行送出的短信息。

unsigned char code un_disp[]={l0,l1,l2,l3,l4,l5,l6,l7,l8,l9,l_,lb,lc,l__,l___,lnul,lp,le,lj,ln,lf,la,lr,ld,lu,

ll,lh,lwen,lt,lla,llb,llc,lld,lle,llf,llg,lldp, lnul };

sbit d_clk=P0^0; //移位时钟

sbit d_dat=P0^1; //移位数据

sbit d_st=P0^2; //移位锁定

unsigned char dig; //位扫描计数器

unsigned char d[10]; //显示缓冲

//送出8位串行数据

void out_disp(unsigned char dd) {

unsigned char i;

for (i=0;i<8;i++) {

if (dd&1) d_dat=1; else d_dat=0;

d_clk=0;

dd>>=1;

d_clk=1;

}

}

//控制小数点和闪烁,显示数据|0x040表示有小数点;显示数据|0x80表示闪烁。

void out_displ(unsigned char dd) {

if (dd>=0x80) {

if (s001>flash_time) {out_disp(0xff);return;}

}

dd&=0x7f;

if (dd>=0x40) {

dd=un_disp[dd&0x3f]^pdp;

} else dd=un_disp[dd];

out_disp(dd);

}

unsigned int s001; //闪烁时间参考

void int_t0(void) interrupt 1 {

unsigned char dd;

TL0=TL0+30;TH0=0xfb; //800

time++;

if ((++s001)>=800) s001=0;

// 显示

if ((++dig)>4) dig=0;

d_st=0;

dd=d[dig+5];

out_displ(dd);

dd=d[dig];

out_displ(dd);

out_disp(un_dig[dig]);

d_st=1;

}

void main(void) {

unsigned char i;

TMOD=0x1;

TR0=ET0=1;

EA=1;

for (i=0;i<10;i++) d[i]=i; //display test

while (1) {}

}

换一批

延伸阅读

[新鲜事] 国产厂商弯道超车AMOLED面板?京东方研发出5寸AMQLED显示屏

国产厂商弯道超车AMOLED面板?京东方研发出5寸AMQLED显示屏

中国厂商在LCD面板领域一度是烧钱运营,京东方(BOE)就过了很多年亏损的日子,不过现在京东方等国产LCD面板厂商算是熬出头了,去年Q4季度京东方出货的大尺寸LCD面板一跃成为世界第一,中国大陆公司的LCD产能已经超过台湾地区,逐渐赶超韩国......

关键字:京东方 AMQLED显示屏

[新鲜事] OLED手机占比达13% 2017年看涨飙到25%

OLED手机占比达13% 2017年看涨飙到25%

2016年被称为OLED显示技术市场化元年,全球显示大玩家们通过巨额投资、产能改造、跨国并购等形式积极投身其中,希望在次世代显示技术市场快速立足。......

关键字:OLED显示技术 手机

[趣科技] 真正符合人类思维方式的“黑科技”--三进制计算机

真正符合人类思维方式的“黑科技”--三进制计算机

相比之下,“三进制”逻辑更接近人类大脑的思维方式。因为在一般情况下,我们对问题的看法不是只有“真”和“假”两种答案,还有一种“不知道”。......

关键字:逻辑思维 二进制 三进制计算机

[新鲜事] Intel:Optane闪腾硬盘仅支持7代酷睿处理器

Intel:Optane闪腾硬盘仅支持7代酷睿处理器

英特尔基于3D Xpoint的Optane黑科技储存技术,被认为是从60年代到现在内存技术的下一个突破,首次将内存和存储结合到了一起,这是一种比DRAM更便宜、比NAND更快的非易失性设备。......

关键字:Intel Optane闪腾硬盘 7代酷睿处理器

[新鲜事] 为了iPhone 8!苹果主动出击:抢吃东芝内存业务

为了iPhone 8!苹果主动出击:抢吃东芝内存业务

现在美国媒体给出的最新消息称,苹果已经派出代表秘密与东芝接洽,而他们打算收购后者的闪存业务股权,而在这之前富士康、台积电、海力士、美光科技、西数等也都盯上了这块蛋糕。......

关键字:苹果 东芝 iPhone 8

[新鲜事] x86危险!Intel、高通短兵相接:芯片大战再升级

x86危险!Intel、高通短兵相接:芯片大战再升级

当搭载骁龙820的笔记本电脑打开Photoshop运行的时候,台下的人群爆发出阵阵掌声,是的,RISC架构处理器将再一次进攻个人电脑市场。......

关键字:x86 Intel 高通 芯片大战

[新鲜事] 故障率太高,西数替换部分HGST HDD硬盘

故障率太高,西数替换部分HGST HDD硬盘

相比SSD硬盘固有的写入次数限制,HDD硬盘写入寿命理论上没限制(至少比SSD高得多),但HDD大部分都是机械结构,可靠性照样存在问题。日前西数公告称旗下HGST公司部分Ultrastar系列硬盘故障率高于预期,公司将进行替换,不过西数并没......

关键字:西数 HGST HDD硬盘
条评论

我 要 评 论

网友评论

大家都爱看

  • 兆易创新研发14nm嵌入式异构AI芯片

    昨日,兆易创新发表公告,重申了收购上海思立微的目的。兆易创新表示,这次产业并购,旨在整合境内优质的芯片设计领域资产,获取智能人机交互领域的核心技术,拓展并丰富公司产品线,在整体上形…

    2018-01-31
  • 华为的优势,就是自家的各种自研芯片

    CPU即中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。它的功能主要是解释计算机指令以及处理计算机软件中的数据。

    2017-08-16
  • 你不知道Ryzen芯片有多火?来看看AMD的股票吧

    据外媒报道,美银美林认为,AMD最新的Ryzen芯片可能会引发一波销售浪潮,进而推动该股继续上涨。它认为AMD股票还有40%以上的上涨空间。

    2017-08-16
  • 国产芯片:厚积薄发,强势崛起

    关于国产芯片,是近几年才有崛起的势头,可是在几年之前,国产芯片还处于“沉睡”的状态,尤其是手机芯片,几乎大部分都依赖进口,而且国外的市场几乎被高通和联发科所垄断,也就展讯还在市场边…

    2017-08-16
  • 为了数据安全 大疆无人机增加隐私飞行功能

    大疆周一表示,在美国陆军因为“网络缺陷”而要求其成员停用大疆无人机后,这家中国无人机制造商将加强无人机的数据安全性。 大疆政策和法务副总裁布伦丹&middot…

    2017-08-15