最新日志

发表于:2008-5-9 21:12:16
标签:无标签

0

AVR 与 12864 做的时钟

代码:
20:03 2008-5-9#include <avr/io.h>
#include <avr/signal.h>
#include <avr/interrupt.h>
#include <avr/delay.h>
#include <avr/wdt.h>
#include <avr/eeprom.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


#define uchar unsigned char
#define uint unsigned int
#define xtal 8
#define CS  PA5
#define SID  PA6
#define SCLK PA7

#define Set_CS() DDRA |= (1<<CS);PORTA |= (1<<CS)
#define Set_SID() DDRA |= (1<<SID);PORTA |= (1<<SID)
#define Set_SCLK() DDRA |= (1<<SCLK);PORTA |= (1<<SCLK)

#define Clr_CS() DDRA |= (1<<CS);PORTA &=~(1<<CS)
#define Clr_SID() DDRA |= (1<<SID);PORTA &=~(1<<SID)
#define Clr_SCLK() DDRA |= (1<<SCLK);PORTA &=~(1<<SCLK)

#define  HH  2     //定义  时  为2
#define  MM  1     //定义  分  为1
#define  SS  0     //定义  秒  为0

volatile unsigned char Time_h_m_s[3]={0,0,0};   //时间的 时  分  秒  存贮单元
volatile unsigned char flash_sign=0x00;
//====================================================================
//函数声明
void Delay(uint ms);      //延时子程序
void Serial_W_1byte_to_LCD(uchar RS, uchar W_data);
void Serial_send_cmd(uchar send_cmd);
void Serial_send_data(uchar send_data);
void Write_8bits(uchar W_bits);
void LCD_Init(void);
void Serial_send_string_to_xy(uchar row, uchar col, uchar *p);
void Display_clock1(uchar row, uchar col, uchar *time);

/*=============================================================
功能: TIMER2溢出中断函数
=================================================================*/

SIGNAL(SIG_OUTPUT_COMPARE2)     // _VECTOR(3) 
{  
  static unsigned char half_second; 
  if((++half_second)>=2)
   { 
     if((++Time_h_m_s[SS])>=60)
      {
           Time_h_m_s[SS] = 0;
           if((++Time_h_m_s[MM])>=60)
            {
          Time_h_m_s[MM] = 0;
          if((++Time_h_m_s[HH])>=24)
            Time_h_m_s[HH] = 0;
            }        
      }
         half_second = 0x00;     
    }        
  flash_sign &= 0x01;    
  flash_sign ^= 0x01;            //置位闪动标志位(该位为0时闪动)



 /*******************************************************************
函 数 名:Port_init
入口参数:无
出口参数:无
建立日期:2008年05月09日
修改日期:
函数作用:MCU端口初始化函数
说    明:
********************************************************************/
 void Port_init(void)
 {
    DDRC = ~(1<<DDC6);
    PORTC = 0x00;        
    
   ASSR |= (1<<AS2);             //允许Timer2用TOSC1脚的时钟信号
   TIMSK |= (1<<OCIE2);             //允许定时器2比较匹配中断允许
   TCCR2 |= (1<<WGM21)|(1<<CS22)|(1<<CS21);  //CTC模式 ,256分频
   OCR2 = 63;
 }
/*******************************************************************
函 数 名:Serial_send_string
入口参数: *p_send_data
出口参数:无
建立日期:2008年05月09日
修改日期:
函数作用:发送字符串子函数
说    明:
********************************************************************/
void Serial_send_string(uchar *p_send_data)
{
  uchar *p_temp;
  p_temp = p_send_data;
  while(*p_temp != 0)
    {
          Serial_send_data(*p_temp++);
        }
}

//===================================================================*/
/********************************************************************
函 数 名:Serial_send_string_to_xy
入口参数:row,col,*p
出口参数:无
建立日期:2008年04月13日
修改日期:
函数作用:
说    明:
********************************************************************/
void Serial_send_string_to_xy(uchar row, uchar col, uchar *p) 

   switch(row)
    {
          case 0:Serial_send_cmd(0x80+col);
                  break;
          case 1:Serial_send_cmd(0x90+col);
                  break;
          case 2:Serial_send_cmd(0x88+col);
                  break;
          case 3:Serial_send_cmd(0x98+col);
                  break;
          default: break;
    } 
 while(*p != 0)
 {
  Serial_send_data(*p++); //写数据到RAM
 }
}

