EDN首页   博客首页

最新日志

发表于:2007-8-11 0:07:09
标签:无标签

1

水文缆道测流信号无线传输方案

已经完成了一些基础工作

曾经在论坛上发过求思路帖子,但是很少有人回应.

使用的是一对无线数据传输模块,已经成功进行了信号传输,而且比较稳定,起初担心信号传输不稳定问题消除.
论坛上有人说GPRS,开始不是没有想过,但是考虑有一定的传输时间延迟,而我需要的系统是实时的,对时间的要求严格,是关系系统成败的关键问题.没有采用.

论坛地址http://bbs.ednchina.com/?url=http%3A//bbs.ednchina.com/showtopic.aspx%3Fid%3D26084点击看大图

点击此处查看原文 >>

系统分类: 单片机   |    用户分类: 无分类    |    来源: 无分类

评论(1) | 阅读(847)
发表于:2007-8-10 23:49:09
标签:无标签

2

各位好朋友,我的淘宝店开张了

各位好朋友,我的淘宝店开张了

欢迎大家前去看看您有什么需要的

SuperLib速普单片机实验室  http://shop34732650.taobao.com

点击此处查看原文 >>

系统分类: 汽车电子   |    用户分类: 无分类    |    来源: 无分类

评论(0) | 阅读(740)
发表于:2007-2-11 22:02:05
标签:单片机实验板  销售  

6

我的第一款单片机实验板

我的第一块单片机实验板V1.2

点击看大图

具备的功能和可以完成的实验有:
1    8路发光LED,可以做跑马灯,流水灯实验,8路LED为独立控制
2    4位数码管静态/动态显示
3    1路蜂鸣器输出,可以输出简单音乐
4    1路继电器输出控制,可以做控制强电实验
5    2个独立按键,可以做独立按键实验,也可以做外部计数/中断输入实验
6    4个扫描按键,可以做键盘扫描实验
7    1路红外遥控解码输入,可以做红外遥控及解码实验
8    1路红外遥控输出,可以通过(7)红外遥控解码输入端进行红外遥控解码
       后,再由此输出端输出,模拟红外遥控器完成对其他红外遥控设备(比如电
      视)的遥控
9    预留1602液晶显示模块接口,可以进行1602显示控制实验 
10  板载I2C总线存储芯片AT24C01,可以进行I2C总线数据读/写实验
11  板载串行电平转换芯片MAX232,可以与计算机进行串口通讯实验
12  具备AT89S5X系列单片机ISP下载插座以及并口下载线,可以进行并口下载程序
13 单片机全部I/O通过40脚插座引出,便于其他自定义实验扩展

销售价格

1     主板 +  单片机STC89C51  + 1602液晶显示模块 + 资料光盘
      RMB      115
     **说明**STC89C51为全面兼容MCS51的一款单片机,它最大的特点是配合其官
     方软件可直接通过计算机串口线下载程序,而无需专用下载线和编程器


2   如果您自己有1602显示模块或者不需要进行液晶显示实验,则可以在上面价格里减去20元
    即:   RMB  95

联系及购买:

Q   Q: 570111467
Email: jqwx@hotmail.com


详细信息见:


http://www.ednchina.com/blog/jqwx
http://blog.gkong.com/blog.asp?name=superplc 

点击此处查看原文 >>

系统分类: 单片机   |    用户分类:    |    来源: 原创

评论(12) | 阅读(2113)
发表于:2007-1-15 22:27:08
标签:无标签

9

我也上传一个实验板电路

这是我最近做的一实验板的原理图和PCB,是99se格式.

拟MCU采用AT89S51和STC89C51.

AT89S51可以采用ISP下载线实现程序下载,下载线可以自制,自制的电路可以参考网络上流传很广的Easy 51Pro v2.0宇宙版.在此我一并给出.

STC89C51单片机是宏晶公司出的基于51内核的高性能单片机,同样具有ISP下载功能,更为可贵的是,它的ISP下载是直接通过串口完成,而不像AT89系列单片机需要通过专用的ISP下载端口.也就是说如果你有一个单片机电路系统,并且系统上留有串口,那么你只要将MCU换成STC89C51或者其同系列产品,计算机端配合其专用下载软件,直接通过串口就可以完成程序的下载了,是不是很方便实用啊.

