完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
首先:我使用的是普中的单片机,用到了74HC595芯片(这是一个串行输入,并/串 行输出的移位寄存器芯片(就是用来扩展IO口的))
第一步:先写预处理模块 #include "reg52.h" #include "intrins.h" typedef unsigned char u8; typedef unsigned int u16; //因为采用的595芯片,所以用来显示的位和段选码都要自己写,我这个是用来显示“为中国加油”这几个汉字的 //led矩阵的连接方式为共阴 //这个是位选 u8 smgwei[]= { 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x00, 0x00,0x02,0x04,0x08,0x10,0x20,0x40,0x00, 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x00, 0x01,0x02,0x04,0x08,0x00,0x20,0x40,0x80, 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80, }; //这个是段选 u8 smgduan[]= { 0x02,0x85,0x7E,0x05,0x54,0xA4,0xFC,0x00, 0x00,0x1C,0x14,0xFF,0xFF,0x14,0x1C,0x00, 0xFF,0x81,0xD5,0xFD,0xD5,0xA1,0xFF,0x00, 0x24,0x5F,0x84,0xFC,0x00,0x3C,0x24,0x3C, 0x8A,0x54,0x20,0xF8,0xA8,0xFE,0xA8,0xF8, }; /*这三个是595芯片里面的管脚 SRCLK和RCLK1是用来移位的(都是上升沿有效),SER是数据寄存器 */ ***it SRCLK=P3^6; ***it RCLK1=P3^5; ***it SER=P3^4; u8 k; 第二步:是写驱动595芯片的模块程序 void delay(u8 z)//用来延时的 { while(z--); } //因为我用的led矩阵是8*8的,所以我这里采用的是两个595芯片连接 //如果是16*16的,就可以采用四个595芯片连接 void HC595SendByte(u8 dit1,u8 dit2) { u8 a; for(a=0;a<8;a++) { SER=dit1>>7;//因为是移位芯片,所以要先取最高位移进去 dit1<<=1;//将次高位变为最高位 SRCLK=0; //移位,(上升沿有效) 下同 _nop_(); SRCLK=1; } for(a=0;a<8;a++) { SER=dit2>>7; dit2<<=1; SRCLK=0; _nop_(); SRCLK=1; } RCLK1=0;//将数据输出给led矩阵(上升沿有效) _nop_(); RCLK1=1; } 第三步:用来实现汉字闪动显示的模块 void MOV(u16 j)//传过得的参数用来控制显示的快慢 { u8 i; while(j--)//这里采用while循环是因为要延时;若不用,就会导致显示内容闪的很快 { for(i=0;i<8;i++) { //因为用的是一维数组,使用在数组中取值输入到595芯片时,加了个K HC595SendByte(~smgwei[i+8*k],smgduan[i+8*k]);//位码取反是因为led矩阵采用是共阴接法,写的时候写了反的 delay(10); } } delay(200000); if(k==4)//当k等于4的时候,说明数组的内容已经显示完了, { k=0; delay(10000); } else k++; } 最后一步:写主函数 void main() { while(1) { MOV(500); } } |
|
|
|
只有小组成员才能发言,加入小组>>
3278 浏览 9 评论
2956 浏览 16 评论
3457 浏览 1 评论
8995 浏览 16 评论
4050 浏览 18 评论
1105浏览 3评论
570浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
568浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2301浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1857浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 22:06 , Processed in 0.983242 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号