打印

初学单片机的困惑

[复制链接]
2192|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hxa_online|  楼主 | 2007-6-5 15:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一直想学点单片机的开发东西,可是在公司没有相应的开发项目,
自己看书不少,没有具体的项目实践,总感觉到知识是零碎的,
有那位前辈能借个完整的小单片机产品,的整个程序,我学学,谢谢!
               显示
                ↑ 
  数据采集--51单片机--控制输出
                ↓
              键盘输入

E-mail:hexingan1981@21cn.com

相关帖子

沙发
gyt| | 2007-6-5 17:02 | 只看该作者

不少书上都有啊

使用特权

评论回复
板凳
zhaoyu2005| | 2007-6-6 09:17 | 只看该作者

你已经画出框框了

接下来按每个小单元一个一个完成,再连在一起不就成一个小系统了,自己弄出来才有成就感,才能进步

使用特权

评论回复
地板
zxq1234508| | 2007-6-6 09:23 | 只看该作者

试试

LZ可以试着用proteus搭建硬件平台,然后用keil自己编写程序,再仿真,那样会收获更大的。能看明白别人的程序和自己能写程序是有天壤之别的。希望你能成功!

使用特权

评论回复
5
救火车| | 2007-6-6 09:34 | 只看该作者

买一块便宜的开发板吧。

把开发板带的程序都看懂。然后再自己编一遍。

使用特权

评论回复
6
gyt| | 2007-6-6 11:22 | 只看该作者

5楼的办法是最快的办法:)

使用特权

评论回复
7
古道热肠| | 2007-6-6 11:34 | 只看该作者

做个定时马达运行系统吧

  有数据采集,用电位器作为输入,有控制输出,马达转速,再配上键盘和显示,完成定时启动电机,加速,再减速,再关断,很好玩的。

使用特权

评论回复
8
hxa_online|  楼主 | 2007-6-6 12:10 | 只看该作者

谢谢大家的支持

看来买个开发板,自己琢磨还是必要的啊!
用proteus搭建平台,我实验过了
对中断和定时器的应用以及简单的io定义
可以了 
但很难把他们综合到一块,特别是键盘和显示,键盘和显示的子程序都看了,
但不明白之间的调用,和具体的参数的传递
我现在就搁浅在这里了

使用特权

评论回复
9
zdjtcl1| | 2007-6-6 14:35 | 只看该作者

慢慢来,多实践

那地方不明白,说出来具体的,大家给你分析一下

使用特权

评论回复
10
hxa_online|  楼主 | 2007-6-8 16:57 | 只看该作者

键盘扫描程序有些问提

自己写了一个键盘程序 用proteus防真时每一列的输出都是
1 5 9 13
1 5 9 13
1 5 9 13
1 5 9 13
程序如下:不知道问题出在那了 
#include <AT89X51.H>
#define uchar unsigned char
#define uint  unsigned int
void dlms(void);
uchar kbscan(void);


void main(void)

  uchar j;
  while (1)
  {  j=kbscan();
     dlms(); 
     switch (j)
     {
  case 0x11: P1= 1; break;
  case 0x12: P1 = 2; break;
  case 0x14: P1 = 3; break;
  case 0x18: P1= 4; break;
  case 0x21: P1= 5;     break;
  case 0x22: P1= 6;     break;
  case 0x24: P1 = 7; break;
  case 0x28: P1= 8; break;
  case 0x41: P1= 9;    break;
  case 0x42: P1= 10;break;
  case 0x44: P1= 11;break;
  case 0x48: P1= 12;break;
  case 0x81: P1= 13;break;
  case 0x82: P1= 14;break;
  case 0x84: P1= 15;break;
  case 0x88: P1= 16; break;
  default   :  P1=0;
     }
  }
}


void dlms(void)
{ uchar i;
  for(i=200;i>0;i--){}
}


uchar kbscan(void)
{uchar  s,r;
 P0=0xf0;
 if ((P0&0xf0)!=0xf0)
    {dlms();
      if ((P0&0xf0)!=0xf0)
         {s=0xfe;
            while ((s&0x10)!=0)
                 { P0=s;
                   if ((P0&0xf0)!=0xf0)
                     {r=(P0&0xf0)|0x0f;
                      return ((~s)+(~r));
                      }
                   else 
                   s=(s<<1)|0x01;
                  }
         }
   }
   return(0);
}

使用特权

评论回复
11
yuyixuanta| | 2007-6-8 23:38 | 只看该作者

动手实践

不要仿真了,时间多的话自己焊个板子,时间少的话,买个开发板,认认真真从最简单的一步步做下去,才能学点东西

使用特权

评论回复
12
hspring86| | 2007-6-9 18:32 | 只看该作者

最好还是先针对各个模块练习,熟悉后再整合一块

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

9

帖子

0

粉丝