我的实验板rarEasy 51Pro v2.0宇宙版第一个压缩包rarEasy 51Pro v2.0宇宙版第二个压缩包rar

PCB截图点击看大图

 

点击此处查看原文 >>

系统分类: 单片机   |    用户分类:    |    来源: 原创

评论(1) | 阅读(1652)
发表于:2007-1-4 16:20:44
标签:机器人  

6

介绍一种四轮小车机器人的机械结构

这个四轮小车机器人是我做毕业设计时做的,参照了我们学校机电一体化实验室的一个工业机器人的结构.
点击看大图点击看大图
点击看大图

说明:
   

两个直流伺服减速电机与轮子直接联接,分别装在前轮转向叉的左右两端,转向叉与车体上板通过轴承联接,靠前轮行进的两轮差速转向,如果不考虑电机电源线缠绕的话,理论上前叉可以任意角度、任意周数旋转,所以转向很灵活,再配合这两个轮子的电机正反转控制的话, 基本上可以实现小车任意位置的转向控制。

后两轮的转动是独立的,也就是说两个轮子是不同步转动的,但是他们被设计为同轴。整车转向的过程中,后轮行进的速度是有差值的,这正类似于汽车后桥的差动驱动。

 

 

本文为原创,转载请注明出处.  机器文学

 

 

 

 

 

点击此处查看原文 >>

系统分类: 自由话题   |    用户分类:    |    来源: 原创

评论(19) | 阅读(2383)
发表于:2007-1-4 2:42:05
标签:上拉电阻  

9

关于51单片机P0口的结构及上拉问题

首先请看P0口的结构:

点击看大图

说明:
1。P0作为地址数据总线时,T1和T2是一起工作的,构成推挽结构。高电平时,T1打开,T2截止;低电平时,T1截止,T2打开。这种情况下不用外接上拉电阻.而且,当T1打开,T2截止,输出高电平的时候,因为内部电源直接通过T1输出到P0口线上,因此驱动能力(电流)可以很大,这就是为什么教科书上说可以"驱动8个TTL负载"的原因.

2。P0作为一般端口时,T1就永远的截止,T2根据输出数据0导通和1截止,导通时拉地,当然是输出低电平;截止时,PO口就没有输出了,(注意,这种情况就是所谓的高阻浮空状态),如果加上外部上拉电阻,输出就变成了高电平1.

3。其他端口P1 P2 P3,在内部直接将P1口中的T1换成了上拉电阻,所以不用外接,但内部上拉电阻太大,电流太小,有时因为电流不够,也会再并一个上拉电阻。

(以上来自中山单片机学习论坛,有删减)

4.在某个时刻,P0口上输出的是作为总线的地址数据信号还是作为普通I/O口的电平信号,是依靠多路开关MUX来切换的.而MUX的切换,又是根据单片机指令来区分的.当指令为外部存储器/IO口读/写时,比如 MOVX  A,@DPTR ,MUX是切换到地址/数据总线上;而当普通MOV传送指令操作P0口时,MUX是切换到内部总线上的.

 

PS:

Because Ports 1, 2, and 3 have fixed internal pullups, they are sometimes called “quasi- bidirectional” ports.

我的e文不怎么样,参照金山在线后的解释:
因为端口1、2、3有固定的内部上拉,所以有时候他们被称为"准双向"口.

Port 0, on the other hand, is considered “true” bidirectional, because when configured as an input it floats.  
   
端口0, 从另外一方面来说,就被 认为是"真正的"双向,因为当它被设置为输入的时候是浮空(高阻态)的.     

本文为原创,转载请注明出处.  机器文学

  

点击此处查看原文 >>

系统分类: 单片机   |    用户分类:    |    来源: 原创

评论(7) | 阅读(4010)
发表于:2006-12-28 23:47:08
标签:74LS273  74LS373  地址锁存  

11

