电路设计,软件开发,专业项目团队承接电子产品开发!


ISPRO下载型编程器
火爆销售中

RS232/TTL转换器
全IC串口窃电

RS232/TTL转换线
全IC串口窃电

ByteBlasterMV Cable
CPLD/FPGA并口下载线

ByteBlaster II Cable ISPRO下载型编程器
支持S51/AVR/PIC
超级51开发板套件
前卫实用超值

PC/MCU/CPLD
三合一学习套件

全新万年历方案
AVR单片机开发板
 

Min51单片机仿真机
迷你型

ARM7开发板
仅售260元!
 

RS-232/RS-485双向接口电平转换器  

51单片机升级STM32
火爆销售中
MPLAB-ICD2
火爆销售中
LED51开发板
玩具又名图文显示棒

面板模块/开发板
经济危机明智决择

       

GSM MODEM GSM猫

SMS短信模块 工业级/全自动
火爆销售中

大功率数传电台

高速数传电台

您当前位置:电子技术资料 -> 外围驱动 -> 数码管显示 ->

祝您阅读愉快!

ISPRO下载型编程器

RS232 TO TTL转换器
↑↑本文相关产品介绍↑↑

一个Max7219的C51程序


类别:技术文章
来源:未知
作者:未知
关键字:Max7219
加入日期:2010-8-4

一个Max7219的C51程序

/*中国电子网www.ec66.com*/
#include "led_ascii.h"

#define no_op 0x00
#define digit0 0x01
#define digit1 0x02
#define digit2 0x03
#define digit3 0x04
#define digit4 0x05
#define digit5 0x06
#define digit6 0x07
#define digit7 0x08
#define decodemode 0x09
#define intensity 0x0a
#define scanlimit 0x0b
#define shutdown 0x0c
#define displaytest 0x0f
sfr p3=0xb0;
sbit din=p3^7;
sbit load=p3^6;
sbit clk=p3^5;
//uc code led[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
//ASCII字符显示数据;

extern void delay100ms(void);

//uc p[8]={0x00};
/*void delay(void)
{
uc i;
ui j;
j=1500;
while(j--)
{
for(i=0;i<125;i++)
{;}
}
}
*/
/*---------------------------------------
向MAX7219发送一个字节;
---------------------------------------*/
void shift8(uc d)
{
uc i,j;
j=0x80;
load=0;
for(i=0;i<8;i++)
{
clk=0;
if((d&j)!=0)
din=1;
else
din=0;
clk=1;
j>>=1;
}
}
/*---------------------------------------
向MAX7219发送一个显示数据d,显示在addr行/列;
---------------------------------------*/
void load16(uc addr,uc d)
{

shift8(addr);
shift8(d);
clk=0;
load=1;
}
/*---------------------------------------
向MAX7219发送8个字节;即一屏数据;
---------------------------------------*/
void disp_MAX7219(uc idata *p)
{
uc idata i;
for(i=digit0;i<0x09;i++)
{
load16(i,*p++);
}
}
/*---------------------------------------
向MAX7219发送8个字节,以显示一个ASCII码;
---------------------------------------*/
void disp_MAX7219_ascii(uc code *p)
{
uc idata i;
for(i=digit0;i<0x09;i++)
{
load16(i,*p++);
}
}
/*---------------------------------------
显示ASCII字符
---------------------------------------*/

Disp_ascii(uc ch)
{
ui i;
i=ch;
i-=0x20;
i*=8;
disp_MAX7219_ascii(&led[i]);
}
/*---------------------------------------
清屏
---------------------------------------*/

void clear(void)
{
uc i,j;
j=0x01;
for(i=0;i<8;i++,j++)
load16(j,0x00);
}
/*---------------------------------------
初始化MAX7219,并清屏
---------------------------------------*/

void Init_MAX7219(void)
{
load16(decodemode,0x00); //设置无解码方式
load16(intensity,0x09); //设置亮度为10/16
load16(scanlimit,0x07); //8段全扫描
load16(shutdown,0x01); //设置开寄存器
load16(displaytest,0x01);
delay100ms();
delay100ms();
load16(displaytest,0x00);
clear();
}

/*---------------------------------------
演示程序;全屏显示后,一点一点的依次显示;一直循环下去
---------------------------------------*/

/*
void main(void)
{
uc i,j,k;
ini();
while(1)
{
for(j=digit0,k=0;j<decodemode;j++,k++)
{
for(i=0;i<8;i++)
{
p[k]=led[i]|p[k];
load16(j,p[k]);
delay();
}
}
clear();
for(i=0;i<8;i++)
p[i]=0;
}
}
*/


您可能还会关注的相关技术资料:

中国电子网
www.EC66.com
QQ:34740080 EMAIL:iloveaoe@163.com
最佳浏览:1024*768
Copyright (C) 2001-2010 EC66.COM All Rights Reserved
Aoe/帝国 制作维护
粤ICP备18061901号