EDN首页   博客首页

最新日志

发表于:2008-8-22 16:30:33
标签:无标签

2

USB接口的51下载板,方便笔记本用户下载

        采用CH340将USB转成虚拟串口,可用于串口下载程序的单片机,如STC系列的 ,CH340是一个USB 总线的转接芯片,实现USB 转串口、USB 转IrDA 红外或者USB 转打印口。

完整电路pdf

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

评论(0) | 阅读(266)
发表于:2008-7-18 21:24:35
标签:IA4421  无线模块  

2

基于IA4421的无线模块设计

     官方提供的是基于PIC单片机控制的评估板,由于不懂PIC单片机,就把官方的改成了51单片机控制,重新制版了。

     首先说下IA4421的特性吧,资料如下:

        IA4420/21是Integration Associates公司推出的射频收发一体芯片,IA4420工作在315/433/868/915MHz频段,IA4421工作在433/868/915MHz频段。芯片的工作电压为2.2~5.4V,采用低功耗模式,待机电流为0.3μA,采用FSK调制模式,发射功率为5~8dbm,接收灵敏度为-109dbm,内置时钟输出,可省掉MCU的晶振。IA4420/21具有高数据传输速率,数字信号的传输速率可达115.2kbps,模拟信号的传输速率可达256kbps。
        IAI系列FSK调制无线射频IC:IA4220,IA4221,IA4320,IA4420,IA4421 外围器件很少,只要两三颗小电容和一个10M Cystal, 对其精度无特殊要求(具备自动频率控制,可确保收发器自动调整到输入信号的频率,有了自动频率控制,制造商可以选择更低精度晶体而依然保证满意的频率调制效果。)
        其主要特点:
        单片全集成
        频段:315, 433, 868, and 915 MHz bands.具体频率范围310M-320M,2.5K选频步长;430M-440M,2.5K选频步长;860M-880M,5K选频步长;900M-930M,7.5K选频步长。

        当初选这款芯片就是看中天线设计简单,但芯片相当难搞到,不提供免费样片,这点就没TI做得好了,毕竟它还能提供部分射频芯片的样片。

       下面就是我设计的电路,具体实现就不说了

点击看大图        

      再附上实物图吧

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

评论(14) | 阅读(480)
发表于:2008-6-4 18:29:04
标签:基于51单片机的可编程多媒体控制器  

3

基于51单片机的可编程多媒体控制器

      系统简介:
        通过操作可携带的触摸式控制器,实现对计算机中多媒体播放软件的控制。实现方法为制作控制器的硬件部分、计算机软件部分,配合完成对播放软件的控制。
        本系统的硬件部分由高速单片机STC12C5410、128x64点阵图形LCD、CP2102、3.5英寸的触摸屏和触摸屏控制芯片TSC2000构成。
        软件部分开发基于Winamp消息插件和CP2102驱动提供的API接口,整个上位机控制程序主要用VB编写,具有良好的界面显示,可实时监控播放器状态。
       本作品采用独立模块结构,易于扩展功能和二次开发。设备连接机制本身对控制距离没有要求,移动性、操作性较强;计算机用户侧支持远程键盘模拟、软件流程操作,可实现基于本控制器的流程控制;设备采用USB接口(CP2102以被配置成标准USB通信,并非USB转串口功能),确保了设备的兼容性;用户软件使用GDI+技术增加了界面豪华性。

        系统框图:

 

贴几张图片:

         除了最先下面的播放控制按钮外,其它地方也均可触摸,最上面,按左右两侧可分别控制音量减小增大。中间实时滚动显示歌曲名和播放进度(所有数据均从PC端发过来,图形方式绘制),进度条可拖动。

感谢[TC]帮我完成的PC端多媒体控制软件

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

评论(11) | 阅读(1020)
发表于:2008-6-2 21:20:27
标签:在51单片机中实现触摸屏  

1

