这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 木叶只在球的MCU开发板进程贴 2

共11条 1/2 1 2 跳转至

木叶只在球的MCU开发板进程贴 2

助工
2011-11-29 22:39:35     打赏
由于上一个帖子的图片贴的太大了,影响美观,从新开贴。
报名成功后就看了一些论坛的资料和大家的,然后就是去买元器件,非常感谢论坛里面的网友,是看到他的那个淘宝网址进去买的,所以几乎都买齐了,就是有几个封装不对,数码管和u12还有电子那一块。其他的都买到了。
然后就收到了电子产品世界网站的板子和书
非常感谢eepw的活动,让我不仅做出了一个功能完整的学习板,而且还提高了动手能力。
给大家看看我焊接好的板子吧


接下来就是测试了,加油!!!大家加油!!!



关键词: 木叶     只在     开发     进程    

助工
2011-11-30 13:55:24     打赏
2楼
怎么上传视频是个问题!!!

助工
2011-11-30 15:52:17     打赏
3楼
总结起来就是
1 数码管的封装不对
2 蜂鸣器的三极管的封装不好买
3 AD的封装不对

助工
2011-12-01 13:13:29     打赏
4楼

使用串口232下载程序
可能有的网友使用串口下载时不知道怎么下载,因为要在stc-isp中选择com口,不知自己的com口是多少,大家可以看到电脑的设备管理器中的com口,可能还会有问号,说明电脑没有识别这个硬件,大家可以下载一个串口转com口的程序163_20110826210849_MjAxMTA0MDExMzQzMzYxODQ2Nw==.rar
这样就可以看到你的com口了,下载就可以完成了!!!加油!!!


助工
2011-12-01 13:15:28     打赏
5楼

助工
2011-12-01 13:26:19     打赏
6楼

#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义                       

                             
void main (void)
{


    SCON  = 0x50;          /* SCON: 模式 1, 8-bit UART, 使能接收         */
    TMOD |= 0x20;               /* TMOD: timer 1, mode 2, 8-bit reload        */
    TH1   = 0xFD;               /* TH1:  reload value for 9600 baud @ 11.0592MHz   */
    TR1   = 1;                  /* TR1:  timer 1 run                          */
    EA    = 1;                  /*打开总中断*/
    ES    = 1;                  /*打开串口中断*/

while (1)                       /*主循环不做任何动作*/
    {
    }
}
/******************************************************************/
/*                  串口中断程序                                  */
/******************************************************************/
void UART_SER (void) interrupt 4 //串行中断服务程序
{
    unsigned char Temp;          //定义临时变量
  
   if(RI)                        //判断是接收中断产生
     {
   RI=0;                        //标志位清零
   Temp=SBUF;         //读入缓冲区的值
   P1=Temp;               //把值输出到P1口,用于观察
      SBUF=Temp;      //把接收到的值再发回电脑端
  }
   if(TI)                        //如果是发送标志位,清零
     TI=0;
}


助工
2011-12-01 13:47:57     打赏
7楼

发送FF则P1口对应的八个灯全灭,发送FE则第一个灯亮,发送00则全灭。

但是实验55和aa的时候却不是一亮一灭的状态

55是01010101

aa是10101010

又实验40是0100 0000应该是第7个灭的但是却是第八个灭了!!!

不知为何???


助工
2011-12-01 14:54:09     打赏
8楼

一个按键的实验,短路帽插在4*1按键选择,按键s8每按一下,票P1口的LED 灯会显示变化。
但是后来还有两个乱码不知是怎么出来的,大侠们看看,给我指出来吧



#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit d1=P2^0;
sbit key1=P3^3 ;
uchar code table[]={
0xff,0xfe,0xfc,0xf8,
0xf0,0xe0,0xc0,0x80,
0x00,0xff,0x55,0x00,
0xaa,0xff,0x00,0xff};
uchar num=0;
void delay(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
void main()

 P1=0xfe;
 while(1)
  {
   if(key1==0)
    {
         delay(500);
      num=num+1;
      delay(50);
    }
   else
     {        delay(500);
              P1=table[num];
        delay(50);
      } 
  }
}

 


