[原创] 单片机爱好者做的开发板板,xx每天更

myemcu   2013-6-6 11:02 楼主
话不多说,先上几张效果图:

整板的:
1.整板.jpg

插屏的12232F:
2.带屏.jpg

总原理图:
3.总图.jpg
以下是各子原理图:
14.IR接收头.jpg 4.MCU子系统.jpg 5.Uart串行接口.jpg 6.Disp显示子系统.jpg 7.BEEP有源蜂鸣器.jpg 8.双路继电器.jpg 9.RTC(DS1302).jpg 10.KEY.jpg 11.X5045P.jpg 12.PCF8591P.jpg 13.DS18B20.jpg

回复评论 (21)

楼主配合文字解说就更好了
加油!在电子行业默默贡献自己的力量!:)
点赞  2013-6-6 11:10
9针串口不好找了
点赞  2013-6-6 12:13

知道哈。

每天更新一些,有些还在做的。。
点赞  2013-6-6 13:51
其实不如将232改成USB桥,现在232不多了
《MCU工程师炼成记》作者之一
点赞  2013-6-6 13:58

回复 板凳 huo_hu 的帖子

用转接线是非常方便的。。
点赞  2013-6-6 14:11

回复 沙发 soso 的帖子

谢老大建议,会做的哈。。
点赞  2013-6-6 14:12

回复 5楼 wstt 的帖子

木事,反正配转接线。。
点赞  2013-6-6 17:41

先上几个测试程序:

LED+SMG+LCD12232F(在板板上全部验证通过):

//LED测试程序:

#include "reg52.h"
#include "absacc.h"

#define  uchar unsigned char
#define  uint  unsigned int

#define  LED   XBYTE[0xE000]

//------------------------------------------------------------
void     delay(uint t)
{
while(t--);
}
//============================================================
void     main()
{
LED=0xFF;

while(1)
{
  LED=0x00;
  delay(60000);
  LED=0xFF;
  delay(60000);
}
}

//SMG测试

#include "reg52.h"
#include "absacc.h"

#define  uchar unsigned char
#define  uint  unsigned int

#define  DM    P0
#define  WM    P2

