单片机程序-点阵LED

发布者:幸福的家园最新更新时间:2015-07-02 来源: 51hei关键字:单片机  点阵LED  AT89C52 手机看文章 扫描二维码
随时随地手机看文章
/****************点阵LED******************/

/**
*功能:点阵LED流动显示5,4,3,2,1后,会一直显示闪动的矩形
*作者:徐冉
*日期:2013-06-10
*备注:已经通过调试
**/
/*****************AT89C52-RC MCU****************/
/***********************51hei开发板**************/

#include
typedef unsigned int uint;//数据类型声明优于#define
typedef unsigned char uchar;
sbit max7219_din = P2^0;//MAX7219串行数据输入端
sbit max7219_cs = P2^1; //MAX7219片选端
sbit max7219_clk = P2^2;//MAX7219时钟端
//显示取模编码表
uchar code dis[11][8] = {
{0x3C,0x20,0x20,0x3C,0x4,0x4,0x3C,0x0},//5
{0x8,0x18,0x28,0x48,0xFE,0x8,0x8,0x8},//4
{0x3E,0x2,0x2,0x3E,0x2,0x2,0x3E,0x0},//3
{0x7E,0x2,0x2,0x7E,0x40,0x40,0x40,0x7E},//2
{0x10,0x18,0x14,0x10,0x10,0x10,0x10,0x10},//1
{0xff,0x81,0x81,0x81,0x81,0x81,0x81,0xff},
{0,0x7e,0x42,0x42,0x42,0x42,0x7e,0},
{0,0,0x3c,0x24,0x24,0x3c,0,0},
{0,0,0,0x18,0x18,0,0,0,},
{0,0,0,0,0,0,0,0}
};
//毫秒延时程序
void delay(uint xms)
{
uint  x, y;
for(x = 0; x < xms; x++)
  for(y = 0; y < 110; y++);
}
//写MAX7219字节数据
void write_byte_max7219(uchar dat)
{
uchar i;
max7219_cs = 0;//选通max7219
for(i = 0; i < 8; i++)
{
max7219_clk = 0;
max7219_din = dat & 0x80;
dat <<= 1;
max7219_clk = 1;
}
}
//写数据到MAX7219
void write_max7219(uchar address, uchar dat)
{
max7219_cs = 0;
write_byte_max7219(address);
write_byte_max7219(dat);
max7219_cs = 1;
}
//MAX7219初始化
void max7219_init()
{
//译码模式
write_max7219(0x09, 0x00);
//亮度模式
write_max7219(0x0a, 0x06);//亮度为13/32
//设置掉电模式
write_max7219(0x0c, 0x01);
//扫描模式0~7
write_max7219(0x0b, 0x07);
//显示检测
write_max7219(0x0f, 0x00);
}
//主程序
void main(void)
{
uchar i = 0, j = 0;
delay(50);
max7219_init();
while(1)
{
//流动显示数字
for(i = 0; i < 5; i++)
{
for(j = 0; j < 8; j++)
{ //此处的数据必须从0x01开始写,否则写不成功;
write_max7219(j+1, dis[j]);
}
delay(500);
}
//矩形闪动
while(1)
{
for(i = 5; i < 10; i++)
{
for(j = 0; j < 8; j++)
{ //此处的数据必须从0x01开始写,否则写不成功;
write_max7219(j+1, dis[j]);
}
delay(100);
}
}
}
}

关键字:单片机  点阵LED  AT89C52 引用地址:单片机程序-点阵LED

上一篇:一种用AT89C2051制作的新颖汽车尾灯指示器
下一篇:玩转LED点阵之二:16X64单红点阵左移

推荐阅读最新更新时间:2024-03-16 14:23

