|
我想用兩塊74HC595級(jí)聯(lián)輸出電平來(lái)控制數(shù)碼管的亮滅,上面的程序我想把0xfffe送給兩片級(jí)聯(lián)的74HC595芯片輸出1111111111111110使得最后一個(gè)LED點(diǎn)亮,程序調(diào)試不出來(lái),是不是程序有問(wèn)題,仿真圖在下面,不知道接法有沒(méi)有問(wèn)題,麻煩各位大神幫忙看一下,萬(wàn)分感謝!
74hc595.jpg (132.83 KB, 下載次數(shù): 13)
下載附件
2020-3-30 21:59 上傳
單片機(jī)源程序如下:- #include<reg51.h>
- #include<intrins.h>
- typedef unsigned char uchar;
- typedef unsigned int uint;
- void hc595(uchar byteData);
- sbit SER = P3^4; //p3.4腳控制串行數(shù)據(jù)輸入
- sbit SCK = P3^6; //串行輸入時(shí)鐘
- sbit RCK = P3^5; //存儲(chǔ)寄存器時(shí)鐘
- void main()
- {
- while(1)
- {
- hc595(0xfffe);
- }
- }
- /*功能:發(fā)送一個(gè)字節(jié)的數(shù)據(jù)給595,再并行輸出*/
- void hc595(char byteData)
- {
- char i=0;
- for(i=0;i<16;i++)
- {
- SER = byteData>>15; //送出15位數(shù)據(jù)
- byteData= byteData<<1;
- SCK = 0; //上升沿,讓串行輸入時(shí)鐘變?yōu)楦唠娖,并延時(shí)2個(gè)時(shí)鐘周期
- _nop_();
- _nop_();
- SCK = 1; //變?yōu)榈碗娖,為下次?zhǔn)備
- }
- //位移寄存器數(shù)據(jù)準(zhǔn)備完畢,轉(zhuǎn)移到存儲(chǔ)寄存器
- RCK = 0; //上升沿,讓存儲(chǔ)寄存器時(shí)鐘變?yōu)楦唠娖,并延時(shí)2個(gè)時(shí)鐘周期
- _nop_();
- _nop_();
- RCK = 1;
- }
復(fù)制代碼
|
|