⑴ 單片機控制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,主要是練習串口工作方式一的設置方法。看一些例子,這個不難