学好单片机编程设计的方法和3个步骤
学习单片机的动机不外乎有四种:一是为兴趣爱好而学,二是为专业而学;三是为饭碗而学;四是在工作中被逼而学。不管是哪种动机,因主修专业的不同以及电子基础的深浅不同,对于不同的人可能采用不同的学习方法, 第一步:基础理论知识学习 基础理论知识包括模拟电路、数字电路和C语言知识。模拟电路和数字电路属于抽象学科,要把它学好还得费点精神。在你学习单片机之前,觉得模拟电路和数字电路基础不好的话,不要急着学习单片机,应该先回顾所学过的模拟电路和数字电路知识,为学习单片机加强基础。 否则,你的单片机学习之路不仅会很艰难和漫长,还可能半途而废。笔者始终认为,扎实的电子技术基础是学好单片机的关键,直接影响单片机学习入门的快慢。 有些同学觉得
[单片机]
单片机实现对CF卡的读写
摘要:CF卡是一种包含了控制和大容量Flash存储器的标准器件,具有容量大、体积小、高性能、携带方便等优点,已广泛应用在数据采集系统和许多消息类电子产品中。本文详细介绍CF卡在单片机系统中的硬件接口电路,以及单片机对CF卡进行标准文件读写的实现,且写入的文件能被Windows操作系统读写。 关键词:CF卡 单片机 FAT文件格式 引言 由于CF卡(Compact Flash Card)具有容量大、体积小、高性能、携带方便等优点,而且读写速度快,可与多种电脑操作系统平台兼容,因此在数据采集系统中的数据记录或与PC机之间的数据转存多采用CF卡。为了在PC机中能方便地进行数据处理,在下位机端必须采用一种标准的格式组织数据,即将数
[单片机]
在Linux下搭建AVR单片机C语言开发环境
平台和工具 操作系统:Fedora 23 开发板:Arduino UNO R3 编译器:avr-gcc 烧录软件:avrdude 主要内容 avr-gcc和avrdude的安装 avr-gcc编译 avrdude烧录 avr-gcc和avrdude的安装 sudo dnf install avr-gcc sudo dnf install avrdude avr-gcc编译 #编译hello.c生成hello.elf avr-gcc -std=c11 -mmcu=atmega328p hello.c -o hello.elf #从hello.elf中提取段,生成hello.hex avr-objcopy -j
[单片机]
直流测速发电机与单片机的接口电路图
  图是直流测速发电机与单片机的接口电路。在该系统中,通过单片机口产生PWM信号控制直流电机的转速。在直流电机的轴上安装直流测速发电机,用来测量电动机的转速,测速发电机输出是模拟量,所以必须经过A/D转换将输出信号转换成数字测速信号,通过单片机将测速信号和给定的PWM信号进行比较,用于加速或减速。从而形成电动机的闭环控制系统。   该电路采用了C8051005单片机。用模拟通道0采集信号,采用2.4 V内部参考电压,模拟输入端具有限流和限压保护。直流测速发电机要与被测电机同轴,两者以相同转速转动,测速发电机的输出电压必须经过RC滤波处理后才能得到稳定的直流电压。R1为限压电阻,调整滑动变阻器的位置使测速电机达到最大转速时
[单片机]
直流测速发电机与<font color='red'>单片机</font>的接口电路图
单片机复位电路的工作原理
如何进行复位呢?只要在单片机的RST引脚上加上高电平就可以了,时间不少于5ms。 基本的复位电路的原理图如下所示:                   这种复位电路的工作原理是:通电时,电容两端相当于是短路,于是RST引脚上为高电平,然后电源通过电阻对电容充电,RST端电压慢慢下降,降到一定程度为低电平,单片机开始正常工作。 改进的复位电路如下:                      在满足单片机可靠复位的前提下,该复位电路的优点在于降低复位引脚的对地阻抗,可以显著增强单片机复位电路的抗干扰能力。二极管可以实现快速释放电容电量的功能,满足短时间复位的要求。
[单片机]
单片机智能灯光系统程序
智能过道照明系统主要功能 ⑴系统设有2个按键功能按键(模式切换键和开关键),和一个单片机复位按键; ⑵系统设有1个电源指示灯和5个状态指示灯,分别为:光照检测信号指示灯(光线暗时指示灯亮),红外热释电传感器信号指示灯(检测到人体信号指示灯亮),自动模式继电器工作状态指示灯(自动模式下,继电器接通,指示灯亮),模式指示灯(手动模式时指示灯亮),手动模式继电器工作状态指示灯(手动模式下,继电器接通,指示灯亮); ⑶系统设置了两种工作模式:自动工作模式和手动工作模式,开机默认为自动模式,可通过“模式切换键”来实现模式切换; ⑷在自动模式下,继电器接通时间是延迟变量来控制的,延迟变量 0,继电器接通,延迟变量=0,继电器断开。延迟变量由检
[单片机]
<font color='red'>单片机</font>智能灯光系统程序
51单片机入门 - 定时器的使用技巧
1、定时器和计数器 时钟周期:单片机时序中的最小单位,集体计算的放法就是时钟源分之一 机器周期:单片机完成一个操作的最短时间,=12个时钟周期 定时器:打开定时器后,定时器“存储寄存器”的值经过一个机器周期自动加1,也就是说,机器周期是定时器的计数周期。 2、定时器的寄存器 TMOD —— 工作模式选择寄存器——常用模式1和模式2. TCON —— 控制寄存器(TRn定时器开关) TH/TL —— 定时计数器 3、定时器应用 第一步:设置特殊功能寄存器 TMOD,配置好工作模式。第二步:设置计数寄存器TH0和TL0的初值。第三步:设置TCON,通过TR0置 1来让定时器开始计数。第四步:判断TCON 寄
[单片机]
51<font color='red'>单片机</font>入门 - 定时器的使用技巧
AD574与8031单片机及前置电路的一种实用接口电路
  AD574是美国核拟器件公司Analog Devices) 生产的12 位逐次逼近型快速A/D 转换器。其转换35us,转换误差为土0.05%,是前我国应用广泛,价格适中的A/D转换器。其内部含三态电路,可直接与各种微处理器连接,且无须附加逻辑接口电路,便能与CMOS 及TTL 电平兼容。内部配置的高精度参考电压源和时钟电路,使它不需要任何外部电路和时钟信号,就能实现A/D转换功能,应用非常方便。   许多文献有关于AD574与8031单片机接口技术的介绍, 但其控制功能引线基本局限于单一的AD574与8031的连接。由于8031无内部程序存贮器, 其内部数据存贮器也有限, 因而8031构成的测控系统, 往往都需外扩存贮器
[单片机]
AD574与8031<font color='red'>单片机</font>及前置电路的一种实用接口电路
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved