51单片机驱动16*16点阵显示生日快乐程序

发布者:清新微笑最新更新时间:2015-07-01 来源: 51hei关键字:51单片机  16*16点阵  生日快乐程序 手机看文章 扫描二维码
随时随地手机看文章
自己亲手做的一个点阵屏 仿真+实物, 送给女朋友的生日礼物 单片机+液晶显示 带仿真文件


妞都狠喜欢这个了,显示生日快乐4个字然后还有心型,还有i love you,全部源码和仿真文件的下载地址是:http://www.51hei.com/bbs/dpj-18851-1.html

 下面是部分源码预览:
#include
#include
#define  din  P3_2
#define  load  P3_3
#define  clk  P3_4
#define uchar unsigned char 
#define uint  unsigned int
unsigned char code dispcode[]={0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b,0x01};
uchar buf[]={0,0,0,0,0,0,0,0};
SYSTEMTIME  time1;
unsigned char code tab1[]={
    0x0F,0x00,0x1F,0x80,0x3F,0xC0,0x7F,0xE0,
          0x7F,0xF0,0x7F,0xF8,0x3F,0xFC,0x1F,0xFE,
          0x1F,0xFE,0x3F,0xFC,0x7F,0xF8,0x7F,0xF0,
          0x7F,0xE0,0x3F,0xC0,0x1F,0x80,0x0F,0x00,//心型图
      
       0x00,0x80,0x01,0x02,0x06,0x02,0x78,0x82,
       0x08,0x82,0x08,0x82,0x08,0x82,0x08,0x82,
       0xFF,0xFE,0x48,0x82,0x08,0x82,0x08,0x82,
       0x19,0x82,0x08,0x86,0x00,0x02,0x00,0x00,/*"生",2*/
       
       0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFC,
       0x42,0x08,0x42,0x08,0x42,0x08,0x42,0x08,
       0x42,0x08,0x42,0x08,0x42,0x08,0x7F,0xFC,
       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"日",3*/
       
       0x0E,0x00,0x00,0x00,0xFF,0xFF,0x10,0x00,
       0x0D,0x01,0x11,0x02,0x11,0x0C,0x11,0x70,
       0xFF,0x80,0x11,0x60,0x11,0x10,0x11,0x0C,
       0x1F,0x06,0x01,0x03,0x01,0x02,0x00,0x00,/*"快",4*/
       
       0x00,0x00,0x00,0x04,0x02,0x18,0x3F,0x30,
       0x22,0xE0,0x22,0x48,0x22,0x04,0x62,0x02,
       0x5F,0xFC,0x42,0x00,0xC2,0x00,0xC2,0x40,
       0x42,0x30,0x02,0x1C,0x00,0x08,0x00,0x00,/*"乐",5*/

             0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
             0x00,0x00,0x00,0x00,0x3F,0x8C,0x7F,0xDE,
             0x7F,0xDE,0x3F,0x8C,0x00,0x00,0x00,0x00,
             0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//!

             0x00,0x00,0x42,0xFE,0x42,0x02,0x7E,0x00,
                                                       0x42,0xFE,0x42,0x82,0x00,0xFE,0x00,0x00,
                                                       0x00,0xFC,0x00,0x02,0x7E,0xFC,0x02,0x00,
                                                       0x02,0xFE,0x02,0x92,0x7E,0x92,0x00,0x00,//I LOVE U

             0xE0,0x07,0x8F,0xF1,0x98,0x19,0x30,0x0C,
                    0x64,0x46,0x48,0x22,0x44,0x12,0x40,0x12,
                    0x40,0x12,0x44,0x12,0x48,0x22,0x64,0x46,
                    0x30,0x0C,0x98,0x19,0x8F,0xF1,0xE0,0x07,//笑脸
};
unsigned char code tab2[]={ 0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,
          0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00};
uchar code tab3[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x03,0x06,
       0x0c,0x18,0x30,0x60,0xe0,0x70,0x38,0x1c,0x0e,0x07,
       0x0f,0x1f,0x3e,0x7c,0xf8,0xfc,0x7e,0x3f,0x7f,0xfe,
       0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x3f,
       0x9f,0xcf,0xe7,0xf3,0xf9,0xfc,0xf8,0xf1,0xe3,0xc7,
       0x8f,0x1f,0x0f,0x87,0xc3,0xe1,0xf0,0xe0,0xc1,0x83,
       0x07,0x03,0x81,0xc0,0x80,0x01,0x00,
       0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,0x01,0x03,
       0x07,0x0f,0x1f,0x3f,0x7f,0xff,0xe7,0xc3,0x81,0x00,
       0x81,0xc3,0xe7,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,
       0xbf,0x7f,0x7e,0x7d,0x7b,0x77,0x6f,0x5f,0x3f,0x3e,
       0x3d,0x3b,0x37,0x2f,0x1f,0x1e,0x1d,0x1b,0x17,0x0f,
       0x0e,0x0d,0x0b,0x07,0x06,0x05,0x03,0x02,0x01,0x00,
       0x55,0xaa,0x55,0xaa,0x00,0xff,0x00,0xff,0x00,0xff,};
sbit KAI=P1^4;
sbit KAI2=P1^5;
void delay(uint time);
 uint j=0,q=0;
   uchar r,t=0,num=0;
void csh()
{
  load=1;
  clk=1;
  din=1;
}[page]
  Delayms(uint c)
{  
   uint a,b;
   for(a=0;a    for(b=0;b<120;b++);
}
void write(uchar com,uchar da)
{
   uchar temp,i,j;
   load=0;
   clk=0;
       for(i=0;i<8;i++)
      { temp=com;
       if((temp&(0x80>>i))!=0)
        din=1;
   else din=0;
      clk=1;
         for(j=0;j<5;j++);
   clk=0;
   }
    for(i=0;i<8;i++)
    { temp=da;
          if((temp&(0x80>>i))!=0)
    din=1;
      else din=0;
     clk=1;
    for(j=0;j<5;j++);
    clk=0;
    }
  load=1;

}

void main()

{  
   
   csh(); 
   write(0x0c,0x01);//正常工作状态,关断模式
   write(0x09,0x00);//译码选择,非BCD码
   write(0x0a,0x0a);//亮度调节
   write(0x0b,0x07);//显示位数
   Initial_DS1302();   
   while(1)
     {  
    DS1302_GetTime(&time1);
       buf[7]=(time1.Second)%10;
       buf[6]=(time1.Second)/10;
       buf[4]=(time1.Minute)%10;
       buf[3]=(time1.Minute)/10;
       buf[1]=(time1.Hour)%10;
       buf[0]=(time1.Hour)/10;
       write(0x08,dispcode[buf[7]]);
       write(0x07,dispcode[buf[6]]);
       write(0x06,dispcode[10]);
       write(0x05,dispcode[buf[4]]);
       write(0x04,dispcode[buf[3]]);
    write(0x03,dispcode[10]);
    write(0x02,dispcode[buf[1]]);
    write(0x01,dispcode[buf[0]]);
      // Delayms(200);  
   num++;
  if(num==137)
  num=0;
  for(r=0;r<105;r++)
   for(j=q;j<32+q;j++)
    {
     P1=tab2[t];
   KAI=1;
   P2=0X00;
   P2=tab1[j];       
   KAI=0;
   j++;
   KAI2=1;
   P2=0X00;   
   P2=tab1[j];       
   KAI2=0;
   P0=tab3[num];
   delay(40);
   t++;
   if(t==16)   
   t=0;
    }
      q=q+32;
   if(q==256)
   q=0;
    }
}
 void delay(uint time)
{
 uint linger;
 for(linger=0;linger }
 

关键字:51单片机  16*16点阵  生日快乐程序 引用地址:51单片机驱动16*16点阵显示生日快乐程序

上一篇:51单片机驱动TEA5767调频收音机芯片C程序
下一篇:精确到千分之一秒的单片机秒表程序(带仿真)

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

51单片机C语言编程中对单片机绝对地址访问的两种方法
在进行8051单片机应用系统程序设计时,编程都往往少不了要直接操作系统的各个存储器地址空间。 C51程序经过编译之后产生的目标代码具有浮动地址,其绝对地址必须经过BL51连接定位后才能确定。 为了能够在C51程序中直接对任意指定的存储器地址进行操作,可以采用扩展关键字“at”、指针、预定义以及连接定位控制命令。 在这些方法中,本人认为最简单而有效的方法是用“ _at_ ”关键字来对指定变量存储器空间绝对地址来指定。一般格式如下: 数据类型 标识符 _at_ 地址常数 其中: (1).存储器类型: idata、data、xdata等C51能够识别的所有类型,最好不要省略。 (2).数据类型: 可以用in
[单片机]
基于FPGA和51单片机的信号发生器设计
信号发生器又称为波形发生器是一种常用的信号源并且广泛应用于电子电路、通信、控制和教学实验等领域的重要仪器之一。为了降低传统函数信号发生器成本,改善信号发生器低频稳定性。笔者结合FPGA和51单片机产生0.596 Hz频率精度函数信号。笔者设计通过51单片机控制函数信号类型以及相关参数,用户可通过按键设置需要的波形、波形幅度、波形频率以及方波的占空比、相位。本文设计方案不仅具有良好的经济前景,也可以为当代高等教育深化改革做一个参考方向。 1 系统设计方案 1.1 系统硬件设计 本文中设计中硬件包括EP2C8Q20818N芯片和C8051F0201单片机、DAC0800芯片,T6963的LCD。本文中主要利用FPGA(EP
[单片机]
基于FPGA和<font color='red'>51单片机</font>的信号发生器设计
51单片机如何实现对CF卡的读写
  引言   由于CF卡(Compact Flash Card)具有容量大、体积小、高性能、携带方便等优点,而且读写速度快,可与多种电脑操作系统平台兼容,因此在数据采集系统中的数据记录或与PC机之间的数据转存多采用CF卡。为了在PC机中能方便地进行数据处理,在下位机端必须采用一种标准的格式组织数据,即将数据按照Windows标准文件格式写入,在PC机端通过读卡器将写入CF的内容以标准文件形式读出。Windows标准文件格式有FAT、FAT32和NTFS。考虑到广泛使用的Windows 98系统的CF卡的容量等因素,通常采用FAT(File Allocation Table)文件系统。单片机系统对CF卡的读写,就是从底层对它进行直接操
[单片机]
基于AT89C51单片机的电动车无线遥控系统
  本系统以单片机AT89C51 为电动车的控制核心, 利用红外遥控器配以红外接收头及直流电机的正反转控制电路来实现电动车的运动控制。系统由红外线遥控器, 红外线接收模块, 电动机驱动模块, 显示及声光指示模块, 方向控制模块等几部分组成。系统流程如图1, 原理框图如图2. 图1 原理流程图 图2 系统框图   1 红外遥控系统   通用红外遥控系统由发射和接收两大部分组成, 应用编/ 解码专用集成电路芯片来进行控制操作, 如图3 所示。发射部分包括键盘矩阵、编码调制、LED 红外发送器; 接收部分包括光、电转换放大器、解调、解码电路。 图3 红外遥控系统框图 1. 1 遥控发射器及编码   当发
[单片机]
基于AT89C<font color='red'>51单片机</font>的电动车无线遥控系统
51单片机总线与非总线的程序对比
简介:三总线简称ADC,这总是让我想起ADC的芯片,A是地址总线,D是数据总线,C是控制总线,是控制片外ROM、RAM和I/O的。 #include #include #define uchar unsigned char #define uint unsigned int uchar code table = The distance is ; uchar code table1 = 00.0cm ; sbit shuru=P1^0; sbit yidianling=P1^0; sbit yidianyi=P1^3;//延时 void delay(uint z) { uint x,y;
[单片机]
<font color='red'>51单片机</font>总线与非总线的<font color='red'>程序</font>对比
闪烁显示等待键入MCS51单片机程序举例
;闪烁显示等待键入子程序 ;功能:R1指向闪烁位地址,等待键入,并返回键值 ;占用:A,B,R0,R5 ;入口:R1 出口:A ORG 0150H CURSOR: MOV R0,#3FH ;R0指向显示缓冲区 CUR_0: MOV B,@R1 ;R1指向闪烁位地址 CUR_1: MOV @R1,B JNC CUR_3 MOV A,R5 JNB ACC.4,CUR_4 ; 闪烁计数到否 JNB ACC.5,CUR_5 MOV A,R1 XRL A,R0 JNZ CUR_2 MOV @R1,A SJMP CUR_4 CUR_2: CJNE
[单片机]
51单片机OLED12864 I2C接口使用教程
现在能买到的OLED12864显示屏大多为SPI和I2C接口的,I2C通信协议只需要两条总线就可以进行通信,下面介绍一下如何用51单片机使用I2C接口的OLED12864。 首先介绍一下I2C通信协议,I2C(Inter-Integrated Circuit)字面上的意思是集成电路之间,它其实是I2CBus简称,所以中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展。I2C的正确读法为“I平方C”( I-squared-C )。 I2C只使用两条双向漏极开路(Open Drain)(串行数据(SDA)及串行时钟频率(S
[单片机]
<font color='red'>51单片机</font>OLED12864 I2C接口使用教程
51单片机与PC通信方法总结
51单片机的串口,是个全双工的串口,发送数据的同时,还可以接收数据。 当串行发送完毕后,将在标志位 TI 置 1,同样,当收到了数据后,也会在 RI 置 1。 无论 RI 或 TI 出现了 1,只要串口中断处于开放状态,单片机都会进入串口中断处理程序。 在中断程序中,要区分出来究竟是发送引起的中断,还是接收引起的中断,然后分别进行处理。 常用的方法有: 接收数据时,使用 中断方式 ,清除 RI 后,用一个变量通知主函数,收到新数据。 发送数据时,也用 中断方式 ,清除 TI 后,用另一个变量通知主函数,数据发送完毕。 这样一来,收、发两者基本一致,编写程序也很规范、易懂。 更重要的是,主函数中,不用在那儿死等发送完毕,可以有更多的时
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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