在51单片机中实现触摸屏

    触摸屏控制芯片采用TI公司的TSC2000,该芯片有 8/10/12 125Khz ADC SPI 接口的4 线可编程触摸屏控制器,可直接返回触摸屏的XY坐标,方便于51单片机处理触摸屏数据。

       触摸屏结构如下图:

    电路:

    点击看大图

       TSC2000的C51驱动

/***********************************************************/

显示屏使用LCD128X64,在128x64范围实现8x4个触摸按键

***********************************************************/

sbit MISO =P2^7;
sbit DAV = P2^6;
sbit MOSI = P2^5;
sbit SS = P2^4;
sbit SCLK =  P2^3;

sbit SBIT = ACC^0;

uint16 X,Y;
uint16 LCD_X,LCD_Y;


void SPIstart() //SPI开始
{
     SS="1";
     MOSI="1";
     SCLK="0"; 
}

void SPI_Write(uint16 sidata)
{
     uint8 n;
     uint16 temp = sidata;
     SCLK = 0;
     for(n=0;n<16;n++)
    {
           SCLK = 0;              //设置SCK为低电平
           temp<<=1;   //数据左移一位  
           MOSI = CY;
           _nop_();_nop_();_nop_();    //延时
           SCLK = 1;              //设置SCK为高电平
           _nop_();_nop_();_nop_();    //延时

     }
     SCLK = 0; 
}

uint16 SPI_Read(void)
{
      uint8 n = 0;
      uint16 TSC_DATA = 0;

      for(n=0;n<16;n++)    
      {
            TSC_DATA<<=1;
            SCLK = 1;
            _nop_();_nop_();_nop_();    //下降沿有效
            SCLK = 0;
             _nop_();_nop_();_nop_();    //延时
            if(MISO)
                 TSC_DATA++;    
      }
      return(TSC_DATA);
}

void TSC_Write(uint16 CmdWord,uint16 DATAWord)
{
      uint8 i;
      _nop_();_nop_();_nop_();    //延时
      SS = 0;
      SPI_Write(CmdWord);
      for(i=0;i<10;i++);    //延时
           SPI_Write(DATAWord);
      SS = 1;  
}

void TSC_Read(uint16 CmdWord)
{
      uint8 i;
      while(DAV)
            ;

      {
            SPIstart();
            _nop_();_nop_();_nop_(); //延时
            SS = 0;
            SPI_Write(CmdWord);
            for(i=0;i<10;i++);    //延时
            X = SPI_Read();
            for(i=0;i<10;i++);    //延时
            Y = SPI_Read();
            SS = 1;
      }
}

uint8 LCD_XY()
{
       TSC_Read(0x8000);

       if(X>488&&X<=1021)
             LCD_Y = 0; 
       else if(X>1021&&X<=1554)
             LCD_Y = 1;
       else if(X>1554&&X<=2087)
             LCD_Y = 2;
       else if(X>2087&&X<=2620)
             LCD_Y = 3;
       else
       {
             return 0;
        }

       if(Y>200&&Y<=622)
             LCD_X = 7;
       else if(Y>622&&Y<=1044)
             LCD_X = 6;
       else if(Y>1044&&Y<=1466)
             LCD_X = 5;
       else if(Y>1466&&Y<=1888)
             LCD_X = 4;
       else if(Y>1888&&Y<=2310)
             LCD_X = 3;
       else if(Y>2310&&Y<=2732)
             LCD_X = 2;
       else if(Y>2732&&Y<=3154)
             LCD_X = 1;
       else if(Y>3154&&Y<=3576)
             LCD_X = 0;   
       else
       {     
             return 0;
        }

        return 1;
}

void TSC_Initial()
{

      SPIstart();

      TSC_Write(0x0800,0xC8A2);
      TSC_Write(0x0860,0x0017);
      TSC_Write(0x08A0,0x000A);
      //TSC_Write(0x08C0,0xCBAD);
      TSC_Write(0x8000,0x03FF);
      TSC_Write(0x0800,0x87A2); 
}

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

评论(8) | 阅读(393)
发表于:2008-6-1 22:12:36
标签:无标签

0

评论(0) | 阅读(208)
总共 , 当前 /