引脚的定义也能在手册上查到,但我还是不很明白。
R/W引脚直接接地。其他几个引脚已经定义如下。
sbit SER=P3^2;
sbit SHCLK=P3^3;
sbit SRCLK=P3^4;
sbit CS=P3^5;
sbit STRCLR=P3^6;
哪位高手能帮我写一段样例程序,用51单片机,要求控制一个流水灯从第1位走到第16位就行。我主要想知道串行数据是怎么输入的,又是如何让其移位的。
请用C语言写。
74HC673芯片怎么用?
答案:2 悬赏:0 手机版
解决时间 2021-05-01 15:18
- 提问者网友:回忆在搜索
- 2021-04-30 23:47
最佳答案
- 五星知识达人网友:神鬼未生
- 2021-05-01 01:08
STRCLK这个印脚是有用的,这个IC的用法和74HC595很相似。对你的程序进行一点修改,经过调试以下这段程序可以达到目的。
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit SER=P3^2;
sbit SHCLK=P3^3;
sbit STRCLK=P3^4;
sbit CS=P3^5;
sbit STRCLR=P3^6;
void Delay(uchar);
void main(void)
{
int i,j=0;
Delay(20);
CS = 0;
STRCLR = 0;
Delay(1);
SHCLK = 1;
STRCLK = 0;
SER = 0;
STRCLR = 1;
Delay(20);
while(1)
{
for(i=0;i<16;i++)
{
SHCLK = 1;
if(i==j)SER = 1;
else SER=0;
Delay(1);
SHCLK = 0;
}
STRCLK = 0;
Delay(1);
STRCLK = 1;
j++;
if(j>15)j=0;
Delay(255);
}
}
void Delay(uchar x)
{
uchar k;
while(x--)
for(k=0;k<125;k++);
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit SER=P3^2;
sbit SHCLK=P3^3;
sbit STRCLK=P3^4;
sbit CS=P3^5;
sbit STRCLR=P3^6;
void Delay(uchar);
void main(void)
{
int i,j=0;
Delay(20);
CS = 0;
STRCLR = 0;
Delay(1);
SHCLK = 1;
STRCLK = 0;
SER = 0;
STRCLR = 1;
Delay(20);
while(1)
{
for(i=0;i<16;i++)
{
SHCLK = 1;
if(i==j)SER = 1;
else SER=0;
Delay(1);
SHCLK = 0;
}
STRCLK = 0;
Delay(1);
STRCLK = 1;
j++;
if(j>15)j=0;
Delay(255);
}
}
void Delay(uchar x)
{
uchar k;
while(x--)
for(k=0;k<125;k++);
全部回答
- 1楼网友:枭雄戏美人
- 2021-05-01 02:03
#include<reg51.h> #define uchar unsigned char #define uint unsigned int sbit SER=P3^2; sbit SHCLK=P3^3; sbit CS=P3^5; sbit STRCLK=P3^4; sbit STRCLR=P3^6; void delay(uint x) { uint y,z; for(y=x;y>0;y--) for(z=125;z>0;z--); } void main() { uint temp; uchar i; temp=0xfffe; STRCLK=1; STRCLR=1; CS=0; for(i=16;i>0;i--) { SHCLK=1; SER=temp&0x0001; temp>>=1; SHCLK=0; delay(200); } }
你试试可不可以,我没用过673,看手册写的,手册资料也不全。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