用几个74595驱动多个激光二极管驱动器显示

AVR单片机595驱动8位数码管的显示的电路实现_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
AVR单片机595驱动8位数码管的显示的电路实现
电子工程师|
总评分4.3|
浏览量3718
用知识赚钱
&&AVR单片机595驱动8位数码管的显示的电路实现
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩6页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢 上传我的文档
 下载
 收藏
粉丝量:28
该文档贡献者很忙,什么也没留下。
 下载此文档
数码管的几种驱动方式汇总
下载积分:300
内容提示:数码管的几种驱动方式汇总
文档格式:PDF|
浏览次数:195|
上传日期: 17:20:52|
文档星级:
全文阅读已结束,如果下载本文需要使用
 300 积分
下载此文档
该用户还上传了这些文档
数码管的几种驱动方式汇总
关注微信公众号驱动方式_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩9页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢 上传我的文档
 下载
 收藏
粉丝量:30
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
74595中文介绍
下载积分:1800
内容提示:74595中文介绍
文档格式:DOC|
浏览次数:120|
上传日期: 11:04:05|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1800 积分
下载此文档
该用户还上传了这些文档
74595中文介绍
关注微信公众号多个74HC595级联+并联驱动电路方案
我的图书馆
多个74HC595级联+并联驱动电路方案
在做一个项目应用时,使用的I/O较多,应用到了74595来做扩展,但是若要挂接多片74595,势必也要多用到I/O口,为了解决这个问题,我将每2片74595做级联,然后再将级联之后的所有时钟线与数据再并联在一起(即所有的74595共用时钟与数据线,故只占用2个I/O口线),最后对每一组的锁存控制线做单独控制(在这里也相当于片选了),这样一来硬件电路得到了很大程度的简化,同时在程序上也可以共用一个74595的驱动子程序,控制不同的锁存控制线,串行数据也就送到了不同74595级联模组端口。故此对硬件与软件都有很大程度的优化。
//************文件说明************////项目名称:74HC595级联驱动.//版本:&v1.0//硬件:MCUPIC16F877A,&OSC:4M//作者:SongJun.&日期://内容描述:演示74HC595多个级联且并联驱动.//修订记录://********************************//#include&pic.h&
__CONFIG(0x1832);&//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡.
#define clock1&RD0&//74HC595驱动引脚.时钟.#define data1
&RD1&//数据.#define st1 &RD2&//模组1锁存控制.#define
st2&&RD3&//模组2锁存控制.#define st3&&RD4&//模组3锁存控制.
//LED显示笔段字型码,放置在CODE ROM中.const unsigned char
led_code[]={&&&&&&&&&&&&&&& 0xC0,& //"0"&&&&&&&&&&&&&&& 0xF9,&
//"1"&&&&&&&&&&&&&&& 0xA4,& //"2"&&&&&&&&&&&&&&& 0xB0,&
//"3"&&&&&&&&&&&&&&& 0x99,& //"4"&&&&&&&&&&&&&&& 0x92,&
//"5"&&&&&&&&&&&&&&& 0x82,& //"6"&&&&&&&&&&&&&&& 0xF8,&
//"7"&&&&&&&&&&&&&&& 0x80,& //"8"&&&&&&&&&&&&&&& 0x90,&
//"9"&&&&&&&&&&&&&&& 0xff&& //关闭显示.&&&&&& &};&&& //共阳不带小数点.
void port_init(void);&&&&&//端口初始化子程序.void send_data(unsigned char
channel,unsigned char first,unsigned char second);&//串行数据发送子程序.void
display(unsigned char disp_data);&//显示子程序.
main(void){&port_init();&&//端口初始化.&&while(1)&{&&display(0x02);&&//调用显示子程序,在第2模组显示"02".&&send_data(0x01,led_code[0],led_code[1]);&//直接发送数据在第1模组显示"01".&&send_data(0x03,led_code[0],led_code[3]);&//直接发送数据在第3模组显示"03".&}}
port_init(void)&//端口初始化子函数.{&PORTA=0&PORTB=0&PORTC=0&PORTD=0&PORTE=0x07;&
&TRISA=0&TRISB=0&TRISC=0x00;&TRISD=0x00;&TRISE=0x07;&&//ADCON1=0x8E;&&&&&&&&
//转换结果左对齐,RA0做模拟输入口,其它做普通I/O.&//ADCON0=0x41;&&&&&&&&
//系统时钟Fosc/8,选择RA0通道,允许ADC工作.}
//channel:通道选择(0x01:模组1,0x02:模组2,0x03:模组3),first:第一个数据,second:第二个数据.void
send_data(unsigned char channel,unsigned char first,unsigned char
second)&//串行数据发送子程序.{&static volatile unsigned int
tmp_&&tmp_data=(((unsigned
int)first)&&8)+&//将两个8位数据合成一个16位数据.
&//传送串行数据前,先将74595输出状态锁定.(74595的12脚)&switch(channel)&{&&case
0x01:&st1=0;&//各类控制模组74HC595准备锁存数据.&&&&&&&case
0x02:&st2=0;&//显示模组74HC595准备锁存数据.&&&&&&&case
0x03:&st3=0;&//SCP,OVP模组74HC595准备锁存数据.&&&&&&&&&&&}&&//传送16位数据.&for(i=16;i&0;--i)&{&&clock1=0;&&if((tmp_data&0x8000)==0x8000)&//PICC中对(bit)与标准C编译器在位类型强制转换时有差异.&&&data1=1;&&else&&&data1=0;&&clock1=1;&&tmp_data&&=1;&}&&//传送结束后,产生一个"↑",将串行数据输出.&switch(channel)&{&&case
0x01:&st1=1;&//各类控制模组74HC595锁存数据.&&&&&&&case
0x02:&st2=1;&//显示模组74HC595锁存数据.&&&&&&&case
0x03:&st3=1;&//SCP,OVP模组74HC595锁存数据.&&&&&&&&&&&}}
void display(unsigned char
disp_data)&//显示子程序.{&//发送显示数据LED笔段码,十位在前,个位在后.&send_data(0x02,led_code[disp_data/10],led_code[disp_data%10]);}
TA的最新馆藏
喜欢该文的人也喜欢}

我要回帖

更多关于 激光二极管驱动电路图 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信