74hc595的程序写入
答:include <reg52.h> sbit SCK = P3^6;sbit RCK = P3^7;sbit DS = P1^3;uchar temp[10]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};uchar table[4];void delay(uint time){ while(time--);} void write_595a(uchar date){ uchar i;for(i = 0;i < 8;i+...
答:下面是595的程序,给你参考一下,根据这个程序来写数码管显示就很简单了。define u8 unsigned char define u16 unsigned int sbit MR=P1^6; //寄存器清0,避免数据错位 sbit RCK=P1^5; //并行输出时钟 sbit DS=P1^4; //数据线 sbit CLK=P1^3; //移位输入时钟 void writ_595(u8 dat){ u...
答:每个74HC595第12脚,ST_CP,也要连一起,再接到单片机上。单片机控制需要三条线。共阴数码管用下图这样的,这样,画出的仿真图比较美观。那三个74HC595就不用横放了,这样才是规范的仿真图。
答:send8bit(i+32); //由于使用移位寄存74hc595,先发送一列的下半部分 send8bit(i-1+32); //后发送一列的上半部分,第2个字 send8bit(i); //由于使用移位寄存74hc595,先发送一列的下半部分 send8bit(i-1); //后发送一列的上半部分,第1个字。so=0;so=1; //产生上升...
答:参考这个 include<reg52.h> define uint unsigned int define uchar unsigned char sbit sh_cp=P2^0;sbit ds=P2^1;sbit st_cp=P2^2;void delay(){ uint a=20000;//慢点可以看清工作过程 while(a--);} void main(){ uchar b,datah,datal;datah=0xc0;datal=0xf0;for(b=0;b<8;b++...
答:include<reg52.h> sbit duan=P1^0;sbit wei=P1^1;int code shu[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};int t,temp,bai,shi,ge;void display(int,int,int);void delay(int);void init();void main(){ init();while(1){if(t==20){t=0;temp++;if(...
答:;16*16点阵左移汇编程序 DS_595 EQU P1.5 ;串行数据输入(595-14)CH_595 EQU P1.7 ;移位时钟脉冲(595-11)CT_595 EQU P1.6 ;输出锁存器控制脉冲(595-12)G_595 EQU P1.4 ORG 0000H LJMP MAIN ORG 000BH LJMP TIME ORG 0100H MAIN: MOV SP,#60H CLR G_595 MOV ...
答:先要明白汉字显示就是点阵显示。根据电路一次最多只能2个汉字,再多就只能滚动或刷屏。所以以2个汉字为基础开始编程。将第一行的点阵(32个位),顺序写入595,输出595. 控制第一行的I/O驱动,点亮第一行。延时5ms 将第二行的点阵(32个位),顺序写入595,关第一行,输出595. 控制第二行的I/O...
答:我写的程序现在的现象是前8个LED灯和后8个LED灯一起点亮 显示流水灯效果。怎么实现前8个依次点亮后 后8个再依次点亮 两个 74HC595级联,只需要3根线来控制74HC595,然后向74HC595写入16位数据,而不是8位数据,或者一次发一位,每个循环发16次,
答:你好!!SER是作为移位寄存器的输入,SRCLK是移位时钟,RCLK是作为锁存时钟,通过这三个控制端,完整 74HC595 的驱动
网友评论:
俞新13590796584:
怎样用74HC595写数码管程序 -
53707伏兴
: #include //数据信号 发送的数据 高电平high 1 低电平low pc0接74HC595的数据输入圈#define HC595_DATA_HIGH PORTC |=(1#define HC595_DATA_LOW PORTC &=~(1//输出锁存信号线#define HC595_LCLK_HIGH PORTC |=(1#define HC...
俞新13590796584:
74hc595输入一个16进制数据 -
53707伏兴
: 首先你得连接正确,用第一片的9引脚(Q7')接第二片的14引脚(DS),两片595的11和12引脚分别连通,并分别接在单片机的两个引脚上,单片机的串行口输出接第一片595的DS.这样,你如果想让两个595同时实现并行输出,就先将第一个八位二进制码移abH入第一片595,之后再将第二个八位二进制码cdH从第一片的DS移入,这样,第二个八位二进制码移入第一片的同时,第一个八位二进制码就移入第二个595中,之后对12引脚(RCLK)输入一个上升沿脉冲,这样abH这个码就由第二片595输出,cdH这个码由第一个595输出.
俞新13590796584:
怎么用C语言编写74HC595移位程序 -
53707伏兴
: 看电路图,行驱动直接接在单片机I/O口上,有问题吧,单片机I/O不管是输入还是输出,都承受不了32LED灯.所以在I/O口上要加放大电路.这个不是小程序,只能说思路.先要明白汉字显示就是点阵显示.根据电路一次最多只能2个汉字,再...
俞新13590796584:
用单片机给74hc595写入一个字节为什么总是在unsigned处出错…… -
53707伏兴
: 看程序是传一个字节,你的参数应该是:unsigned char z 而且程序这样似乎也达不到期望效果.改了一下,供参考.void Write_Byte_to_75hc595(unsigned char z) { ST_CP=0; uint i; for(i=0;i { SH_CP=0; zDS=CY; SH_CP=1; } ST_CP=1; SH_CP=1; }
俞新13590796584:
两片74hc595实现16位串行移位c程序 -
53707伏兴
: /*74HC595写入函数 HC_DATA为要写入的数据*/ void HC595(uchar HC_DATA)//74HC595的写入函数 { uchar hc_num; //定义一个8位变量 用来做循环8次移位 HC595_STCP=0; //打开开始通讯 for(hc_num=0;hc_num {HC595_DS=HC_DATA&0...
俞新13590796584:
74hc595芯片是怎么工作的?昨天研究了一天都没懂.写程序主要是控制11,12,14脚.给14脚 -
53707伏兴
: 记住一个595就8位数据例10110100 这就是8个位,如果是两片595,就送两个8位的数据,反正一次只能送一个位,一个循环送8次,送两个循环,就行了,3个芯片就是送3个8位数据,依次类推就行了.
俞新13590796584:
如何对74hc595进行c语言编程 -
53707伏兴
: #include <reg52.h> //51芯片管脚定义头文件 #include <intrins.h> //内部包含延时函数 _nop_(); #define uchar unsigned char #define uint unsigned int sbit Ds=P1^5; //串行数据输入 sbit SHcp=P1^6; //移位时钟脉冲 sbit STcp=P1^7; //输出锁存...
俞新13590796584:
74HC595,写入一个数我没有赋值给到DIO,DIO怎么能获取data1的数值呢?看不明白,大神们讲解一下,谢谢了 -
53707伏兴
: 74HC595是串行输入8位数据的,是由单片机的一个引脚(DIO)输出一位到74HC595的数据输入端的.所以,每次只能由DIO输入一位,而这一位数据是根据data1的最高位间接输入的.关键就在if(data1&0x80)这一行上,如果data1最高位为1,则DIO=1,输出1,否则为0,DIO=0,则输出0.再将data1向左移一位,准备输出下一位.如此,循环8次,将data1的8位由DIO输出了.
俞新13590796584:
如何给8个联级的74HC595写程序? -
53707伏兴
: 写一个函数,串行输出8位数,送给一片595.把这个函数,连续调用八次,即可满足楼主的要求.
俞新13590796584:
求用一片74hc595加单片机驱动一个4位数码管的动态扫描程序!!! -
53707伏兴
: 下面是595的程序,给你参考一下,根据这个程序来写数码管显示就很简单了. #define u8 unsigned char #define u16 unsigned int sbit MR=P1^6; //寄存器清0,避免数据错位 sbit RCK=P1^5; //并行输出时钟 sbit DS=P1^4; //数据线...