完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
仿真图和程序如下,求大神解答啊,本人新手啊。。。
#include #define uint unsigned int #define uchar unsigned char ***it H1_shcp = P2^4; //HC595芯片 ***it H1_stcp = P2^5; ***it H_oe = P2^6; ***it H_ds1 = P2^0; ***it H_ds2 = P2^1; ***it H_ds3 = P2^2; ***it H_ds4 = P2^3; ***it A = P1^0; ***it D = P1^1; ***it C =P1^2; //***it U5_shcp =P2^1; //***it U5_stcp =P2^2; //***it U5_oe =P2^3; //***it U5_ds=P2^0; ***it HC138_G = P1^7; //HC138芯片 ***it E1 = P1^3; ***it E2 = P1^4; uchar data_j[] = {0x00,0x00,0x18,0x3c,0x5a,0x18,0x18,0x00}; //箭头 uchar data_t[] = {0x00,0x00,0x18,0x3c,0x5a,0x18,0x18,0x00}; //桃心 uchar data_k[]= {0x00,0x00,0x18,0x3c,0x5a,0x18,0x18,0x00}; uchar data_l[]={0x00,0x00,0x18,0x3c,0x5a,0x18,0x18,0x00}; //------------------------------------------------------------------ void delaxms(uint xms) { uint i, j; for(i = xms; i > 0; i--) for(j = 118; j > 0; j--); } //------------------------------------------------------------------ void sendbyte_H1(uchar aa) //利用HC595输出 { uchar z; for(z = 0; z < 8; z++) { //循环8次移入数据 H1_shcp = 0; H_ds1 = aa & 0x01; //数据低位送到HC595数据线 H1_shcp = 1; //上升沿输入数据 aa >>= 1; /*else { U5_shcp=0; U5_ds=aa& 0x01; U5_shcp = 1; aa >>= 1; }*/ //右移一位 } H1_stcp = 0; H1_stcp = 1; // U5_stcp = 0; // U5_stcp=1; //上升沿使数据并行输出 } void sendbyte_H2(uchar bb) //利用HC595输出 { uchar m; for(m = 0; m < 8; m++) { //循环8次移入数据 H1_shcp=0; H_ds2=bb& 0x01; H1_shcp = 1; bb >>= 1; //右移一位 } H1_stcp = 0; H1_stcp = 1; // U5_stcp = 0; // U5_stcp=1; //上升沿使数据并行输出 } //------------------------------------------------------------------ void main() { uint i, r,k; while(1) { for(r = 30; r > 0; r--) { //显示箭头 for(i = 0; i < 8; i++) { E1=1; E2=0; A=0; D=0; C=0; HC138_G = 1; //关闭138,关闭显示 sendbyte_H1(data_l[i]); //输出箭头信息 sendbyte_H2(data_k[i]); //P1 = 0xd8 | i; //换行 P1=P1+i; //U5_oe=0; HC138_G = 0; //打开显示 delaxms(1); //显示的时间 if(i==7) { E1=~E1; E2=~E2; } } /* for(r = 10; r > 0; r--) { //显示空白 for(i = 0; i < 8; i++) { HC138_G = 1; //关闭138,关闭显示 sendbyte_H(0); //输出0 P1 = 0xd8 | i; //换行 HC138_G = 0; //打开显示 delaxms(5); //显示的时间 } } */ //for(r = 30; r > 0; r--) { //显示桃心 for(k = 0; k < 8; k++) { A=0; D=0; C=0; HC138_G = 1; //关闭138,关闭显示 sendbyte_H1(data_t[k]); //输出箭头信息 sendbyte_H2(data_j[k]); // P1 = 0xd8 | k; //换行 P1=P1+k; H_oe=0; HC138_G = 0; //打开显示 delaxms(1); //显示的时间 if( k==7) { E1=~E1; E2=~E2; } } }// } /* for(r = 10; r > 0; r--) { //显示空白 for(i = 0; i < 8; i++) { HC138_G = 1; //关闭138,关闭显示 sendbyte_H(0); //输出0 P1 = 0xd8 | i; //换行 HC138_G = 0; //打开显示 delaxms(5); //显示的时间 } } */ } }
|
|
相关推荐
3个回答
|
|
|
额哦!亲,您要问什么呢?
|
|
|
|
|
|
驱动就是按行来驱动的·~~会驱动数码管,基本驱动点阵没有什么太大问题
|
|
|
|
|
|
其实都可以,主要是看你是否要做特效(移动),然后涉及到了特性是否好实现。当然这里还有摆放方向问题哈。很灵活,但是变出的算法也许是自己给自己找麻烦。总之吧,看你要做到什么程度和效果了。 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2580 浏览 0 评论
5185 浏览 0 评论
PROTUES仿真no model specified for adc0809,谁有ADC0809的model?
17577 浏览 1 评论
单片机应用技术的ISIS professional电路设置仿真老是报错怎么办
17875 浏览 0 评论
21137 浏览 3 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 05:46 , Processed in 0.733352 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3257