完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
//#include #define pinCLK_1 P1OUT |= BIT6 //时钟输入端 #define pinCLK_0 P1OUT &=~ BIT6 #define pinLOAD_1 P1OUT |= BIT5 //数据锁存端 #define pinLOAD_0 P1OUT &=~ BIT5 #define pinDIN_1 P1OUT |= BIT4 //串行数据输入端 #define pinDIN_0 P1OUT &=~ BIT4 //***it pinDIN=P0^0; //***it pinLOAD=P0^1; //***it pinCLK=P0^2; #define uchar unsigned char const unsigned char LEDcode[]= { 0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b,0x00};// 0,1,2,3,4,5,6,7,8,9,全灭*/ /*0x77,0x1f,0x4e,0x3d,0x4f,0x47,0x67,0x3e,0xff }; /*A,B,C,D,E,F,P,U,全亮*/ /************************************************** * 向MAX7219写入字节(8位)函数 * ***************************************************/ void sendbyte (uchar dat) { uchar i,temp; for (i=0;i<8;i++) { temp=dat&0x80; dat=dat<<1; if(temp) pinDIN_1; else pinDIN_0; pinCLK_0; _delay_cycles(50000); pinCLK_1; } } /************************************************** * 向MAX7219写入地址和控制字(16位) * ***************************************************/ void sendword (uchar addr,uchar dat) { pinLOAD_0; _delay_cycles(50000);//Delay_xms(500); sendbyte (addr); _delay_cycles(50000);//Delay_xms(500); sendbyte (dat); _delay_cycles(50000);//Delay_xms(500); pinLOAD_1; //第16个上升沿之后,第17个上升沿之前必须把pinCLK置高,否则数据丢失 } /************************************************** * MAX7219初始化 * ***************************************************/ void init7219 (void) { sendword (0x0c,0x01); /* 设置电源工作模式 */ sendword (0x0a,0x09); /* 设置亮度 19/32 */ sendword (0x0b,0x07); /* 设置扫描界限 */ sendword (0x09,0x00); /* 设置译码模式 */ sendword (0x0f,0x00); /*显示测试 00为正常工作状态*/ } /************************************************** * MAX7219清除显示 * ***************************************************/ void clear7219(void) { uchar i; for(i=8;i>0;i--) { sendword(i,0x00); } } /************************************************** * MAX7219主函数 * ***************************************************/ void main(void) { WDTCTL=WDTPW+WDTHOLD; P1SEL&=~(BIT4+BIT5+BIT6); P1DIR |=BIT4+BIT5+BIT6; init7219 (); while(1) { clear7219(); sendword(0x01,LEDcode[0]); sendword(0x02,LEDcode[1]|0x80); sendword(0x03,LEDcode[2]); sendword(0x04,LEDcode[3]); sendword(0x05,LEDcode[4]); sendword(0x06,LEDcode[5]); sendword(0x07,LEDcode[6]); sendword(0x08,LEDcode[7]); } } |
|
相关推荐
2 个讨论
|
|
看来是刚入门,鼓励鼓励。
|
|
|
|
|
|
使用Keil建立完整的工程,并使用外部中断0触发数码管显示903
418 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
1083 浏览 0 评论
846 浏览 0 评论
886 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
882 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11831 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 18:06 , Processed in 0.591947 second(s), Total 38, Slave 31 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号