uchar SMG_DM[]={0xC0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar SMG_WM[]={0x00,0x20,0x40,0x60,0x80,0xA0};

void     delay(uint t)
{
while(t--);
}

void     main()
{
RD=0;

while(1)
{
   WM=(WM&0x1F)|SMG_WM[0]; DM=SMG_DM[6]; delay(100);
   WM=(WM&0x1F)|SMG_WM[1]; DM=SMG_DM[5]; delay(100);
   WM=(WM&0x1F)|SMG_WM[2]; DM=SMG_DM[4]; delay(100);
   WM=(WM&0x1F)|SMG_WM[3]; DM=SMG_DM[3]; delay(100);
   WM=(WM&0x1F)|SMG_WM[4]; DM=SMG_DM[2]; delay(100);
   WM=(WM&0x1F)|SMG_WM[5]; DM=SMG_DM[1]; delay(100);
}
}

LCD :

//LCD测试

#include "reg52.h"
#include "intrins.h"

#define  uchar unsigned char
#define  uint  unsigned int

#define  DB0_DB7  P0

sbit     RS = P2^5;
sbit     RW = P2^6;
sbit     E  = P2^7;

uchar    dis[]="我爱单片机!";
                                                                  
void     delay(uint k)
{
while(k--);
}
//--------------------------------------------------------------------------------------
void     Wr_CMD(uchar cmd) // 12232F写指令
{
delay(1000);

E=1;
RS=0;
RW=0;

DB0_DB7=cmd;

_nop_();

E=0;
}
//--------------------------------------------------------------------------------------
void     Wr_DAT(uchar dat)
{
delay(1000);

E=1;
RS=1;
RW=0;

DB0_DB7=dat;

_nop_();

E=0;
}
//-------------------------------------------------------------------------------------
void     Wr_CHI(uchar str[],uchar num)
{
uchar   i;

for(i=0;i {
  Wr_DAT(str);
  delay(100);
}
}
//-------------------------------------------------------------------------------------
void     LCM12232F_Init()
{
Wr_CMD(0x01);_nop_();
Wr_CMD(0x30);_nop_();
Wr_CMD(0x02);_nop_();
Wr_CMD(0x0C);_nop_();
}
//=====================================================================================
void     main()
{
uchar   cnt;

LCM12232F_Init();

while(1)
{
  Wr_CMD(0x80);

  cnt=sizeof(dis);
  Wr_CHI(dis,cnt);
  }
}
点赞  2013-6-6 17:43

欢迎随便逛

哥们的店店:http://shop103291259.taobao.com
点赞  2013-6-6 18:10
矮油,挺好啊。还有控制强电的模块
51单片机交流群  20766859.欢迎大家的加入~
点赞  2013-6-6 18:25

回复 8楼 myemcu 的帖子

那无压力
《MCU工程师炼成记》作者之一
点赞  2013-6-6 20:06

回复 楼主 myemcu 的帖子

有些东西怎么不用贴片呢?
点赞  2013-6-6 22:19

今天出炉:

SMG精准时钟(24小时制),三键实现时间调整,并带位闪特效:

#include "reg52.h"

#define  uchar   unsigned char
#define  uint    unsigned int

#define  DM      P0
#define  WM      P2

uchar code SMG_DM[]={0xC0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar code SMG_WM[]={0x00,0x20,0x40,0x60,0x80,0xA0};

sbit  K1=P3^2;
sbit  K2=P1^1;

sbit  K3=P3^4;
sbit  BEEP=P3^5;

uchar cnt=0;
bit   sec_flg=0; // 0:1秒未到。
char  sec,min,hour; // 时,分,秒。
uchar dis[6];
uchar status=0;     // 初态:禁止调时。

bit   ss_flag = 0;
//-------------------------------------------------
void   delay(uint t)
{
while(t--);
}
//==================================================
void     T0_init()
{
TMOD=0x01;
TH0=0x3C;
TL0=0xB0;
EA=1;
ET0=1;ET1=1;
TR0=1;TR1=1;
PT1=1;
}
//==============================================================================================
void     main()
{
T0_init();

RD=0;

// D1=0,D2=1;

while(1)
{
  if((sec_flg)&&(status==0))
  {
   sec_flg=0;

   sec++;
   if(sec>59)  sec=0,min++;
   if(min>59)  min=0,hour++;
   if(hour>23) hour=0;
  }

  dis[0]=sec%10;
  dis[1]=sec/10;
  dis[2]=min%10;
  dis[3]=min/10;
  dis[4]=hour%10;
  dis[5]=hour/10;

  if(status!=0)
  {
   if(!K1)
   {
    while(!K1);
                BEEP=0,delay(1000),BEEP=1;
        switch(status)
        {
         case  1: hour++;
                  if(hour>23)
                           hour=0;
                          break;

         case  2: min++;
                  if(min>59)
                           min=0;
                          break;

         case  3: sec++;
                  if(sec>59)
                           sec=0;
                          break;

         default: break;
        }
   }

   if(!K2)
   {
    while(!K2);
                BEEP=0,delay(1000),BEEP=1;
        switch(status)
        {
         case  1: hour--;
                  if(hour<0)
                           hour=23;
                          break;

         case  2: min--;
                  if(min<0)
                           min=59;
                          break;

         case  3: sec--;
                  if(sec<0)
                           sec=59;
                          break;

         default: break;
        }
   }
  }
  
  if(!K3)
  {
   while(!K3);
         BEEP=0,delay(1000),BEEP=1;
               
   status++;
   
   if(status>3)
   status=0;
  }

}
}
//===============================================================================================
void    T0_isr(void) interrupt 1
{
TH0=0x3C;
TL0=0xB0;

cnt++;

if(cnt>=20)
{
  cnt=0;
  sec_flg=1;
}
}

//----------------------------------------------------------------------------------------------

void    T1_isr(void) interrupt 3
{
static uchar counter;
uint   ct;

TH1=0xFC;
TL1=0x18;

ct++;
if(ct>3000)
{
  ct=0;
  ss_flag=!ss_flag;
}

if(status!=0)
{
  switch(counter)
  {
   case 5:
                  if(status==1)
                  {
                   if(ss_flag)
                   {
                    DM=0xFF; WM=(WM&0x1F)|SMG_WM[5]; DM=SMG_DM[dis[5]];
                   }
                   else
                   {
                    DM=0xFF;WM=(WM&0x1F)|SMG_WM[5];DM=0xFF;
                   }
                  }
                  else
                  {
                   DM=0xFF; WM=(WM&0x1F)|SMG_WM[5]; DM=SMG_DM[dis[5]];
                  }
                  break;

  case 4:
                  if(status==1)
                  {
                   if(ss_flag)
                   {
                    DM=0xFF; WM=(WM&0x1F)|SMG_WM[4]; DM=SMG_DM[dis[4]]&0x7F;
                   }
                   else
                   {
                    DM=0xFF;WM=(WM&0x1F)|SMG_WM[4];DM=0xFF;
                   }
                  }
                  else
                  {
                   DM=0xFF; WM=(WM&0x1F)|SMG_WM[4]; DM=SMG_DM[dis[4]]&0x7F;
                  }
                  break;

  case 3:
                  if(status==2)
                  {
                   if(ss_flag)
                   {
                    DM=0xFF; WM=(WM&0x1F)|SMG_WM[3]; DM=SMG_DM[dis[3]];
                   }
                   else
                   {
                    DM=0xFF;WM=(WM&0x1F)|SMG_WM[3];DM=0xFF;
                   }
                  }
                  else
                  {
                   DM=0xFF; WM=(WM&0x1F)|SMG_WM[3];DM=SMG_DM[dis[3]];
                  }
                  break;

  case 2:
                  if(status==2)
                  {
                   if(ss_flag)
                   {
                    DM=0xFF; WM=(WM&0x1F)|SMG_WM[2]; DM=SMG_DM[dis[2]]&0x7F;
                   }
                   else
                   {
                    DM=0xFF;WM=(WM&0x1F)|SMG_WM[2];DM=0xFF;
                   }
                  }
                  else
                  {
                   DM=0xFF; WM=(WM&0x1F)|SMG_WM[2]; DM=SMG_DM[dis[2]]&0x7F;
                  }
                  break;

  case 1:
                  if(status==3)
                  {
                   if(ss_flag)
                   {
                    DM=0xFF; WM=(WM&0x1F)|SMG_WM[1]; DM=SMG_DM[dis[1]];
                   }
                   else
                   {
                    DM=0xFF;WM=(WM&0x1F)|SMG_WM[1];DM=0xFF;
                   }
                  }
                  else
                  {
                   DM=0xFF; WM=(WM&0x1F)|SMG_WM[1]; DM=SMG_DM[dis[1]];
                  }
                  break;

  case 0:
                  if(status==3)
                  {
                   if(ss_flag)
                   {
                    DM=0xFF; WM=(WM&0x1F)|SMG_WM[0];DM=SMG_DM[dis[0]];
                   }
                   else
                   {
                    DM=0xFF;WM=(WM&0x1F)|SMG_WM[0];DM=0xFF;
                   }
                  }
                  else
                  {
                   DM=0xFF; WM=(WM&0x1F)|SMG_WM[0];DM=SMG_DM[dis[0]];
                  }
                  break;

  default: break;
                  
  }
}
else
{
  if((counter==2)||(counter==4))
  {
   DM=0xFF; WM=(WM&0x1F)|SMG_WM[counter];DM=SMG_DM[dis[counter]]&0x7F;
  }
  else
  {
   DM=0xFF; WM=(WM&0x1F)|SMG_WM[counter];DM=SMG_DM[dis[counter]];
  }
}

counter++;
if(counter>5)
  counter=0;      
}
点赞  2013-6-7 11:01

回复 楼主 myemcu 的帖子

价格稍高,呵呵。
点赞  2013-6-7 12:02

回复 15楼 lcofjp 的帖子

可以改价。。
点赞  2013-6-7 12:12

明天继续更

这段时间找屋子忙的没时间更了,先上个图,明天继续开更: 4 分钟前 上传
下载附件 (43.77 KB)



案例全以多文件为主的风格来进行板上个外设的各种控制应用。
点赞  2013-6-17 11:50

正式开更

功能:LED闪灯测试
运行:
1.LED应用测试.jpg
程序:
20.jpg
码包:
LED.zip (129.77 KB)
(下载次数: 1, 2013-6-18 13:42 上传)
点赞  2013-6-18 13:42

接着更

功能:SMG静态显示与显示函数
运行:
运行效果.jpg
程序:
1.jpg
2.jpg
码包:
1.SMG静态显示.zip (133.18 KB)
(下载次数: 1, 2013-6-20 10:27 上传)

2.显示函数.zip (132.93 KB)
(下载次数: 2, 2013-6-20 10:27 上传)
点赞  2013-6-20 10:27

今天再更:

1.
位闪调时时钟.zip (142.83 KB)
(下载次数: 1, 2013-7-1 15:31 上传)

2.
按键长短按识别.zip (136.23 KB)
(下载次数: 1, 2013-7-1 15:31 上传)
点赞  2013-7-1 15:31
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复