/********************************************************************/
int main(void)
{
 PORTA = 0XFF;   //
 DDRA = 0XFF;   //PA口全部设为输出模式
 Port_init();
 Clr_CS();
 Clr_SID();
 Clr_SCLK(); 
 LCD_Init();
 Delay(10);
 LCD_Init();     //初始化两边是关键,否则液晶上电重起将不能显示
 sei();  //开总中断 
 while(1)
 { 
  asm("nop");
  asm("nop");  
  Serial_send_cmd(0x30);  //基本指令集,,绘图显示OFF
  //Serial_send_cmd(0x01);  //清除显示    
  Serial_send_string_to_xy(0, 0, "现在时间:");
  Display_clock1(1, 3,Time_h_m_s);
 }
    
}
/*******************************************************************
函 数 名:LCD_Init
入口参数:无
出口参数:无
建立日期:2008年05月09日
修改日期:
函数作用:12864液晶初始化函数
说    明:
********************************************************************/
void LCD_Init(void)
{
  uchar cmd;
 Delay(50); 
  cmd=0x30;   //功能设置 8位数据,基本指令
 Serial_send_cmd(cmd);
 Delay(20);
 cmd=0x0C;   //显示状态 ON,游标OFF,反白OFF
 Serial_send_cmd(cmd); //写指令
 Delay(20);
 cmd=0x01;   //清除显示
 Serial_send_cmd(cmd); //写指令
 Delay(20);
 cmd=0x02;   //地址归位
 Serial_send_cmd(cmd); //写指令
 Delay(20);
 cmd=0x80;   //设置DDRAM地址
 Serial_send_cmd(cmd); //写指令
 Delay(20);   //延时
}
/*******************************************************************
函 数 名:Serial_send_cmd
入口参数:cmd
出口参数:无
建立日期:2008年4月13日
修改日期:
函数作用:写一个字节指令的到12864液晶,
说    明:
********************************************************************/
void Serial_send_cmd(uchar send_cmd)
{
  Serial_W_1byte_to_LCD(0, send_cmd);
}
/*******************************************************************
函 数 名:Serial_send_data
入口参数:cmd
出口参数:无
建立日期:2008年4月13日
修改日期:
函数作用:写一个字节数据到12864液晶,
说    明:
********************************************************************/
void Serial_send_data(uchar send_data)
{
  Serial_W_1byte_to_LCD(1, send_data);
}



/*******************************************************************
函 数 名:Serial_Serial_W_1byte_to_LCD_to_LCD
入口参数:RW、RS、W_data
出口参数:无
建立日期:2007年3月3日
修改日期:
函数作用:写一个字节的数据到12864液晶,包括指令和数据
说    明:RW=1,从液晶读数据到MCU;RW=0,写一个数据到液晶;
   (一般RW都设为0,即只向液晶写数据,不读数据)
          RS=1,写入的是数据;RS=0,写入的是指令;
    一般模式:RW=0,RS=1;写数据
       RW=0,RS=0;写指令
********************************************************************/
void Serial_W_1byte_to_LCD(uchar RS, uchar W_data)
{
 uchar H_data,L_data,S_ID = 0xf8;  //11111 RWRS 0
 
 if(RS == 0)
  {
    S_ID &= ~0x02;
  }
 else     //if(RS==1)
  {
    S_ID |= 0X02;
  }
 H_data = W_data;
 H_data &= 0xf0;   //屏蔽低4位的数据
 L_data = W_data;  //xxxx0000格式
 L_data <<= 4;     //xxxx0000格式
 L_data &= 0xf0;   //屏蔽高4位的数据
    
 Set_CS();
 asm("nop");
 asm("nop");
 Write_8bits(S_ID);   //发送S_ID
 asm("nop");
 Write_8bits(H_data); //发送H_data
 asm("nop");
 Write_8bits(L_data); //发送L_data
 asm("nop");
 Clr_CS(); 
}
/********************************************************************
函 数 名:Write_8bits
入口参数:W_bits
出口参数:无
建立日期:2007年3月3日
修改日期:
函数作用:负责串行输出8个bit位
说    明:
********************************************************************/
void Write_8bits(uchar W_bits)
{
 uchar i,Temp_data;
 Temp_data = W_bits;
 for(i=0; i<8; i++)
 {  
   if((Temp_data&0x80)==0)
    {
      Clr_SID();
    }
   else
    {
     Set_SID();
    } 
   asm("nop");
   asm("nop");   
   Set_SCLK();
   asm("nop");
   asm("nop");   
   Clr_SCLK();
   asm("nop");
   asm("nop");  
   Temp_data <<= 1;  
 }
 Clr_SID();
}
/********************************************************************
函 数 名:Delay
入口参数:ms
出口参数:无
建立日期:2007年3月3日
修改日期:
函数作用:毫秒级的延时程序,当晶振为12Mhz时,xtal=12;
说    明:
********************************************************************/
void Delay(uint ms) 

    uint i; 
    while(ms--)    
   { 
     for(i=1;i<(uint)(xtal*143-2);i++) 
         ; 
   }   
}

/********************************************************************
函 数 名:Display_clock1
入口参数:row,col,*time
出口参数:无
建立日期:2008年05月09日
修改日期:
函数作用:
说    明:
********************************************************************/
void Display_clock1(uchar row, uchar col, uchar *time) 

  unsigned char  c_data[16];
  switch(row)
    {
          case 0:Serial_send_cmd(0x80+col);
                  break;
          case 1:Serial_send_cmd(0x90+col);
                  break;
          case 2:Serial_send_cmd(0x88+col);
                  break;
          case 3:Serial_send_cmd(0x98+col);
                  break;
          default: break;
    }
        
    utoa(time[HH]/10,c_data,10);
    Serial_send_string(c_data);
        utoa(time[HH]%10,c_data,10);
    Serial_send_string(c_data);
        
        if(flash_sign==0x00)
         Serial_send_string(":");
        else
     Serial_send_string(" ");    
        
        utoa(time[MM]/10,c_data,10);
    Serial_send_string(c_data);
        utoa(time[MM]%10,c_data,10);
    Serial_send_string(c_data);
        
        if(flash_sign==0x00)
         Serial_send_string(":");
        else
     Serial_send_string(" ");  
        
        utoa(time[SS]/10,c_data,10);
    Serial_send_string(c_data);
        utoa(time[SS]%10,c_data,10);
    Serial_send_string(c_data);
}

点击此处查看原文 >>

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

评论(0) | 阅读(59)
发表于:2008-5-9 21:03:37
标签:无标签

0

电子类相关网站

 

http://www.cyfronika.com.pl/BDM/willem.html
http://www.cyfronika.com.pl                                             
国外好网站
http://www.william.com.cn/atmel/index.asp#                              ATMEL
中文推广
http://dzxx.cn-dz.com 
http://dzxx.mlyhs.com
http://bes.8u8.com/pcb/k.htm                                 
热转印制板的详细过程                              
http://www.teachersong.com/index1.htm                         
宋容个人教学单片机
http://www.etuni.com/index.asp                               
下载,论坛,特好!
http://www.pcbtech.net/                                       
中国PCB技术网
http://allgames.gamesh.com/emu/host/ediy/dpj/mcuy10a.htm
http://sdkh.51.net/dz/atm89.htm
http://www.mcudiy.com/index.htm                     AVR
开发!
*****
http://www.szhr.com.cn/mainframe.html                         
深圳市人才市场招聘
http://shada.ocnc.net/laf/                                    tc
教程                              
http://www.89s51.com/article/ArticleShow.asp?ArticleID=26     keil c
教程
http://lightingchina.com/
http://www.wenrun.com/

http://lightingchina.com/member/vipunit_cp.asp?unitid=9993    LED
http://www.mcu21cn.com/default.asp                           
单片机
http://www.jinjubao.com/                                     
聚宝盆
http://www.fjmcu.com/
http://www.mcustudy.com/cpld/ispexpert.pdf                    cpld
http://www.21icbbs.com/club/bbs/ShowAnnounce.asp?v=&ID=663163        AVR
http://www.teachersong.com/                            pic
单片机
http://elec.51.net/cpzz.htm                           
遥控  
http://www.21icsearch.com/pmcu/dpjjx/ndpjjx.htm 
http://www.mcustudio.com/dpjjx/cteach/learnC.htm       
学单片机了
http://www.jlste.com.cn                               
自考
http://hjwang.xiloo.com/index2.html                   
电话控制                                                    
http://hlbds.xiloo.com/index.htm                       
电子制作***
http://www.c51bbs.com/c51src.htm                       C51
咨询网
http://hjwang.xiloo.com/ic1/main_ic3.htm               
实用文章
http://www.amr-system.com.cn/default.htm               
电力线载波
http://202.117.27.64/ziliao/www.daqchina.net
http://www.netdzb.com/zhongyao/zywz.asp               
电子报
http://www.yxdz.com.cn/docc/yxdz9.htm                 
防盗
http://www.szintech.com/gpstech/tech2.htm              GPS
jdtwpublic@sina.com
http://www.58ic.com/emccomm.asp                        IC
介绍
http://wuming.3322.net/index1.htm                      Protel
入门
http://ecad.51.net/                                    Protel
入门
http://www.mcustudy.com                                   
单片机

