|
從壇上復(fù)制的74HC595程序仿真不顯示?請(qǐng)幫我看看,謝謝!
595a.JPG (173.49 KB, 下載次數(shù): 16)
下載附件
2023-11-30 20:31 上傳
單片機(jī)源程序如下:
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit ds_595 =P2^0; //串行數(shù)據(jù)輸入
sbit b_cp_595 =P2^2; //輸出鎖存器控制脈沖 st_cp_595
sbit a_cp_595 =P2^1; //串行移位時(shí)鐘脈沖 sh_cp_595
extern uchar datas[6]; //存放6個(gè)數(shù)碼管的顯示數(shù)字
uchar ledcode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
// 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
void delay(uint z)
{
uint t1,y;
for(t1=z;t1>0;t1--)
for(y=110;y>0;y--);
}
void led_display(void)
{
uchar i,j;
bit testb;
uchar movebit[6];
uchar test;
for(i=0;i<6;i++) //選中數(shù)碼管
movebit[ i]=ledcode[datas[ i]];
delay(1);
for(i=0;i<6;i++) //數(shù)據(jù)移位
{
test=movebit[ i];
for(j=0;j<8;j++)
{
testb=test&0x80;
test=test<<1;
if(testb)
{
ds_595=1;
}
else
{
ds_595=0;
}
a_cp_595=1;
a_cp_595=0;
} //數(shù)據(jù)移位
}
b_cp_595=0;
b_cp_595=1;
b_cp_595=0;
}
void main()
{
led_display();
while (1);
} |
|