OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4775|回复: 4

【求助】为什么我写的点阵程序屏全亮了,不应该啊

[复制链接]

17

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2014-4-23
在线时间
0 小时
发表于 2014-12-11 18:41:15 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]#include <reg52.h> #define uchar unsigned char #define uint unsigned int sbit SCLK_164_1=P1^1; sbit DATA_164_1=P1^2; sbit SCLK_164_2=P1^3; sbit DATA_164_2=P1^4; sbit SCLK_595_1=P2^0; sbit DATA_595_1=P2^1; sbit LATCH_595_1=P2^2; sbit SCLK_595_2=P2^3; sbit DATA_595_2=P2^4; sbit LATCH_595_2=P2^5; unsigned char zancun[32]; unsigned char code shuzu[]={0x01,0x06,0x08,0x0A,0x00,0x94,0x00,0x92,0x55,0x00,0x37,0x00,0x52,0x00,0x00,0x38,0x00,0x4C,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; void delay(uint i) { int q=0; for(q=0;q<i;q++); } void HC_595_1(uchar Data) { uchar i; for(i=0;i<8;i++) { SCLK_595_1=0; DATA_595_1=Data&0x01; Data=Data>>1; delay(5); SCLK_595_1=1; } delay(50); LATCH_595_1=0; delay(10); LATCH_595_1=1; delay(10); LATCH_595_1=0; } void HC_595_2(uint Data)//595?????????? { uchar i; for(i=0;i<8;i++) { SCLK_595_2=0; DATA_595_2=Data&0x01; Data=Data>>1; delay(50); SCLK_595_2=1; } delay(50); LATCH_595_2=0; delay(10); LATCH_595_2=1; delay(10); LATCH_595_2=0; } void HC_164_1(uchar Data) { uchar i; for(i=0;i<8;i++) { SCLK_164_1=0; DATA_164_1=Data&0x01; Data=Data>>1; delay(10); SCLK_164_1=1; } delay(10); } void HC_164_2(uchar Data)//164???? { uchar i; for(i=0;i<8;i++) { SCLK_164_2=0; DATA_164_2=Data&0x01; Data=Data>>1; delay(10); SCLK_164_2=1; } delay(10); } void Display() { uint i,j,q; for(i=0;i<16;i++) { HC_595_1(zancun); HC_595_2(0); if(i<8) { HC_164_1(0x01<<i); HC_164_2(0xFF); delay(10); HC_595_1(0); HC_595_2(0); } else { HC_164_1(0xFF); HC_164_2(0x01<<i); delay(20); HC_595_1(0); HC_595_2(0); } j=i+16; q=i-16; HC_595_2(zancun[j]); HC_595_1(0); if(j<24) { HC_164_1(0x01<<q); HC_164_2(0xFF); delay(10); HC_595_2(0); HC_595_1(0); } else { HC_164_2(0x01<<q); HC_164_1(0xFF); delay(10); HC_595_2(0); HC_595_1(0); } } } void main() { int a; delay(5000); for(a=0;a<32;a++) zancun[a]=shuzu[a]; while(1) { Display(); delay(50); } } [/mw_shl_code]

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2014-4-23
在线时间
0 小时
 楼主| 发表于 2014-12-11 18:43:07 | 显示全部楼层
我用的HC595做列驱动,HC164做行驱动,驱动点阵用的是ULN2003,检查过错误了,不是接线问题。
回复

使用道具 举报

36

主题

1105

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2195
金钱
2195
注册时间
2012-2-8
在线时间
34 小时
发表于 2014-12-11 18:56:37 | 显示全部楼层
能做到静态点亮任意一个点吗?在这一步代码最简单,也容易检查硬件问题

可以的话,再做更复杂的显示,点亮任意两个点之类的
https://github.com/roxma
回复

使用道具 举报

17

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2014-4-23
在线时间
0 小时
 楼主| 发表于 2014-12-11 20:12:01 | 显示全部楼层
回复【3楼】Pony279:
---------------------------------
我试试
回复

使用道具 举报

17

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2014-4-23
在线时间
0 小时
 楼主| 发表于 2014-12-11 20:13:36 | 显示全部楼层
回复【3楼】Pony279:
---------------------------------
我是想知道我这程序里有没有原则性的C语言错误,谢谢啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 08:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表