74LS273与74LS373的区别

一位网友在中华工控网上问的问题,我看没什么人回答,就整理了一下,给他回答了,并发到我的blog上

74LS273  是 带公共时钟复位八D触发器

74LS373  是 三态同相八D锁存器

273与373的引脚排列是相同的,唯一的差别是两者1、11脚的功能不同.

对273
(1).1脚是复位CLR,低电平有效,当1脚是低电平时,输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部输出0,即全部复位;

(2).当1脚为高电平时,11(CLK)脚是锁存控制端,并且是上升沿触发锁存,当11脚有一个上升沿,立即锁存输入脚3、4、7、8、13、14、17、18的电平状态,并且立即呈现在在输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)上.

对373:
(1).1脚是输出使能(OE),是低电平有效,当1脚是高电平时,不管输入3、4、7、8、13、14、17、18如何,也不管11脚(锁存控制端,G)如何,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部呈现高阻状态(或者叫浮空状态);

(2).当1脚是低电平时,只要11脚(锁存控制端,G)上出现一个下降沿,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)立即呈现输入脚3、4、7、8、13、14、17、18的状态.


所以,如果分别用273和373来作为单片机的地址存器的话,
对273来说,1(CLR)脚必须接高电平,ALE信号经过反相后接11脚(因为单片机的ALE信号是以下降沿方式出现)
对373来说,1脚接低电平,保证使能,11脚直接接单片机的ALE信号.

点击此处查看原文 >>

系统分类: 单片机   |    用户分类:    |    来源: 原创

评论(1) | 阅读(6340)
发表于:2006-12-24 17:31:28
标签:单片机  教程  

5

平凡老师的经典单片机教程

 

平凡老师的经典单片机教程
网络上流传的最经典的单片机教程应该算平凡老师的这个教程吧.
教程为"E书"格式,直接点击打开,很方便的,665K大.难得进行压缩,所以我直接改了后缀名,下载后                    请将".rar"后缀名字改成".exe"就行了rar

                          

点击此处查看原文 >>

系统分类: 单片机   |    用户分类:    |    来源: 整理

评论(5) | 阅读(2455)
发表于:2006-12-23 16:58:06
标签:单片机  ISP编程  STC89C52RC  

6

STC89C52RC串口编程的冷启动法与带电编程法

STC89C52RC单片机可以直接用串口进行ISP编程,对于使用者来说,这就变得很简单了.

这里要说的是,对STC89C52RC进行串口ISP编程的两种方法.

第一种   冷启动,即彻底关断用户目标板的电源,再上电.这一方法为厂家推荐之方法.宏晶公司在STC89C52RC数据手册上给出了下面的编程流程.

点击看大图

具体做法如下:

1.首先确保有STC89C52RC的目标板至少有最小系统.

2.到宏晶公司的网站下载一个软件,下载地址为:
http://www.mcu-memory.com/datasheet/stc/stc-isp-v2.9-setup/stc-isp-v2.9-setup-beta5.exe
如有更新的软件,请到http://www.mcu-memory.com查看。安装后运行该软件,其界面如下.点击看大图

  先在MCU Type下拉列表中选择正确的单片机型号,这里就选STC89C52RC啦,然后点击“Open File”打开待下载的文件,接着选择正确的COM口以及本机可用的最高波特率,COM口根据你接的串口来确定,最高波特率通常不必改动,接下来就是选择是否启用单片机的倍速特性,根据自己的需要来定,选择芯片内置振荡器的增益大小,可以根据提示,按提示要求去做,可得到较低的EMI特性。
一切选项最好之后,可以开始下载.

     关断电源,然后点击“Download/下载”按钮,点完后,再接通电源,这里要注意,关断电源到接通电源时间应稍微长一些,保证板子充分放电.只要注意操作顺序应该没有什么问题,如果点击“Download/下载”未及时插上电源,会出现如下图所示画面,不必担心,直接将电源插上即可。
  
  下载时出现超时错误界面

第二种  不切断电源的方法