助工
2011-12-01 15:41:15     打赏
9楼

4*4键盘实验 使用P1口的八个LED 显示
问题是S5应该显示为第二个灯亮的,但是却亮了第三个!!!
好像都是这个LED 的问题哦!!!
#include<reg51.h>
unsigned char i=100;
unsigned char j,k,temp,key;

void delay(unsigned char i)
{
  for(j=i;j>0;j--)
    for(k=125;k>0;k--);
}

unsigned code table[]={
0xff,0xfe,0xfb,0xfc,
0xfb,0xfa,0xf9,0xf8,
0xf7,0xf6,0xf5,0xf4,
0xf3,0xf2,0xf1,0xf0};
display(unsigned char num)
{
         P1=table[num];
       
}
void main()
{
  while(1)
  {
    P3=0xfe;
    temp=P3;
    temp=temp&0xf0;
    if(temp!=0xf0)
    {
      delay(10);
      if(temp!=0xf0)
      {
        switch(temp)
        {
          case 0xe0:
               key=13;
               break;

          case 0xd0:
               key=9;
               break;

          case 0xb0:
               key=5;
               break;

          case 0x70:
               key=1;
               break;
         }
       
        display(key);
       
      }
    }
   
   
    P3=0xfd;
    temp=P3;
    temp=temp&0xf0;
    if(temp!=0xf0)
    {
      delay(10);
      if(temp!=0xf0)
      {
        switch(temp)
        {
          case 0xe0:
               key=14;
               break;

          case 0xd0:
               key=10;
               break;

          case 0xb0:
               key=6;
               break;

          case 0x70:
               key=2;
               break;
         }
        
         }
       
         display(key);
      }
      }
   
   
   
    P3=0xfb;
    temp=P3;
    temp=temp&0xf0;
    if(temp!=0xf0)
    {
      delay(10);
      if(temp!=0xf0)
      {
        switch(temp)
        {
          case 0xe0:
               key=15;
               break;

          case 0xd0:
               key=11;
               break;

          case 0xb0:
               key=7;
               break;

          case 0x70:
               key=3;
               break;
         }
       
        display(key);
      }
      }
  
   
   
    P3=0xf7;
    temp=P3;
    temp=temp&0xf0;
    if(temp!=0xf0)
    {
      delay(10);
      if(temp!=0xf0)
      {
        switch(temp)
        {
          case 0xe0:
               key=16;
               break;

          case 0xd0:
               key=12;
               break;

          case 0xb0:
               key=8;
               break;

          case 0x70:
               key=4;
               break;
         }
        
        display(key);
      }
    }
  }


助工
2011-12-01 16:09:45     打赏
10楼

