历史上的今天
今天是:2024年12月23日(星期一)
2020年12月23日 | MAX7219多片级联驱动点阵单片机程序编写经历
2020-12-23 来源:51hei

main.c
#include #include "intrins.h" #include "Max7219.h" uchar code laji[][8]={ {0x18,0x24,0x42,0x42,0x7E,0x42,0x42,0x42},//A {0x7C,0x42,0x42,0x7C,0x42,0x42,0x42,0x7C},//B {0x3C,0x42,0x40,0x40,0x40,0x40,0x42,0x7C},//C {0x7C,0x42,0x42,0x42,0x42,0x42,0x42,0x7C},//D }; /*n毫秒的延时程序*/ /*void Delay_xms(uint x) { uint i,j; for(i=0;i }*/ void main() { uchar i,j; //Delay_xms(50); MAX7219Init(); while(1) { for(j=0;j<8;j++) { for(i=0;i Max7219WR(j+1,laji[i][j]); } CS=1; _nop_(); CS=0; //Delay_xms(100); } } } Max7219.h #ifndef _Max7219_H_ #define _Max7219_H_ #define uchar unsigned char #define uint unsigned int #define number 4 //点阵级联个数 #define lum 5 //亮度级别,0-F,共16级 //定义Max7219端口 sbit CLK = P2^2; //时钟 Max7219_pin sbit CS = P2^1; //锁存 sbit DIN = P2^0; //数据 //向MAX7219 写入地址和数据 void Max7219WR(uchar addr,uchar dat) { uchar n=8; CLK=0; CS=0; //CS=0有效,CS=1锁存 /*发送数据 高位先发*/ while(n--) { DIN = addr & 0x80; CLK=1; addr <<= 1; CLK=0; } n=8; /*发送数据 高位先发*/ while(n--) { DIN = dat & 0x80; CLK=1; dat <<= 1; CLK=0; } } void MAX7219Init() { uchar i,j; for(i=0;i<5;i++) // { for(j=number;j>0;j--) switch(i) { case 0:Max7219WR(0x09, 0x00); break; //译码方式:BCD码 不译码 case 1:Max7219WR(0x0A, lum); break; //亮度 0-15 共16级 case 2:Max7219WR(0x0B, 0x07); break; //扫描界限;8位显示 case 3:Max7219WR(0x0C, 0x01); break; //掉电模式:0,普通模式:1 case 4:Max7219WR(0x0F, 0x00); break; //显示测试:1;测试结束,正常显示:0 } CS=1; _nop_(); CS=0; //每写入四次给一个锁存脉冲 } } #endif
下一篇:51单片机超声波测距报警系统
史海拾趣
|
[url=http://www.cinzy.com/soft/COMdbg.rar]便携串口调试助手 精品[/url] 软件名称:COMdbg 版本 0.2 RC 更新日期:2008/5/20 大小:5.21K 简介: 串口调试软件中的一员,不同的是此版本纯API编写,运行高效稳定,只有5K,体系非常小巧,功能强大,非常值 ...… 查看全部问答> |
|
最近在2440上写了motorola L6我手机的USB驱动. 现在驱动能够被加载. 也能读取数据和设备描述符等. 但是有一个问题就是每次拔出我的设备时候. CE系统不调用我的回调函数. 以下是我注测回调函数的过程. 这种现象导致我手机拔出了. 但系统并没有释放US ...… 查看全部问答> |
|
LM3S板子申请了有段时间了,自己想做数据采集远程传输,现在也不知道板子能申请成功吗,先弄了个图像采集板,采用了应用广泛的SAA7113和SAA7121芯片,实现视频信号的采集和输出。输入输出接口采用通用的AV接口。 提供Video  ...… 查看全部问答> |
|
我用的MSP430与NRF2401做无线通信,问题是我没有发送信号,但是一把程序烧写进去就会出现DR1高电平。请高手看看 QQ:12676363. 怀疑是Receiveshock的问题。。 #include //2010.10.31 #define uchar unsigned char #define uint unsig ...… 查看全部问答> |
|
用的是STM32F207 串口要怎么设置 我发的是0x55 循环发送 DSP收到的是乱码(0x6633循环)是起始位和停止位的配置问题?void USART_Configuration(void) { USART_In ...… 查看全部问答> |




