定时器驱动数码管c语言程序,74hc595驱动数码管时间程序
74hc595驅動數碼管時間程序
這里是電路圖:
下面是51單片機驅動74hc595芯片的程序:
#include??????????????????????????? //包含51單片機的頭文件
#include
#define uint unsigned int
#define uchar unsigned char
//sbit sin_595??? =P1^0;
//sbit rclk_595?? =P1^1;
//sbit sclk_595?? =P1^2;
//sbit s_clr????? =P1^3;
sbit? a_cp_595?? =P2^4;????? //串行移位時鐘脈沖? sh_cp_595
sbit? b_cp_595?? =P2^3;????? //輸出鎖存器控制脈沖 st_cp_595
//sbit? _oe_595??? =P1^5;????? //8位并行輸出使能/禁止(高阻態)
sbit? ds_595??? =P2^2;????? //串行數據輸入
extern uchar? datas[6];??? //存放6個數碼管的顯示數字
uchar? ledcode[]={
0xC0,? // 0
0xF9,? // 1
0xA4,? // 2
0xB0,? // 3
0x99,? // 4
0x92,? // 5
0x82,? // 6
0xF8,? // 7
0x80,? // 8
0x90,? // 9
0x88,? // A
0x83,? // B
0xC6,? // C
0xA1,? // D
0x86,? // E
0x8E? // 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 bdata movebit[6];
uchar bdata test;
//_oe_595=0;???????????????????????? //選中數碼管
for(i=0;i<6;i++)
movebit[i]=ledcode[datas[i]];
// P1=0;
delay(1);
for(i=0;i<6;i++)???????????????????????? //數據移位
{
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;
}??????????????????????????????? //數據移位
}
b_cp_595=0;
b_cp_595=1;
b_cp_595=0;
}
總結
以上是生活随笔為你收集整理的定时器驱动数码管c语言程序,74hc595驱动数码管时间程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么更改Windows11鼠标指针大小和
- 下一篇: linux mei swap,Linux