给大家一个播放音乐的程序
我的蜂鸣器因为没有买到三极管所以不能用
让大家试一试吧
从网上看到的
#include <reg52.h>
#include <intrins.h>
#define FREQ 11059200
unsigned char code music_tab1[]={
//梁祝
0xcb,
0x35,0x16,0xb9,0x12,0x96,0x99,0xa5,
0xbd,0x99,0x96,0x15,0x13,0x15,0x62,
0x32,0x13,0xa7,0x26,0x25,0x16,0xa9,0x22,
0xa3,0xa9,0x96,0x15,0x16,0x99,0xe5,
0xbb,0x15,0xa7,0xaa,0x96,0x99,0xd5,
0x13,0x15,0x23,0x15,0x16,0x17,0x9a,0xd6,0x15,0x16,
0xb9,0x12,0x25,0x23,0x23,0x22,0x13,0x12,0x21,0x96,0x15,
0x43,0xc9,0x96,0x99,0x96,0x15,0x13,0x15,0x16,0x99,
0xd5,0x00,
};
unsigned char code music_tab2[]={ //康定情歌
0x23,0x25,0x26,0x16,0x15, 0x36,0x13,0x42,
0x23,0x25,0x26,0x16,0x15, 0x26,0x53,
0x23,0x25,0x26,0x16,0x15, 0x26,0x23,0x42,
0x25,0x23,0x12,0x13,0x12,0x11, 0x22,0xd6,
0x26,0xda, 0x25,0x53, 0x12,0x11,0xd6,
0xad,0x23,0x12,0x13,0x12,0x11, 0x22,0xd6,
0x00,
};
unsigned char code music_tab3[]={ //美酒加咖啡
0x55,0x23,0x25,0x26,0xa9,0x22, 0x73,
0x45,0x25,0x26,0x23,0x22,0x21,0x23, 0x72,
0x52,0x23,0x45,0x43, 0x22,0x21,0xa6,0x25,0x66,
0xc9,0xa6,0x25,0x23,0x25,0x26,0xa9, 0xf5,
0x45,0x23,0x25,0x46,0xc9, 0x22,0x13,0x12,0x21,0x22,0x63,
0x22,0x23,0x25,0x26,0x25,0x23,0x22,0x21, 0x72,
0x52,0x23,0x45,0x43, 0x22,0x21,0xa6,0x25,0x66,
0xb9,0x12,0x23,0x25,0x22,0xa5,0xab,0x22, 0x71,
0x00,
};
unsigned char code music_tab4[]={ //北国之春
0x15,0x16,0x75, 0x15,0x16,0x55,0x13,0x15,0x16,0x15,0x16,0x99,0x12,0x13,
0x65,0x45,0x13,0x12,0x11,0x12, 0x73,
0x62,0x42,0x12,0x11,0x96,0x15, 0x76,
0x55,0x23,0x45,0xa9,0x22, 0x53,0x12,0x13,0x65,
0x52,0x22,0x42,0x21,0xa6, 0xe9,0x91,0x12,0x13,0x12,0x13,0x15,0x99,0x12,
//以上为过门
0x20,0x23,0x23,0x23,0x63, 0x22,0x23,0x23,0x22,0x41,0xa6,0x25,
0x53,0x22,0x21,0xa9,0x21,0xa6, 0x75,
0x26,0xa9,0x21,0xa6,0xc9,0x12,0x11,0x96,0x15,
0x23,0x25,0x25,0x26,0x45,0x21,0x22,
0x13,0x35,0x25,0xa9,0xa6,0x25,0x23,0x22, 0x71,
0x52,0x25,0x45,0x13,0x15,0x13,0x12, 0x21,0x41,0x22,0x43,0x45,
0x23,0x25,0x26,0xa9,0x42,0x12,0x33, 0x72,
0x51,0x22,0x43,0x22,0x21, 0xc6,0xc9,0x29,0xc6,0x45,0x23,0x23,
0x53,0x25,0x26,0x25,0x13,0x12,0x21, 0x62,0x42,0x23,0x25,
0x55,0x26,0x25,0x23,0x45, 0x26,0xa9,0x21,0x22,0x63,
0x52,0x22,0x22,0x13,0x12,0x21,0xa6,0xf9,
0x00,
};

