74ls164驱动两个数码管与单片机相连接的原理图及驱动程序,谢谢
3个回答
展开全部
连接原理图:
http://hi.baidu.com/疯狂的门/blog/item/16261e1f26f81f124134178c.html
驱动程序:
/********************************************************************/
/********************************************************************/
unsigned char sheet[]={0x11,0x7D,0x23,0x29,0x4D,0x89,0x81,0x3D,0x01,0x09};//数码管对应的代码
sbit disp_data=P0^6;
sbit disp_clk=P0^7;
unsigned int disp_164_1(unsigned int x) //输入“1234”显示1234
{
unsigned char i,j=4,k;
while(j--)
{
k=sheet[x%10]; //取出最低位对应的代码
for(i=0;i<8;i++) //发送该代码的8位数据
{
if(k&0x01)disp_data=1; //模拟串口数据端
else disp_data=0;
disp_clk=0;disp_clk=1;disp_clk=0; //模拟串口时钟端
k=k>>1; //除去最后位以便传送下一位
}
x/=10; //除去个位以便显示十位、百位、千位
}
}
/********************************************************************/
/********************************************************************/
void disp_164_2(unsigned char temp1,unsigned char temp2)//输入“12”和
"34",显示“1234”
{
unsigned char i,j,temp;
for(j=0;j<4;j++)
{if(j==2)temp2=temp1;
temp=sheet[temp2%10];
for(i=0;i<8;i++)
{
if(temp&0x01)disp_data=1;
else disp_data=0;
disp_clk=0;disp_clk=1;disp_clk=0;
temp=temp>>1;
}
temp2/=10;
}
}
/********************************************************************/
/********************************************************************/
http://hi.baidu.com/疯狂的门/blog/item/16261e1f26f81f124134178c.html
驱动程序:
/********************************************************************/
/********************************************************************/
unsigned char sheet[]={0x11,0x7D,0x23,0x29,0x4D,0x89,0x81,0x3D,0x01,0x09};//数码管对应的代码
sbit disp_data=P0^6;
sbit disp_clk=P0^7;
unsigned int disp_164_1(unsigned int x) //输入“1234”显示1234
{
unsigned char i,j=4,k;
while(j--)
{
k=sheet[x%10]; //取出最低位对应的代码
for(i=0;i<8;i++) //发送该代码的8位数据
{
if(k&0x01)disp_data=1; //模拟串口数据端
else disp_data=0;
disp_clk=0;disp_clk=1;disp_clk=0; //模拟串口时钟端
k=k>>1; //除去最后位以便传送下一位
}
x/=10; //除去个位以便显示十位、百位、千位
}
}
/********************************************************************/
/********************************************************************/
void disp_164_2(unsigned char temp1,unsigned char temp2)//输入“12”和
"34",显示“1234”
{
unsigned char i,j,temp;
for(j=0;j<4;j++)
{if(j==2)temp2=temp1;
temp=sheet[temp2%10];
for(i=0;i<8;i++)
{
if(temp&0x01)disp_data=1;
else disp_data=0;
disp_clk=0;disp_clk=1;disp_clk=0;
temp=temp>>1;
}
temp2/=10;
}
}
/********************************************************************/
/********************************************************************/
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
网上到处都是呀。想不要都难。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个简单,不知道的再来找我吧!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询