虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

客车前轮摆振

  • 基于STC89C51的电子时钟设计

    多功能电子时钟的功能的电路具有实现显示时、分、秒,以(24小时)计时方式的功能;具有快速校准时、分、秒的其本功能;秒表/时钟功能的转换;具有整点报时的功能;还可以实现对时间的调整。由单片机、复位、时钟电路、晶振、LED数码管、按键、蜂鸣器组成。

    标签: 单片

    上传时间: 2015-07-06

    上传用户:ghycxz

  • matlab

    很好的混沌分岔程序,弹簧振子系统的matlab程序,有相图,分插图时序图等

    标签: 仿真 模拟

    上传时间: 2015-12-28

    上传用户:wangyunnan

  • NEC红外解码

    使用C51解码,红外编码NEC格式。晶振11.0592

    标签: 使用C51解码

    上传时间: 2016-02-02

    上传用户:pourout

  • AVR单片机转速表

    /****************************************************************                  外部晶振8M                  PA0~3:四位数码管的位选                  PB0~7:数码管的8位段选                  外部中断0用于计数                  定时器0溢出中断的定时为1ms                  说明 :检测到水流较小时,继电器延时1秒关闭  ******************************************************************/                #include<iom16v.h>   #include<macros.h>   #define uchar unsigned char   #define uint unsigned int       char led_7[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};  //数码管段选        char position[4]={0xfe,0xfd,0xfb,0xf7};//数码管位选        uint sumnum=0;  //用于记录1000ms内进入中断的次数        uint time=0;   //记录进入比较定时器0的次数        uint num=0;     //记录1ms内进入中断的次数        uint count=0;   //进入外部中断0的次数        uchar flag;        uint sumnum1;   //记录100ms内的数目       /***************************函数声明***************************/        void delay();        void display(uint m );        void init();        void init_0();        void init_2();    void _delay_us(uint l)   {        unsigned int i;        for(i=0;i<l;i++)        {        asm("nop");        }   }           /**************************主函数***********************************/       void main()   {        init();        init_0();        init_2();        while(sumnum<5)        {           PORTD=0XBF;           segdisplay(sumnum1);        }       while(1)       {           segdisplay(sumnum1);       }           }        /*************************扫描数码管时的延时函数*********************/        void delay()    {         uchar i,j;         for(i=6;i>0;i--)         for(j=225;j>0;j--);    }        /************************数码管显示函数*****************************/       void segdisplay( int temp)        {         int seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};         int temp1,temp2,temp3,temp4;         temp1=temp/1000;         temp2=(temp/100)%10;         temp3=(temp/10)%10;         temp4=temp%10;         DDRB=0xff;         DDRA|=0x0f;           PORTA=~BIT(3);           PORTB=seg[temp1];           _delay_us(100);           PORTA=~BIT(2);           PORTB=seg[temp2];           _delay_us(100);           PORTA=~BIT(1);           PORTB=seg[temp3];           _delay_us(100);           PORTA=~BIT(0);           PORTB=seg[temp4];           _delay_us(100);       }        /***********************管脚初始化函数*********************/        void init()    {                      DDRD|=0X40;   //PD4 设置为输出             PORTD=0XBF;                DDRA=0XFF;             DDRB=0XFF;             PORTA=0XFF;             PORTB=0XFF;    }        /***********************外部中断0初始化*********************/        void init_0()    {         MCUCR=0X02;   //INT0为下降沿触发         GICR=0X40;   //使能INT0中断         SREG=0X80;  //使能总中断    }        /**********************定时器2初始化***********************/        void init_2()    {         TCCR0=0x03;   // 内部时钟,64 分频(8M/64=125KHz)          TCNT0=0x83;   //装初值           TIMSK=0x01;   // 允许 T/C0溢出中断中断      }          /***********************外部中断0子函数********************/        #pragma interrupt_handler int0_isr:2        void int0_isr(void)        {             count++;        }        /*********************定时计数器0溢出中断子函数*****************/       #pragma interrupt_handler int0_over:10        void int0_over(void)       {           TCNT0=0x83;   //重装初值            if((time%100) == 0)               sumnum1 = num;           if(time == 1000)           {               sumnum=num;               if(sumnum<10)               {                                      if((flag==1)&&(sumnum<10))                   {                       PORTD=0XFF;                       flag=0;                   }                                      flag++;               }               else                       PORTD=0XBF;               num=0;               time=0;           }           num+=count;           count=0;           ++time;        } 

    标签: C语言

    上传时间: 2016-03-09

    上传用户:彦 yan

  • 单片机C语言(for)延时计算

    C程序中可使用不同类型的变量来进行延时设计。经实验测试,使用unsigned char类型具有比unsigned int更优化的代码,在使用时应该使用unsigned char作为延时变量。  以某晶振为12MHz的单片机为例,晶振为12MHz即一个机器周期为1us。 

    标签: for 单片机 C语言 延时计算

    上传时间: 2016-04-28

    上传用户:xcx7694

  • 八皇后问题

    八皇后问题是十九世纪著名的数学家高斯提出的:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻(任意两个皇后都不能处于同一行、同一列或同一斜线上),问有多少种摆法?输出所有的皇后摆法。

    标签: 八皇后问题

    上传时间: 2016-06-19

    上传用户:A_Pige

  • hcs301滚动码接收程序

    hcs301滚动码接收程序,是STC单片机解码接收的,晶振11.0592

    标签: hcs 301 滚动码 接收程序

    上传时间: 2016-07-15

    上传用户:liangyan320

  • LED点振电子钟

    LED点阵屏电子钟,用五块8*8LED点阵显示小时,分钟和秒,而且可以通过按键调整时间

    标签: LED 电子钟

    上传时间: 2017-06-30

    上传用户:wy123456789

  • 纯硬件频率计原理图

    采用纯硬件打造的数字频率计,不包含任何单片机,晶振,计数器,译码器,数码管

    标签: 硬件 原理图 频率计

    上传时间: 2017-12-13

    上传用户:fengshu

  • Footprint Maker 0.08 FPM

    是否要先打开ALLEGRO? 不需要(当然你的机器须有CADENCE系统)。生成完封装后在你的输出目录下就会有几千个器件(全部生成的话),默认输出目录为c:\MySym\. Level里面的Minimum, Nominal, Maximum 是什么意思? 对应ipc7351A的ABC封装吗? 是的 能否将MOST, NOMINAL, LEAST三种有差别的封装在命名上也体现出差别? NOMINAL 的名称最后没有后缀,MOST的后缀自动添加“M”,LEAST的后缀自动添加“L”,你看看生成的库名称就知道了。(直插件以及特别的器件,如BGA等是没有MOST和LEAST级别的,对这类器件只有NOMINAL) IC焊盘用长方形好像比用椭圆形的好,能不能生成长方形的? 嗯。。。。基本上应该是非直角的焊盘比矩形的焊盘好,我记不得是AMD还是NS还是AD公司专门有篇文档讨论了这个问题,如果没有记错的话至少有以下好处:信号质量好、更省空间(特别是紧密设计中)、更省锡量。我过去有一篇帖子有一个倒角焊盘的SKILL,用于晶振电路和高速器件(如DDR的滤波电容),原因是对宽度比较大的矩形用椭圆焊盘也不合适,这种情况下用自定义的矩形倒角焊盘就比较好了---你可以从网上另外一个DDR设计的例子中看到。 当然,我已经在程序中添加了一选择项,对一些矩形焊盘可以选择倒角方式. 刚才试了一下,感觉器件的命名的规范性不是太好,另好像不能生成器件的DEVICE文件,我没RUN完。。。 这个程序的命名方法基本参照IPC-7351,每个人都有自己的命名嗜好,仍是不好统一的;我是比较懒的啦,所以就尽量靠近IPC-7351了。 至于DEVICE,的选项已经添加 (这就是批量程序的好处,代码中加一行,重新生产的上千上万个封装就都有新东西了)。 你的库都是"-"的,请问用过ALLEGRO的兄弟,你们的FOOTPRINT认"-"吗?反正我的ALLEGRO只认"_"(下划线) 用“-”应该没有问题的,焊盘的命名我用的是"_"(这个一直没改动过)。 部分丝印画在焊盘上了。 丝印的问题我早已知道,只是尽量避免开(我有个可配置的SilkGap变量),不过工作量比较大,有些已经改过,有些还没有;另外我没有特别费功夫在丝印上的另一个原因是,我通常最后用AUTO-SILK的来合并相关的层,这样既方便快捷也统一各个器件的丝印间距,用AUTO-SILK的话丝印线会自动避开SOLDER-MASK的。 点击allegro后命令行出现E- Can't change to directory: Files\FPM,什么原因? 我想你一定是将FPM安装在一个含空格的目录里面了,比如C:\Program Files\等等之类,在自定义安装目录的时候该目录名不能含有空格,且存放生成的封装的目录名也不能含有空格。你如果用默认安装的话应该是不会有问题的, 默认FPM安装在C:\FPM,默认存放封装的目录为C:\MYSYM 0.04版用spb15.51生成时.allegro会死机.以前版本的Allegro封装生成器用spb15.51生成时没有死机现象 我在生成MELF类封装的时候有过一次死机现象,估计是文件操作错误导致ALLEGRO死机,原因是我没有找到在skill里面直接生成SHAPE焊盘的方法(FLASH和常规焊盘没问题), 查了下资料也没有找到解决方法,所以只得在外部调用SCRIPT来将就一下了。(下次我再查查看),用SCRIPT的话文件访问比较频繁(幸好目前MELF类的器件不多). 解决办法: 1、对MELF类器件单独选择生成,其它的应该可以一次生成。 2、试试最新的版本(当前0.05) 请说明运行在哪类器件的时候ALLEGRO出错,如果不是在MELF附近的话,请告知,谢谢。 用FPM0.04生成的封装好像文件都比较大,比如CAPC、RES等器件,都是300多K,而自己建的或采用PCB Libraries Eval生成的封装一般才几十K到100K左右,不知封装是不是包含了更多的信息? 我的每个封装文件包含了几个文字层(REF,VAL,TOL,DEV,PARTNUMBER等),SILK和ASSEM也是分开的,BOND层和高度信息,还有些定位线(在DISP层),可能这些越来越丰富的信息加大了生成文件的尺寸.你如果想看有什么内容的话,打开所有层就看见了(或REPORT) 非常感谢 LiWenHui 发现的BUG, 已经找到原因,是下面这行: axlDBChangeDesignExtents( '((-1000 -1000) (1000 1000))) 有尺寸空间开得太大,后又没有压缩的原因,现在生成的封装也只有几十K了,0.05版已经修复这个BUG了。 Allegro封装生成器0.04生成do-27封装不正确,生成封装的焊盘的位号为a,c.应该是A,B或者1,2才对. 呵呵,DIODE通常管脚名为AC(A = anode, C = cathode) 也有用AK 或 12的, 极少见AB。 除了DIODE和极个别插件以及BGA外,焊盘名字以数字为主, 下次我给DIODE一个选择项,可以选择AC 或 12 或 AK, 至于TRANSISTER我就不去区分BCE/CBE/ECB/EBC/GDS/GSD/DSG/DGS/SGD/SDG等了,这样会没完没了的,我将对TRANSISTER强制统一以数字编号了,如果用家非要改变,只得在生成库后手工修改。

    标签: Footprint Maker 0.08 FPM skill

    上传时间: 2018-01-10

    上传用户:digitzing