http://www.xiao-qi.com/cpld/cpld.php3                  CPLD
http://www.atnet1000.com/                             
自动化

www.datasheetlocator.com                              
世界IC资料

http://topinc.126.com                                  IC
资料及制作***

http://www.netdzb.com/bbs/listbbs.asp?boardid=8&page=27 
电子BBS***

http://a51.nease.net/index.htm                         
单片机***

http://www.chinadz.com/index/                         
资料联盟

httt://gddq.126.com

http://www.jimmyjun.8u8.com/dianzizhizou/j.htm         
语音识别

http://dada.tongtu.net/                               
大大电子

http://www.jlste.com.cn/bbs/detailTable.asp?id=9208
http://www.ioor.net/hseda/main.htm                     ******
http://www.mcu51.com/download/digitpdf/40xx/关于4000系列资料
http://www.mcu51.com/download/digitpdf/45xx/关于4500系列资料
http://www.mcu51.com/download/digitpdf/74xx/关于7400系列资料
http://www.mcu51.com/download/RS485note.pdf关于RS485的资料
http://www.mcu51.com/download/binhex.com工具
http://www.mcu51.com/download/hexbin.exe工具
http://www.mcu51.com/download/c51eval.zip关于C51的资料
http://www.mcu51.com/download/digitpdf/CPU/关于CPU的资料
http://www.maxim-ic.com.cn/Max1800-2690/MAX220-M.PDF资料
http://www.maxim-ic.com.cn达拉斯公司主站
http://etuni.com/downdata.asp?id=832&C51Tip.pdf关于C51的资料
http://www.mcu-tech.com/download/c51%20user1.pdf关于C51的资料
http://www.laogu.com/download/c51ctl.zip关于C51的资料
http://etuni.com/downsoft.asp?id=118&KeilC51v612.zipC51中文资料
http://www.whwave.com.cn/wsjiaocai.htm教材、资料
http://www.whwave.com.cn/WWIC.htm部分IC资料
http://www.whwave.com.cn/FM24CXX.htm关于24系列资料
http://www.hongyan-e.com/web/dzbic.htm部分IC资料
http://www.cetinet.com/downloadtemp/chuankouzsV2.1.zip免费串口调试器
http://www.atmel.com/dyn/products/param_table.asp?family_id=604&OrderBy=part_no&Direction=ASC关于ATEML全系列资料