与冷启动相比,前面的操作都一样,只是从冷启动需要关断电源的操作步骤开始不一样.当冷启动需要关断电源时,在本方法下,不需要关断电源.此时,请按照下面步骤进行:

需要用到串口,因此要占用单片机串行口和定时器T1或者T2作为波特率发生器,因此,定时器T1或者T2你就不能用了(在调试阶段)。下面,我们要在程序里加上一段串口初始化的程序:
serial_init ()  {
  SCON  = 0x50;       /* mode 1: 8-bit UART, enable receiver   */
  C_T2=0; /*Timer2 runing in Timer mode*/
    RCLK=1;
    TCLK=1;
   RCAP2H=0xff;
   RCAP2L=0xee;
  TR2=1; /*enable Timer2 run  */
   ES   = 1; REN=1; EA=1; SM2=1;     /*SM2=1时收到的第9位为1才置位RI标志*/
}
  这段程序加在主程序初始化那里,特别要提示的是,在初始化之前要有一段延时,时间约为0.1s即可,也就是主程序应该是这样的:
  void main()
  { …..      变量的定义,其他初始化语句
  mDelay(100); //延时100ms
  serial_init();
  ……
  其他语句
  为什么一定要在初始化串口之前加一段延时呢?这在后面交待。
  然后要加一段串口收数的程序,直接复制下面这一段就可以,了解清楚原理后自己写也行:
  uchar bitset(uchar num,uchar cbit) /*设置某一位*/ 
{  uchar bit_value[]={1,2,4,8,16,32,64,128}; 
return num|bit_value[cbit]; 

////////////////////////////////////////////////////////
void Ser() interrupt 4
{
static uchar Count=0;
GetCharBuf[Count]=SBUF;
if(GetCharBuf[Count]==(Count+0x10)) 
//要求stc下载软件发送的数是10 11 12 13 14 15 16 17
{ sMark="bitset"(sMark,Count);
//如果收到的数符合要求,则将sMark这个相应位置1
}
Count++;
if(Count>=8)
{ Count="0";
mGet=1; //置位标志
}
RI=0;
}
  看懂了没有呢?这里定义了8个字节的命令字,如果从主机传来连续的8个数正好与所定义的8个数相符合,那么就说明主机有要求重新下载的指令了。定义哪8个数,如何判定,这都可以发挥你自己的聪明才智来写,这里就简单地要求主机发送0x10 0x11 0x12 0x13 0x14 0x15 0x16和0x17这8个数,看程序中的这一行:
if(GetCharBuf[Count]==(Count+0x10)) 
  由于每次收到数Count会加1,从开始的0计到7为止,因此,接收到的数如果是Count加上0x10,就认为是相符的。
  相符之后就要做个记号,这里用了一个字节sMark,开机时,该字节为0,相符一次,则将相应位置1,如果收到的8个数均相符,那么sMark=0xff,如果收到的数中有一个不符,那么sMark不等于0xff。利用sMark即可判断是否接收到了正确的8个数。
  一旦收到8个数之后,即置位标志位mGet,然后在main函数里面做个判断,如果mGet=1且sMark=0xff,说明要求重新下载,下面即延时1s,然后将数0x60写入特殊功能寄存器:ISP_CONTR即可,main函数中的这一部份程序如下:
if(mGet)
{ if(sMark==0xff) //收到数符合要求
{ sMark="0"; //复位
mDelay(2000);
ISP_CONTR=0x60;//复位到isp下载区
}
else
{ sMark="0";
}
}
  你可以把这一段放在main函数的for(;;)循环当中。
  ISP_CONTR是STC89C52RC的一个特殊功能寄存器,其地址为0xE7,可以在程序的开头用sfr关键字来定义:
  sfr ISP_CONTR=0xe7;
  接下来看一看PC机程序端应该怎么做。
点击界面右侧的“自定义下载”,先选定特率,按上面的程序,如果选用stc89C52rc的倍速特性的话,波特率就是38400,否则就是19200,其他按图4设置即可。接着到自定义下载文本框中输入自定义下载指令为10 11 12 13 14 15 16 17 输入好了以后,点击发送,即可在不断电的情况下进行程序的下载了。

图3 自定义下载的设置
  那么为什么一开始初始化的时候一定要延时呢?这是我们在实际使用中发现,在下载完成后,软件似乎会多发送一些数据,由于我们的程序中没有设置超时等处理,所以就会干扰数据的正确接收,为此采取了一个简的方法就是延时一段时间再开启串口。当然你也可以采用其他的方法来解决这个问题,不过我们认为这种方法简单有效。
  为了更有效地进行程序的开发,建议你将“选项”下方的“每次下载前自动刷新已打开在缓冲区的文件,以方便调试”前面打上勾,如图4所示。
  
图4 方便调试的选项

 

参考资料: 平凡单片机工作室 http://www.mcustudio.com/
  

点击此处查看原文 >>

系统分类: 单片机   |    用户分类:    |    来源: 原创

评论(0) | 阅读(2327)
发表于:2006-12-22 6:33:21
标签:无标签

6

控制继电器

用单片机控制继电器
首先看看继电器的驱动

这是典型的继电器驱动电路图,这样的图在网络上随处可以搜到,并且标准教科书上一般也是这样的电路图.(我们一位老师说过,中国的教科书,大都是你抄我,我抄你,甚至连图也照搬,所谓的教授们只为了增加他们虚伪的学术成果)
为什么要明白这个图的原理?
单片机是一个弱电器件,一般情况下它们大都工作在5V甚至更低.驱动电流在mA级以下.而要把它用于一些大功率场合,比如控制电动机,显然是不行的.所以,就要有一个环节来衔接,这个环节就是所谓的"功率驱动".继电器驱动就是一个典型的、简单的功率驱动环节.在这里,继电器驱动含有两个意思:一是对继电器进行驱动,因为继电器本身对于单片机来说就是一个功率器件;还有就是继电器去驱动其他负载,比如继电器可以驱动中间继电器,可以直接驱动接触器,所以,继电器驱动就是单片机与其他大功率负载接口.这个很重要,因为,一直让我们的电气工程师(我指的是那些没有学习过相应的电子技术的)感到迷惑不解的是:一个小小的芯片,怎么会有如此强大的威力来控制像电动机这样强大的东西?
怎么样理解这个电路图?
要理解这个电路,其实也比较容易.那么请您按照我的思路来,应该没有问题:
首先的,里面的三极管很重要.三极管是电子电路里很重要的一个元件.怎么样理解三极管呢?
简单的来说三极管有两个作用一个是放大作用,一个是开关作用.(严格来讲开关作用是放大作用的极限情况,不过没关系,把两者分开,更便于理解它的工作原理).在这里,我们只了解它跟本电路有关的开关作用.
首先把三极管想成一个水龙头.
按此在新窗口浏览图片
上面的Vcc就是水池,继电器是一个水轮机,下面的GND是比水池低的任何一点.刚才说过,三极管就是水龙头,它的把手就是那个带有电阻的引脚.
现在,单片机的某一个需要控制这个继电器电路的输出引脚就是一只"手",当单片机的这个引脚输出低电平的时候,就像"手"在打开三极管"水龙头",水就从上往下流,继电器"水轮机"就开始转起来了.反之,如果是输出高电平,"手"就开始关"水龙头",继电器"水轮机"因为没有水流下来,就会停止.
这就是三极管的开关作用.
简单的理解和记忆就是:三极管是一个开关器件,其实你真的可以将它看成是一个开关,只不过它不是用手来控制,而是用电压(电流)来控制的,因此,三极管有些时候也被称做电子开关(与机械开关相区别).

图上还有一个东西,是保护二极管,如果不需要深入理解的话,你大可不必追就为什么有它存在,但是一定得记住,只要是用三极管驱动继电器的场合,一般都有它的存在.需要特别注意的是它的接法:并联在继电器两端   阴极一定是接Vcc

本文为原创,转载请注明出处.  机器文学

点击此处查看原文 >>

系统分类: 工业控制   |    用户分类:    |    来源: 原创

评论(1) | 阅读(3172)
2下一页总共 , 当前 /