串行口驱动led显示程序

发布者:chunying最新更新时间:2013-01-07 来源: 51hei关键字:串行口  驱动led  显示程序 手机看文章 扫描二维码
随时随地手机看文章

//本文介绍一个串行口驱动led显示的c语言源程序
//一个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

//串行口驱动led显示程序定义结束


//串行送出的位信息,目前是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;
}

//串行口驱动led显示程序主程序开始
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) {}
}

关键字:串行口  驱动led  显示程序 引用地址:串行口驱动led显示程序

上一篇:I2C总线驱动(C51语言源程序)
下一篇:单片机ISP编程器使用

推荐阅读最新更新时间:2024-03-16 13:15

基于ISL97684显示LED电源背光驱动电路设计
  Intersil公司的ISL97684是用于中等尺寸TFT-LCD背光的四路LED驱动器,输入电压低到4V,输出电压高达45V.还提供8位PWM 调光,在时的线性度低至0.009%,或30kHz时为1.35%,主要应用在平板PC和笔记本电脑显示LED背光,PMP LED背光。本文介绍了ISL97684主要特性,以及单电源,双电源应用电路和PWM调光应用电路。   I SL97684主要特性:   输入电压4.0 v ~26.5 v Max 45 v的电压输出,输入电压3.0 v~24 v的最大输出电压26.5 v,PWM调光可调线性调光频率与占空因数从0.4%到100% ,30千赫直接PWM调光工作周期线性从0.009%到1
[电源管理]
基于ISL97684<font color='red'>显示</font><font color='red'>LED</font>电源背光<font color='red'>驱动</font>电路设计
LED驱动应选择何种转换方式
何种转换方式   通过线性稳压器来转换电压会面临功耗问题,这种方式比较适合用于需要回避噪声(比如汽车音响)因而不能采用开关方式的转换电路中。而开关方式的特点是转换效率非常高,但它也有噪声的问题,所以选择何种转换方式取决于何种应用。   通常,电荷泵驱动方式的效率会随着输入电压的变化而变化,在电压变化范围大的应用中,其效率比较低;而在电压变化范围比较小的应用中,只有当输入和输出电压之间是整倍数关系时,它的效率才能达到最大,但这在电池供电的实际应用中很难达到。反观电感的转换效率不太受电压干扰,应用限制也比电荷泵要少,所以目前转换电路多采用电感方式。    如何*价性能   客观说,*价 hb led 驱动 ic性能要根据不同
[电源管理]
12864点阵液晶显示模块与51单片机的接口及程序设计
显示器是人类与应用设备沟通的重要界面,近年来,随着电子技术的飞速发展,液晶显示技术在实际生活中得到了广泛应用。液晶显示模块以其微功耗、体积小、显示内容丰富、模块化以及接口电路简单等诸多优点在科研、生产和产品设计等领域中发挥着越来越重要的作用。LM3033B系列液晶显示模块是深圳TOPWAY公司生产的中文显示模块中的一员。采用了台湾的ST7920控制芯片,并提供了中文字库,为中文显示开发方面带来了更多的方便。本文以LM3033B-0BR3为例介绍了12864点阵液晶显示模块的引脚、结构、功能,详述了与AT89S52单片机的硬件接口电路及有关软件编程方法。 1 LM3033B-0BR3特点及操作 1.1 字符显示 每屏可显示
[单片机]
12864点阵液晶<font color='red'>显示</font>模块与51单片机的接口及<font color='red'>程序</font>设计
将降压调节器转换为智能可调光LED驱动
  凭借使用寿命长和功耗低的优势,LED有望改变整个照明行业,但它的快速采用面临的主要障碍是LED本身的成本居高不下。LED 灯具(完整电力照明设备)的成本各不相同,但LED的成本通常占据了整个灯具成本的大约25%至40%,而且预期在今后多年内仍会占据很高比例(图1)。      图1. LED灯具成本的细分   降低整体灯具成本的一种方法是在产品规格允许的范围内,在可能最高的直流电流下驱动LED。此电流可能远高于其“分档电流”。如果正常驱动,这样可能产生更高的流明/成本比率。      图2. LED光输出和效率与驱动电流   但是,这种做法需要更高电流驱动器。很多解决方案在低电流下( 500 mA)驱动LED,但很少有高电
[电源管理]
将降压调节器转换为智能可调光<font color='red'>LED</font><font color='red'>驱动</font>器
PIC单片机LCD1602显示单个A字程序
P IC 单片机 LCD 1602显示单个A字程序 STATUS EQU 3H ;定义状态寄存器地址 PORTA EQU 5H ;定义RA口数据寄存器地址 PORTC EQU 7H ;定义RC口数据寄存器地 PORTD EQU 8H ;定义RD口数据寄存器地址 TR ISA EQU 85H ;定义RA口方向控制寄存器地址 TRISC EQU 87H ;定义RC口方向控制寄存器地址 TRISD EQU 88H ;定义RD口方向控制寄存器地址 ADCON1 EQU 9FH ;定义ADC模块控制寄存器1的地址 ;******************** Z EQU 2 ;定义0
[单片机]
micro2440 LED驱动(装载和卸载模块)
micro2440所用光盘资料如下: 笔记本系统:fedora 13 (编译内核,配置交叉编译环境,详见手册) 台式机系统:windows XP 1、fedora13中: 2、建立一个C文件,取名为my_leds.c 输入以下代码: #include linux/miscdevice.h #include mach/regs-gpio.h #include linux/fs.h #include linux/pci.h #define DEVICE_NAME myleds static unsigned long led_table = { S3C2410_GPB5, S3C2410_GPB
[单片机]
micro2440 <font color='red'>LED</font><font color='red'>驱动</font>(装载和卸载模块)
Diodes发表电流高达1.5A新型LED驱动IC
      近日,美国达尔科技(Diodes)上市了新型LED驱动IC“AL8806”,供电电流最大为1.5A。       该LED驱动IC与之前提供的LED驱动IC相比具有以下优势:        1、供电电流最大。对LED灯串的最大供电电流可以使用外部电阻进行调整。输出电流的误差最大为±5%。转换效率最大为98%。       2、具有减小印刷基板的封装面积优势。因其采用的是降压型DC-DC转换器,集成有开关元件(功率MOSFET)。导通电阻最大值为0.35Ω,输入电压范围在+6~30V,开关频率最大为1MHz。因此,外置被动部件能够采用小型部件。       3、具有输出开路保护功能。待机时的消耗电流最大值
[电源管理]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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