unsigned char code music_l_tab[8]={0,1,2,3,4,6,8,16};//节拍延时单位
unsigned char code music_freq_tab[64]={ //音符定时器值表
0xff,0xea, //0 休止符
255-FREQ/24/131/256, //256-FREQ/24/x/256 //1 do 高字节
256-FREQ/24/131%256, //256-FREQ/24/x%256 //1 do 低字节
255-FREQ/24/147/256,256-FREQ/24/147%256, //2 re
255-FREQ/24/165/256,256-FREQ/24/165%256, //3 mi
255-FREQ/24/175/256,256-FREQ/24/175%256, //4 fa
255-FREQ/24/196/256,256-FREQ/24/196%256, //5 suo
255-FREQ/24/221/256,256-FREQ/24/221%256, //6 la
255-FREQ/24/248/256,256-FREQ/24/248%256, //7 xi

0xff,0xea, //0 休止符
255-FREQ/24/262/256,256-FREQ/24/262%256, //1 do
255-FREQ/24/294/256,256-FREQ/24/294%256, //2 re
255-FREQ/24/330/256,256-FREQ/24/330%256, //3 mi
255-FREQ/24/350/256,256-FREQ/24/350%256, //4 fa
255-FREQ/24/393/256,256-FREQ/24/393%256, //5 suo
255-FREQ/24/441/256,256-FREQ/24/441%256, //6 la
255-FREQ/24/495/256,256-FREQ/24/495%256, //7 xi

0xff,0xea, //0 休止符
255-FREQ/24/525/256,256-FREQ/24/525%256, //1 do
255-FREQ/24/589/256,256-FREQ/24/589%256, //2 re
255-FREQ/24/661/256,256-FREQ/24/661%256, //3 mi
255-FREQ/24/700/256,256-FREQ/24/700%256, //4 fa
255-FREQ/24/786/256,256-FREQ/24/786%256, //5 suo
255-FREQ/24/882/256,256-FREQ/24/882%256, //6 la
255-FREQ/24/990/256,256-FREQ/24/990%256, //7 xi

0xff,0xea, //0 休止符
255-FREQ/24/1049/256,256-FREQ/24/1049%256, //1 do
255-FREQ/24/1178/256,256-FREQ/24/1178%256, //2 re
255-FREQ/24/1322/256,256-FREQ/24/1322%256, //3 mi
255-FREQ/24/1400/256,256-FREQ/24/1400%256, //4 fa
255-FREQ/24/1572/256,256-FREQ/24/1572%256, //5 suo
255-FREQ/24/1665/256,256-FREQ/24/1665%256, //6 la
255-FREQ/24/1869/256,256-FREQ/24/1869%256, //7 xi

};


unsigned char code music_frequp_tab[64]={ //升半音
0xff,0xea, //0 休止符
255-FREQ/24/139/256, //1 do 高字节 //255-FREQ/24/x/256
256-FREQ/24/139%256, //1 do 低字节 //256-FREQ/24/x%256
255-FREQ/24/156/256,256-FREQ/24/156%256, //2 re
255-FREQ/24/175/256,256-FREQ/24/175%256, //3 mi
255-FREQ/24/185/256,256-FREQ/24/185%256, //4 fa
255-FREQ/24/208/256,256-FREQ/24/208%256, //5 suo
255-FREQ/24/234/256,256-FREQ/24/234%256, //6 la
255-FREQ/24/262/256,256-FREQ/24/262%256, //7 xi

0xff,0xea, //0 休止符
255-FREQ/24/278/256,256-FREQ/24/278%256, //1 do
255-FREQ/24/312/256,256-FREQ/24/312%256, //2 re
255-FREQ/24/350/256,256-FREQ/24/350%256, //3 mi
255-FREQ/24/371/256,256-FREQ/24/371%256, //4 fa
255-FREQ/24/416/256,256-FREQ/24/416%256, //5 suo
255-FREQ/24/467/256,256-FREQ/24/467%256, //6 la
255-FREQ/24/525/256,256-FREQ/24/525%256, //7 xi

0xff,0xea, //0 休止符
255-FREQ/24/556/256,256-FREQ/24/556%256, //1 do
255-FREQ/24/624/256,256-FREQ/24/624%256, //2 re
255-FREQ/24/700/256,256-FREQ/24/700%256, //3 mi
255-FREQ/24/742/256,256-FREQ/24/742%256, //4 fa
255-FREQ/24/833/256,256-FREQ/24/833%256, //5 suo
255-FREQ/24/935/256,256-FREQ/24/935%256, //6 la
255-FREQ/24/1049/256,256-FREQ/24/1049%256, //7 xi

0xff,0xea, //0 休止符
255-FREQ/24/1112/256,256-FREQ/24/1112%256, //1 do
255-FREQ/24/1248/256,256-FREQ/24/1248%256, //2 re
255-FREQ/24/1400/256,256-FREQ/24/1400%256, //3 mi
255-FREQ/24/1484/256,256-FREQ/24/1484%256, //4 fa
255-FREQ/24/1618/256,256-FREQ/24/1618%256, //5 suo
255-FREQ/24/1764/256,256-FREQ/24/1764%256, //6 la
255-FREQ/24/1968/256,256-FREQ/24/1968%256, //7 xi
};
unsigned char temp_TH1;
unsigned char temp_TL1;

