proteuswilliam hill官网 |仿真william hill官网
登录
直播中
张先生
9年用户
44经验值
擅长:可编程逻辑 嵌入式技术
私信
关注
[问答]
通过2片595串行连接来驱动4位数码管闪亮问题
开启该帖子的消息推送
我通过2片595来驱动4位的数码管去动态显示
在protues上
仿真
是没有任何问题的,但是在实际
威廉希尔官方网站
的上总是会闪亮,而且有时候改变延时后第一位数字没有显示了。
程序如下
#include
#include
#define uchar unsigned char
#define uint unsigned int
uint num;
int PianXuan[10]={0x5f,0x42,0x9b,0xd3,0xc6,0xd5,0xdd,0x43,0xdf,0xd7};
int WeiXuan[4]={0x0e,0x0d,0x0b,0x07};
void delay_ms(unsigned int x) // 延时 (x) ms
{
unsigned char j;
while(x--)
{
for(j=0;j<123;j++)
{
;
}
}
}
void delay_us(unsigned char x) // 延时 (x*2+5) us
{
while(--x);
}
//------------------------------------------------------------
//PA5 CLK //时钟位定义
//PA6 Load //转载/移位位定义
//PA7 Data //接收位定义
/**********************74hc595接收程序***********************/
//-------------------------------------------------------------
void ShuMa_595_Xie(unsigned char Data) //74hc 595的写操作
{
int i;
uchar j;
for(i = 0; i < 8; i++)
{
PORTB&=~BIT(2);
j=Data&0x80;
if(j==0x00)
PORTB&=~BIT(0);
else
PORTB|=BIT(0);
Data<<=1;
PORTB|=BIT(2);
}
}
void ShuMa_595_Du(void) //74hc595 读操作
{
PORTB&=~BIT(1);
;
PORTB|=BIT(1);
}
//------------------------------------------------------------
//PA5 CLK //时钟位定义
//PA6 Load //转载/移位位定义
//PA7 Data //接收位定义
/************************4位数码管接收程序********************/
//-------------------------------------------------------------
void ShuMa(int BianMa) //数码管驱动
{
int x,y,i=4;
x=BianMa;
for(i=4;i>0;i--)
{
ShuMa_595_Xie(WeiXuan[i-1]);
y=x%10;
x=x/10;
ShuMa_595_Xie(PianXuan[y]);
ShuMa_595_Du();
delay_ms(10);
ShuMa_595_Xie(i-1);
ShuMa_595_Xie(0x00);
ShuMa_595_Du();
delay_ms(1);
}
}
main() //主函数
{
int i,k=4621;
DDRB=0xff;
while(1)
{
ShuMa(k);
}
}
希望能给我具体的解决方法
我想用动态显示达到目的
回帖
(5)
武力戡乱
2015-7-16 16:49:12
这个东西吧,有时候要考虑电气特性。晚上我回去看看你程序。下班啦!
这个东西吧,有时候要考虑电气特性。晚上我回去看看你程序。下班啦!
举报
武力戡乱
2015-7-16 21:55:21
有可能是传说中的那种余辉。
1、仿真和实际设定的频率相同吗?
2、如果排除第一种。那就改变一下显示方式。你是同时控制段和位,分开来控制,而且先位后段。
有可能是传说中的那种余辉。
1、仿真和实际设定的频率相同吗?
2、如果排除第一种。那就改变一下显示方式。你是同时控制段和位,分开来控制,而且先位后段。
举报
qzyhlf05
2015-7-21 13:05:50
漂亮,学习了。谢谢
漂亮,学习了。谢谢
举报
张先生
2016-2-16 11:01:48
自己解决问题了,还是频率的问题。没有设定AVR单片机的具体频率
自己解决问题了,还是频率的问题。没有设定AVR单片机的具体频率
举报
dmdz2015
2016-8-5 17:19:17
学习了。。。。。。。
学习了。。。。。。。
举报
更多回帖
rotate(-90deg);
回复
相关问答
用一
片
595
和一
片
154去控制3组
4
位数码管
2016-06-22
3690
74HC
595
级联
驱动
数码管
问题,求高手帮忙
2015-08-13
8776
使用两个74HC
595
点亮8
位数码管
原理
2019-09-29
5206
四
位数码管
原理及
驱动
方式是什么?
2022-01-20
1729
74HC
595
是如何去
驱动
数码管
的
2021-08-02
2322
4
位数码管
的proteus的封装
2015-05-15
11549
数码管
仿真问题
2012-03-08
7268
如何利用
数码管
驱动
芯片max7221实现8
位数码管
显示
2021-08-03
1130
怎么实现c
595
四
位数码管
在STM32上计时显示?
2021-12-15
828
HC
595
驱动
数码管
的怪异现象
2011-05-13
7721
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分