#include "main.h"
//定义变量
unsigned char temp = 0xfe;
unsigned char KEY_NUM = 0;
unsigned char Display_word[4][4] = {
0x00,0x48,0x2A,0x8E,0xFB,0x0E,0x2A,0x48, //亲
0x0C,0x1E,0x3E,0x7C,0x7C,0x3E,0x1E,0x0C, //心
};
//****************************************************
//主函数
//****************************************************
void main()
{
unsigned int i;
unsigned char j,k;
while(1)
{
for(i = 0 ; i < 1000 ; i++)
{
temp = 0x7f;
for(j = 0 ; j < 2 ; j++) //显示前两个字母
{
for(k = 0 ; k < 4 ; k++) //一个字母4BYTE
{
Send_Byte(temp); //列选择
Send_Byte(Display_word[j][k]); //行数据
LEDARRAY_LAT = 1; //锁存数据
_nop_();
LEDARRAY_LAT = 0;
_nop_();
temp = (temp>>1)|0x80;
}
}
}
for(i = 0 ; i < 1000 ; i++)
{
temp = 0x7f;
for(j = 2 ; j < 4 ; j++) //显示前两个字母
{
for(k = 0 ; k < 4 ; k++) //一个字母4BYTE
{
Send_Byte(temp); //列选择
Send_Byte(Display_word[j][k]); //行数据
LEDARRAY_LAT = 1; //锁存数据
_nop_();
LEDARRAY_LAT = 0;
_nop_();
temp = (temp>>1)|0x80;
}
}
}
}
}
//****************************************************
//发送一个字节数据
//****************************************************
void Send_Byte( unsigned char dat)
{
unsigned char i;
LEDARRAY_CLK = 0;
_nop_();
LEDARRAY_LAT = 0;
_nop_();
for( i = 0 ; i < 8 ; i++ )
{
if( dat&0x01)/*这是C语言中的按位与运算,dat与0000 0001相与,
然后当dat最低位不是0的是则为if(1),则为真于是就执行if下面的语句,
反之无论dat其他位是什么,最后一位如果是0则为假,不执行对应语句。*/
{
LEDARRAY_DI = 1;
}
else
{
LEDARRAY_DI = 0;
}
LEDARRAY_CLK = 1; //上升沿发送数据
// _nop_();
LEDARRAY_CLK = 0;
// _nop_();
dat >>= 1;
}
}
#ifndef __MAIN_H__
#define __MAIN_H__
#include
#include
sbit LEDARRAY_LAT = P3^6;
sbit LEDARRAY_CLK = P3^5;
sbit LEDARRAY_DI = P3^4;
//函数或者变量声明
extern void Delay_ms(unsigned int n);
extern void Send_Byte( unsigned char dat);
#endif
关键字:单片机 点阵 循环显示
引用地址:
单片机点阵案例循环显示爱心和“亲”字
推荐阅读最新更新时间:2024-11-13 11:11
单片机红外遥控调光程序
/* 红外无线遥控LED灯 + 变亮 按- 变暗 按CH- 关灯 按CH- 开灯CH */ #include reg52.h /*==================================== 自定义类型名 ====================================*/ typedef unsigned char INT8U; typedef unsigned char uchar; typedef unsigned int INT16U; typedef unsigned int uint; /*==================================== 硬件接口位声明 ====
[单片机]
为MCU风扇调速器供电的交流线路
微控制器需要2V ~ 5.5V范围的直流工作电源,电池或次级电源很容易供应这样范围的电压。但是在特定情况下,基于微控制器的产品必须在没有降压变压器或生热降压的电阻器的场合下,直接依靠120V或220V交流电源插座工作。作为替代品,规定用于交流线路服务的聚脂/聚丙烯膜电容器可充当无耗散电抗(图1)。电容器C1是一个额定电压为150V rms的2mF AVX FFB16C0205K,提供明显的交流电压降,它可降低加到二极管桥整流器D1的电压。耐燃的金属膜电阻器R1限制了交流电源线中由闪电和突然的负载变化引发的电流尖峰和瞬间电压。在本应用中,交流电流不超过 100 mA rms,并且51Ω、1W电阻器就能提供足够的限流能力。
[电源管理]
基于单片机实现微波频率测量系统的设计
1、概述 在通信系统中,频率测量具有重要地位。近几年来频率测量技术所覆盖的领域越来越广泛,测量精度越来越高,与不同学科的联系也越来越密切。与频率测量技术紧密相连的领域有通信、导航、空间科学、仪器仪表、材料科学、计量技术、电子技术、天文学、物理学和生物化学等。 频率测量一般都是由计数器和定时器完成,将两个定时/计数器一个设置为定时器,另一个设置为计数器,定时时间到后产生中断,在中断服务程序中处理结果,求出频率。这种方法虽然测量范围较宽,但由于存在软件延时,尽管在高频段能达到较高的精度,而低频段的测量精度较低。所以利用单片机测频时,如果选择不好的测量方法,可能会引起很大的误差。测量频率时如果不是真正依靠硬件控制计数或定时,而是由软
[单片机]
如何利用STM32单片机串口发送字符串
最近由于要调试一个SMS发送短信的模块,该模块需要发送一系列AT指令,且需要字符串发送,但是STM32官方给的usart.c中并没有直接发送字符串的函数,因此写了一个发送字符串的函数。 其实发送字符串的本质还是发送一个个字符,所以只需在字符串结束标志之前,循环发送字符即可。不罗嗦,上程序。 //程序功能:利用串口发送一个字符串 // 参数:USARTx USART编号 可取 USART1、USART2、USART3、USART4、 USART5(STM32F103ZET6) str 需要发送的字符串 #include “stm32f10x.h” void Usart_SendString(USART_TypeDef* US
[单片机]
基于MSP430F149单片机为核心的展馆人员登记与录入系统设计
文章主要阐述了一种运用视频图像分析技术进行人员登记与录入系统的设计。通过红外线采集人们入馆和出馆的信号并将其送入单片机MSP430F149中,单片机对信号进行处理统计入馆、出馆人数并在LCD12864液晶显示屏上显示出来,同时对进出馆的人进行拍照并存储。通过人员登记与录入系统可以及时得到馆内准确的人数和照片,有利于博物馆更高效的组织工作,它可与第三方软件系统进行集成,为科学决策提供数据支持。 人数统计系统在不同的应用场合可以发挥不同的作用。它可以为商场或零售点获取商场内部按不同时段分布的人数统计、人群流动方向等信息,有利于评估商品对于顾客的吸引力,以及评估商场选址是否适当;对于大型建筑,管理者可利用人数统计系统了解人群的行
[单片机]
单片机MSP430程序跑飞原因和解决方式积累
1.中断或主函数中有死循环,现象是程序停在某处。 2.堆栈溢出。现象是程序跑飞。 ***************************************************************************** 3、是否开了中断但是没有用。如: 开了中断: TA0CCTL0 = CCIE;// CCR0 interrupt enabled TA0CCTL1 = CCIE;// CCR1 interrupt enabled//时间周期1使能 TA0CCTL2 = CCIE;// CCR2 interrupt enabled//时间周期2使能 TA0CCTL3= CCIE;// CCR3
[单片机]
C8051F020单片机在海水淡化装置海水预处理上的应用
引言 在对海水淡化装置实际使用过程中发现,装置实际工作参数一般不同于设计工作参数,使得装置无法发挥原设计系统流程特点,性能不佳;这种情况是由于实际进入装置的海水温度很难与设计温度一致造成的。此类现象对于海岛用海水淡化装置影响尤其明显:由于其特殊使用环境和条件,在不同季节和海域,海水入口温度变化很大,造成装置运行不稳定,产水量不足、水质下降严重,甚至不能工作。 为克服此类问题,本项目开展了海水进口调节模块设计技术研究,使控制器具有海水进口温度、流量的调节作用,始终保证进入装置的海水进口温度在设定值,使得装置的流程参数在不断变化的外界环境条件下保持在设定工况参数不变,从而保证淡水产量和水质,也使得装置易于控制和维护。 1
[单片机]
为工业应用提供更高安全性,Renesas RA6M4 MCU贸泽开售
拥有海量库存的电子元器件全球授权分销商贸泽电子 (Mouser Electronics) 即日起备货Renesas Electronics的RA6M4 32位微控制器。RA6M4微控制器结合出色的连接能力、安全性和性能,能加速边缘和终端物联网 (IoT) 设备以及电表、HVAC、增强型物业安全性和工业设备等应用的开发。 贸泽电子供应的Renesas RA6M4微控制器采用高效率的40 nm制程工艺,在工作模式下提供99 μA/MHz的出色电源效率。此款控制器搭载一个200 MHz Arm® Cortex®-M33内核,采用Armv8-M架构和Arm TrustZone®技术,并内置1 MB的代码闪存、256 KB的SRAM以及
[嵌入式]