1. 中国电子网(http://www.21ic.com/
2.
中国电子资料网(http://www.chinadz.com/
3.
广州电子技术网(http://gzdzw.51.net/
4.
中国电子行业信息网(http://www.ceic.gov.cn/
5.
电子制作天地(http://www.dzdiy.com/
6.
电子爱好者(http://www.etuni.com
7.
电子工程师(http://www.eebyte.com
8.
电子空间资讯(http://go.163.com/~rihuri
9.
老古开发网(http://www.laogu.com/
10.
单片机产品设计中心(http://www.syhbgs.com/
11. 51
单片机世界(http://wwwmcu51.com/
12.
平凡的单片机(http://teach51.yeah.net/
13.
周立功单片机世界(http://www.zigmcu.com/
14.
嵌入开发网(http://www.embed.com.cn/
15. Microchip
公司中文网站(http://microchip.com.cn
16. Atmel
公司英文网站(http://www.atmel.com/
17.
茂林电子继承电路专页(http:/www.maolin.com.ccircuit/main.htm
18.
中国集成电路网(http://www.chinaicip.com/
19. IC
交易网(http://ic.net.cn/
20. IC
商务网(http://www.buy-ic.com/
21.
集成网(http://ic-net.com.cn/
22.
电子元器件世界(http://www.ic-world.net/
23.
元器件在线(http://www.56789.com/
24.
中华IC网(http://www.sinoic.com/
25.
盛名零件网(http://www.icminer.com/
26.
网络半导体数据库(http://www.bgs.nu/sdw/
27.
中国PCB技术网(http://pcbtech.net/
28. PCB
信息网(http://www.pcbinfo.net/
29. EDA2000(
http://www.myeda.org/cn/)
30. EDA
中国论坛(http://www.edachina.com/
31.
可编程逻辑器件(http://www.pld.com.cn/
32.
宇成设计(http://ecdesign.my163.com/
33.
吴鸣工作站(http://wuming.3322.net/
34. PCB
世界(http://www.pcbworld.net/

点击此处查看原文 >>

系统分类: PCB   |    用户分类:    |    来源: 转贴

评论(0) | 阅读(70)
发表于:2008-4-10 0:04:46
标签:无标签

1

今天一个网友请教关于PADS Logic与PADS Layout互联的方法。我把方法写下来,希望对各

今天一个网友请教关于PADS Logic与PADS Layout互联的方法。我把方法写下来,希望对各位有帮助。也希望各位兄弟多多指教。点击下载

点击此处查看原文 >>

系统分类: PCB   |    用户分类:    |    来源: 原创

评论(0) | 阅读(285)
发表于:2008-3-22 0:15:43
标签:无标签

0

需要一生去领悟的爱

你最爱最爱的,往往没有选择你;最爱你的,往往不是你最爱的;而最长久的,偏偏不是你最爱的也不是最爱你的……
  没有人是故意要变心的,他爱你的时候是真的爱你,可是他不爱你的时候也是真的不爱你了,他爱你的时候没有办法假装不爱你,同样地,他不爱你的时候也没有办法假装爱你。
  当一个人不爱你要离开你,你要问自己还爱不爱他,如果你不爱他了,千万别为了可怜的自尊而不肯离开;
  如果你还爱他,你应该希望他过得幸福快乐,希望他跟真正的所爱在一起,绝不会阻止;
你要是阻止他得到真正的幸福,就表示你已经不爱他了,而如果你不爱他,你又有什么资格指责他变心呢?

  爱不是占有!你喜欢月亮,不可能把它拿下来放在脸盆里,但月亮的光芒仍可照进你的房间。
  换句话说,你爱一个人,也可以用另一种方式拥有,让爱人成为生命里的永恒回忆。
  弥漫轻愁的音乐回旋往复,委婉伤感的文字峰回路转,催得我们泪流满面。美丽总是与感伤结伴。
  我只知道这其实是人生常识,是每个人清醒时都明白都能侃侃而谈然,而却要用一生来参悟来身体力行的真谛。
我将之称为绕口令,与别的绕口令不同的是,爱是绕不过去的,它横亘在每个人的人生路口,将青春飞扬激情满怀的你逮住了,没有人可以成为漏网之鱼,无论你以何种姿势与她面对。
  真正的胜利者不是你我他,是时间!它才是谋杀爱情的元凶,它让你为爱疯狂,同时它不露痕迹地摧残你的爱情它从来不为你的情绪改变自己的步伐,哪怕你苦苦恳求它也不肯稍作停留,甚至你看不到它无视一切的面影,所以春宵总是苦短,而伤痛却是漫漫;
  所以离别总是飞快,而等待却是长久;所以爱稍纵即逝,而人生却一片渺茫我们没有办法把握所爱的回应,我们只能将自己爱的消息传递;我们没有办法把握得到,我们只能把握自己的付出;我们没有办法保证天长地久,我们只能用心经营。
  但是,如果我们能把有限的光阴用全心的付出、用真我的情感、用深情的思念、用美丽的回忆堆积,那么谁又能说我们的人生没有意义?如果我们一生都在执着地投入爱这场扑朔迷离的游戏,谁又能说我们没有真正爱过?

天空一朵一朵雪花一阵一阵寒风刺进我心头
你的天真美丽笑容掩饰所有哀愁靠在我胸口
为何你的吻如此冰冷
为何你的眼角泪在流
我知道我们走到缘分的尽头
你说再也没有天长地久的厮守
给我最后一次的温柔
从此分开手 再没有 没有以后
你说再也不能天涯海角一起走
给我最后一次的温柔
转身不回头 不停留 任爱在雪中颤抖
突然那么多年感情那么多年守候都化为乌有
不要再说什么理由再说什么借口 我不会强求
你用最后一次的温柔换我最后一次的放手
我知道我们走到缘分的尽头
你说再也没有天长地久的厮守
给我最后一次的温柔
从此分开手 再没有 没有以后
你说再也不能天涯海角一起走
给我最后一次的温柔
转身不回头 不停留 任爱在雪中颤抖

点击此处查看原文 >>

系统分类: 生活点滴   |    用户分类:    |    来源: 整理

评论(0) | 阅读(166)
发表于:2008-3-16 2:10:24
标签:无标签

0

RS485通讯IC 75176B电路图

RS485通讯IC   75176B电路图点击看大图

点击此处查看原文 >>

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

评论(0) | 阅读(600)
发表于:2008-3-12 21:08:32
标签:无标签

0

PCB设计规范

1.        概述

建立PCB板设计、制作规范,可以统一设计风格,提高工作效率,避免出现不必要的重复工时浪费。

PCB设计的总则如下:

l          外观大方:器件选择合适,布局布线合理,尺寸比例协调,文字说明清晰。

l          电路可靠:良好的连线方式,合适的封装与焊盘尺寸,较强的电磁兼容能力。

l          接口友好:符合通常的操作习惯,向操作者提供意义明确的提示。

l          工艺良好:能为批量化生产提供良好的加工条件。

2.        说明

2.1      使用软件

此文档所涉及的软件为Protel 99 se SP6版。该软件主要包含4个模块:SCHPCBPLDSIM模块,文档中的操作以PCB模块为准。

2.2      尺寸标准

此文档所涉及的尺寸均采用英制,以mil为单位。英制与公制的转换公式如下:

100 mil 2.54 mm    即    4 mil 0.1mm

3.        电路元素

3.1      电路板(CircuitBoard

电路板是安装电路元件的载体。按功能区分,可分为单面板、双面板、多层板等。按材质区分,可分为纸基板、环氧聚脂板。

除上述说明外,电路板的厚度也是制作时的主要选择参数,其厚度有0.5mm2.0mm。一般情况下,邦定板、单面板选择较薄的尺寸,双面板、大面积板选择较厚的尺寸。

设计时,电路板需划分为不同的层。以双面板为例,可分为:

l    TopLayer(元件面层):电路板正面,可布信号线。

l    BottomLayer(焊接面层):电路板背面,可布信号线。

l    Top Overlayer(元件面丝印层):电路板正面的丝网印刷,可布元件标识符、说明文字。

l    Bottom Overlay(焊接面丝印层):电路板背面的丝网印刷,当仅单面放置元件时,此层可不用。

l    Mechanical1 Layer(机械尺寸层):标注尺寸,或设定电路板外观,或设置板上的安装孔。

l    Keepout Layer(禁止布线层):设置自动布线算法中不允许放置信号线的区域。

l    Multi Layer(钻孔层):设置焊盘、过孔的钻孔尺寸。

对于电路板的外形,应根据应用场合、安装尺寸作具体的分析与考虑。

一般应用时,可将电路板设计成具有黄金分割比的长方形,四角应具有按一定比例的圆弧。

3.2      导线(Track

导线位于为信号层,即为信号线、电源线;导线位于其它层,即为设置线,用于设置布线范围、电路板外观等。

导线宽通常 ≥ 8mil;极限值 ≥ 5mil。线间距 通常 ≥ 8mil;极限值 ≥ 5mil。若布线条件允许,电源线、地线可在一定范围内(≤ 80mil)增加宽度。

设置线的宽度为 8mil

3.3      焊盘(Pad

焊盘用于承载元件管脚,用焊锡将元件与电路板连接在一起。

按常规应用区分,焊盘分为通孔(Multilayer)焊盘、表面(SMD)焊盘两种。

对于通孔焊盘,需要设置焊盘形状、尺寸、孔径。形状主要有圆形(Round)、方形(Rectangle)、八角形(Octagonal)三种,应根据实际元件的引脚形状选择。尺寸应保证留有足够的焊接空间,一般比孔径大20-40mil。孔径需比元件管脚的实际尺寸大4-8mil

部分元件管脚尺寸参考:瓷片电容为16 mil;双列DIP集成电路为28 mil;直插排针为32mil;电解电容为32-36 mil;二极管IN400136 mil。注意:部分焊盘的孔并不能设置为圆形(例如:电源插座的管脚一般为长方形),需在图纸上加以标注,并在工艺文件中加以说明。

对于表面焊盘,需要设置焊盘形状、尺寸。形状应根据实际元件的管脚形状选择。尺寸应比实际焊盘尺寸大 4-12mil。此类焊盘的孔径为 0mil (即无孔)。注意:在表面焊盘的附近区域(< 12mil)内,不允许放置通孔焊盘或过孔,以防止在生产中进行回流焊时焊锡流失。

所有焊盘上不放置阻焊油墨。

3.4      过孔(Via

过孔用于连接不同信号层之间的导线。过孔不能与焊盘混为一谈。

过孔需要设置过孔孔径、孔盘尺寸。通常的设置是:孔径≥ 12mil,孔盘尺寸孔径+16mil

过孔的载流量越大,所需的孔径尺寸越大,如与电源线和地线相连接所用的过孔就要大一些。但过孔不宜设置过大,这将影响电路的外观。

过孔上允许放置阻焊油墨。

3.5      标注(DesignatorComment

标注用于说明元件的型号、器件标号。

一般情况下,元件仅标注标号,而不标注型号。需特别标识的元件例外。

标注需要设置尺寸。通常的设置是:标注字符高度 40-60 mil,字符宽度6-10 mil

标注的放置应排列整齐,便于查找。标注不得放置于焊盘上。标注也不能放置于无法视及的区域。

标注字符布置原则:不出歧义,见缝插针,美观大方。

3.6      文字(String

文字标注于电路板上,提供给操作者一些辅助提示信息。

文字需要设置尺寸、字体。通常的设置是:标注字符高度 40-100 mil,字符宽度6-15 mil

在同一电路板上,所有的文字均具有统一的风格。

文字的放置规则同标注。

3.7      覆铜(Polygon

覆铜位于信号层,在电气特性上有较强的抑制高频干扰的作用,也可改善加工工艺。覆铜可分为网格式覆铜(GridSize> TrackWidth)或实心式覆铜(GridSize = TrackWidth),应根据实际电路类型进行选择。通常选用实心式覆铜,高频电路选用网格式覆铜。

通常,设置覆铜的电气网格尺寸≥ 20mil,覆铜与导线、焊盘、过孔的电气间距≥ 20mil。覆铜与同一网络内的过孔按直连方式(DirectConnect)连接,与焊盘按十字花盘方式(ReliefConnect)连接。

覆铜可设置为特定的形状。

3.8      安装孔

安装孔设定电路板的安装位置、方式。安装孔由绘制于机械尺寸层的圆所决定。

安装孔的直径与机械尺寸应能匹配。一般可设置为128mil(安装螺丝3.0mm)、148mil(一般推荐)、168mil(安装螺丝4.0mm)。

安装孔距离电路板的边距保持一致。一般可设置:安装孔圆心距电路板边距为200mil 240mil

安装孔不需作搪锡处理(非金属化)。

3.9      其他(Others

针对具体的电路设计,可采用内电层分割、补泪滴(Teardrops)等功能,提高电路的整体性能。

特殊应用的场合,可在阻焊层(TopSolderLayerBottomSolderLayer)、阻焊层(TopPasteLayerBottomPasteLayer)放置实心的图形区域(导线Track、填充Fill、圆弧Arc等),建立助焊区与阻焊区。

根据要求,可在电路板上增加中文文字、公司徴记。

4.        设计规范

4.1      关于原理图

原理图应整齐、紧湊、美观,原理正确,连线清晰,层次分明。

原理图可绘制为单张图纸或层次式图纸。

4.2      电路板设计前的准备

确定所使用的各种元件封装。有必要的话,制作特殊元件的封装库。

确认电路的功能,对单元电路可在实验板上用模拟运行方式验证。

确定电路板的合理尺寸。

电路板设计直接影响着应用系统的抗干扰能力。在设计电路板前,应认真考虑控制噪声源、减小噪声传播与耦合、减小噪声吸收等方面的思路。

4.3      布局

将电路板合理分区,通常可按以下分区:电源区、模拟电路区、数字电路区、功率驱动区、用户接口区。各个区按各自的电气特性放置元件,不可交叉放置元件。

布局原则:元件排列美观,并使各元件之间的导线尽可能短。

对于特殊的元件,放置规则如下:

l          连接件应放置于电路板的四周。

l          时钟器件应尽量靠近使用该时钟器件的元件。

l          噪声元件与非噪声元件的间隔要远。

l          IO驱动器件、功率放大器件尽量靠近电路板的四周,并靠近其所引出的接插件。

l          每个集成电路旁应放置一个104pF去耦电容,去耦电容尽可能靠近集成电路,引线应短而粗。

l          合理放置电源的去耦电容。当电路板尺寸较大时,可在适当位置增加电源的去耦电容。

4.4      布线

采用手工布线的方法,部分电路辅以自动布线。

信号线宽度合理,排列匀称,并尽可能减少过孔。信号线越短、越粗,信号传输就越好。

特别注意电源线、地线的放置。电源线、地线要尽量粗。若电路板上具有模拟电路区、数字电路区、功率驱动区,应使用单点接电源、单点接地原则。注意:模拟电路的地线不能布成环路。

l          时钟振荡电路、特殊高速逻辑电路部分用地线包围。

l          石英晶体振荡器外壳接地线,时钟线要尽量短。

l          石英晶体振荡器、噪声敏感器件下要布大面积覆铜,不应穿过其它信号线。

l          时钟线垂直于信号线比平行于信号线,所受干扰小;允许时,时钟线要远离信号线。

l          使用45°的折线布线,不要使用90°折线,这可以减小高频信号的发射。

4.5      元件封装

所有元件的封装,均需经过验证,才能放置于电路板上。选取元件时,优先考虑采用表面安装元件。

分立元件的封装形式应采用公司现有的标准封装库;表面安装元件的封装形式应采用生产厂家提供的封装库。

当新增元件时,应及时加入公司的元件封装库中,并在修改记录中说明。

4.6      连接件

选择合理的连接件,将有助于改善电路板的布局,使电路整体更美观。

采用国际标准的连接件,注意选择合适的外观尺寸、引脚间距(100mil80mil50mil)。

连接件附近标注清晰的文字,说明该连接件的功能。

连接件的放置应参考人们的使用习惯。连接件可统一安放于电路板的四周,方便操作。

4.7      用户接口

用户接口应放置于指定的区域,并符合通常的操作习惯。

用户接口的设置同连接件。

4.8      EMI

注意各类元件的分布,元件电源线、地线、信号线的排列方式,尽可能降低所设计电路的EMI,提高应用系统抗干扰的能力。

5.        应用技巧

5.1 焊盘与覆铜的连接

在大面积覆铜时,对应网络的元件管脚与该覆铜相连接,其管脚连接方式的处理需要综合考虑。从电气性能方面考虑,管脚与覆铜直接连接(DirectConnect)为好,但对元件的焊接就会存在一些不良隐患,如:焊接功率加大、容易造成虚焊等。因此,需兼顾电气性能与工艺需要,做成十字花焊盘(ReliefConnect)连接。这样,可提高工艺处理的可靠性。多层板中,管脚与覆铜、内电层的连接与此处理方法相同。

52 覆铜的设置

设置覆铜时,注意电气网格(GridSize)与线宽(TrackWidth)的尺寸设置。覆铜布线是依据该参数决定的。尺寸过小,通路虽然有所增加,但造成图形的数据量过大,文件的存贮空间也相应增加,对计算机造成的负担也重;尺寸过大,通路则会减少,对覆铜的外观会有影响。所以,需要设置一个合理的尺寸。标准元器件两腿之间的距离为 100mil,所以,该尺寸一般设置为10mil的整数倍,如:10mil20mil50mil等。另外,长度(Length)的设置也可参考以上参数。

53 多块电路板绘制于同一文件中

当多块不同的板绘制在一个文件中,并希望分割交货时,需要在机械尺寸层(Mechanical1 Layer)为每块电路板画一个边框,各电路板间留100mil的间距。

6.        设计检查

电路设计完成后,需认真检查电路板的设计是否符合规则、是否符合生产工艺的需求。一般来说,检查有如下几个方面:

l          原理图、PCB图是否完全一致?

l          导线、焊盘、过孔的尺寸是否合理,是否满足生产要求?

l          导线、焊盘、过孔、覆铜、填充之间的距离是否合理,是否满足生产要求?

l          电源线、地线的宽度是否合适,是否具有较低的的阻抗?地线是否具有加宽的可能?

l          信号线是否采取了最佳措施,如长度最短、加保护线等,输入线及输出线是否经过处理?

l          导线形状是否理想,有没有需要修改的导线?

l          模拟电路和数字电路部分是否有各自独立的地线?

l          文字、标注是否大小合适,排列合理?

l          工艺标注、阻焊标注、助焊标注是否合理,符合工艺要求和使用习惯?

l          多层板中的电源层、地线层设置是否合理? 

点击此处查看原文 >>

系统分类: PCB   |    用户分类:    |    来源: 整理

评论(1) | 阅读(324)
发表于:2008-3-3 1:08:40