⑴ 单片机控制74LS164控制数码管显示怎么编程(汇编语言)
74LS164是串入并出转换芯片,可以借助串口来实现,也可以用普通IO口模拟实现。举例如下:
#include<reg51.h>
#define uchar unsigned char
uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};
sbit keyup=P3^6;
sbit keydn=P3^7;
void delay()
{
int i=1000;
while(i--);
}
main()
{
uchar i;
i=0;
SCON=0x00;
TI=1;
while(1)
{
SBUF=table[i];
while(TI==0);
TI=0;
delay();
if(keyup==0)
{
i++;
while(keyup==0);
}
if(keydn==0)
{
if(i>0)i--;
while(keydn==0);
}
i%=10;
}
}
⑵ 这条指令put((bit)(num&0x80));是什么意思 单片机使用74ls164点亮数码管的程序指令
(num&0x80)的意思,就是将num和0x80 “按位与”的结果,
如果num的最高位为1,则结果为0x80,
如果num的最高位为0 ,则结果为0。
((bit)(num&0x80))的意思就是:
如果(num&0x80))等于0;结果为0。
如果(num&0x80))不等于0;结果为1。
在C语言中中,没有put()这个函数。
估计文中的意思就是取出num的最高位,送到某一个控制端口,使其置1或者置0.
⑶ 89C51单片机74LS164按键C语言程序
这个写起来太麻烦了
⑷ 我有一个74LS164C语言编程的程序,想问一下里面的一句LS164_AB=CY;中的CY是什么意思。
串入,就是一位一位的送进去。
buff<<=1;-----左移,最左边的,移到进位位,即CY
LS164_AB=CY;----//把 CY 内容,送到““串入””引脚
LS164_CLK=0;----//在 CLK 引脚,送去一个脉冲。
LS164_CLK=1;
一个循环,只送进去一位。
循环 8 次,才完成一个字节的传送。
⑸ 求用51单片机串口方式0接两个74LS164显示数码管,0-99动态显示(用C语言)
//*************************************//
//74HC164串口显示实验 proteu仿真 //
// PBG 2012-6-11 //
//*************************************//
#include<reg52.h>
#defineuintunsignedint
#defineucharunsignedchar
ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90};
sbitk1=P3^6;//加键定义
sbitk2=P3^7;//减键定义
uchara;
voiddelay(uintx)//延时50ms
{
uchari;
while(x--);
for(i=0;i<110;i++);
}
voidkey()//按键函数
{
if(k1==0)
{
delay(2);
if(k1==0)
{
a++;
if(a==99)
a=0;
}
while(!k1);//松手检测
TXD=1;//按键按下松手后发送
}
if(k2==0)
{
delay(2);
if(k2==0)
{
a--;
if(a==-1)
a=0;
}
while(!k2);//松手检测
TXD=1;//按键按下松手后发送
}
}
voidmain()
{
SCON=0X00;//设定定时器为移位寄存器模式
TXD=1;//初始化
while(1)
{
key();
SBUF=table[a%10];//把个位送到SBUF
while(!TI); //等待发送是否完毕
TI=0; //置发送标志为零
SBUF=table[a/10];//把十位送到SBUF
while(!TI);//等待发送是否完毕
TI=0;//置发送标志为零
TXD=0;//置时钟为零,否则不停发送,显示乱码
}
}
⑹ 74ls164的原理及接口特性是什么
74LS164,是:串入并出移位寄存器。
164 的 DSA 和 DSB 端是输入信号的。
CLK 是输入移位脉冲的。
MR 是用来清零的,一般接一个 22K 电阻再接 +5V。
输出端,可以接上 LED,也可以用共阳极数码管。
Q0~Q7 接一个 1K 电阻后分别连到 LED 的 a~dp 端。
在 DSA 和 CLK 输入信号,LED 就会显示了。
电路图如下:
⑺ 如何利用74164使流水灯闪动,要求C语言源程序
741ls164内部为8个D触发器,用以实现数据的串行移位,741ls164特性见表3。单片机以串行口方式0〔移仿寄存器方式)输山数据,3片74Lsl64作为3排共阳数码管的串/并转换显示接口。 74ls164为TTL单向8位移位寄存器,可实现串行输入,并行输出。其中A、B(第1、2脚)为串行数据输入端,2个引脚按逻辑“与”运算规律输入信号,共一个输入信号时可并接,共同作为输入脚。cP(第8脚)为时钟输入端,可连接到串行口的TxD端。每一个时钟信号的上升沿加到cP端时,移位寄存器移一位。8个时钟脉冲过后,8位二进制数全部移入74lsl 64中。MR脚(第9脚)为复位端,当该脚为低电平时,移位寄存器各位复0;只有当它为高电平时,时钟脉冲才起作用。Q1一Q8(第3—6和10一13引脚)并行输出端分别接数码管的h—a(因为串行n从低位开始传送)各段对应的引脚上。在给出了8个脉冲后,最先进入741。s164的第1个字Ll数据到达厂最高位。再来1个脉冲,第1个脉冲就会从最高位移出,进入下个74L5164的第1位。3片741‘S164首尾相串,而时钟端则接在一起。这样,当输入8个脉冲时,从—9片机RXD端输出的第1字节数据就进入了第1片74LSl64中,而当第2个8个脉冲到来后,第l字节数据就进入了第2片74Lsl64,而随后的第2字节的数据则进入了第1片74LS164。这样,当第3个8个脉冲完成后,首次送出的数据被送到了最下面的164(第3片)中,其它数据依次出现在第二和第一片74LS164中,实现了数据在74LS164中的串行输入、并行输出。 表3 74LS164特性表
⑻ 51单片机与74LS164的问题
它就是一个串入并出的移位寄存器,利用单片机的串口通信方式一,设置好传输频率,前一个164的最高输出位节后一个的串行输入引脚,数码管的位选引脚恒接0或1,主要是练习串口工作方式一的设置方法。看一些例子,这个不难