// 音乐_编码2 -- IO定义 //
sbit PIN_MSC=P1^0; // 音乐输出端口 //

// 音乐_编码2 -- 函数原型//
void music_delay(unsigned char x); //音乐节拍延时
void music_play(unsigned char *msc); //播放音乐子程序

// 音乐_编码2 -- 函数 //
//---------------------------------------------------------------------------//
void music_int_t1 (void) interrupt 3 using 1 //定时中断1//
{
PIN_MSC=~PIN_MSC;
TH1=temp_TH1;
TL1=temp_TL1;
}

//---------------------------------------------------------------------------//
void music_delay(unsigned char n) //延时 125*n 毫秒
{
unsigned char i=125,j;
do {
do {
for (j=0; j<230; j++) _nop_(); //j=(11159KHz/12-10)/4
}while(--i);
}while(--n);
}

//---------------------------------------------------------------------------//
void music_play(unsigned char *msc) //音乐
{
unsigned char music_freq=32; //音高
unsigned char music_long; //节拍
unsigned char music_data=0; //音符数据
bit music_up=0; //升半音
bit music_break=0; //断奏
temp_TH1=0xff;
temp_TL1=0xea; //关输出(输出超声波)
TMOD=0x11; //T0:16位定时器、T1:16位定时器
// ET0=0; //关T0定时器中断
ET1=1; //开T1定时器中断
//---------------------------------------------------------
while (*msc != 0x00)
{
music_data=*msc & 0x07;
music_long=*msc>>4;
//---------------------------------------------------------
if (music_long != 0) //是音符
{
if (*msc >=128) //需升降调
{
if (((*msc) & 0x08) == 0)
{if (music_freq >= 16) music_freq -= 16;} //音高下降
else
{if (music_freq < 48) music_freq += 16;} //音高上升
}
//---------------------------------------------------------
if (music_up==1) //升半音
{
temp_TH1=music_frequp_tab[(music_freq + (music_data <<1))];
temp_TL1=music_frequp_tab[(music_freq + (music_data <<1)+1)];
}
else //不升半音
{
temp_TH1=music_freq_tab[(music_freq + (music_data <<1))];
temp_TL1=music_freq_tab[(music_freq + (music_data <<1)+ 1)];
}
//---------------------------------------------------------
if (music_break) //断奏
{
music_delay(music_l_tab[music_long&0x07]-1);
temp_TH1=0xff;
temp_TL1=0xea;
music_delay(1);
}
else //连奏
music_delay(music_l_tab[music_long&0x07]);
}
//---------------------------------------------------------
else //是功能码
{
switch(music_data)
{
case 0x04:
music_up=0; //不升半音
break;
case 0x05:
music_up=1; //升半音
break;
case 0x06:
music_break=0; //断奏
break;
case 0x07:
music_break=1; //连奏
break;
default:
break;
}
}
//---------------------------------------------------------
msc++;
}
ET1=0; //播放结束,关T1中断
PIN_MSC=1; //关输出
// temp_TH1=0xff;
// temp_TL1=0xea; //关输出(输出超声波)
// ET0=1; //开T0定时器中断
// TMOD=0x51; //T0:16位定时器、T1:16位计数器
}

//---------------------------------------------------------------------------//
void main(void) //示例
{
// 设置定时器--------------------------------------
TMOD = 0x11; // TMOD: 定时器1:模式1:16位;定时器2:模式1:16 位 //
// TCON = 0x50; // TCON: 定时器 1运行; 定时器 2运行 //
// 设置并开启中断:
IP = 0x08; //中断优先寄存器IP:|D7_x |x|x |PS|PT1|PX1|PT0|D0_PX0|//
IE = 0x88; //中断允许寄存器IE:|D7_EA|x|ET2|ES|ET1|EX1|ET0|D0_EX0|//
for (;;) {
//在此调用键盘和显示函数//
music_play(music_tab1);
music_play(music_tab2);
music_play(music_tab3);
music_play(music_tab4);
}
}


共11条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]