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

移位<b>寄存器</b>

  • 12345

    /****************temic*********t5557***********************************/    #include   <at892051.h>     #include   <string.h>    #include   <intrins.h>     #include   <stdio.h>     #define    uchar    unsigned char     #define    uint     unsigned int     #define    ulong    unsigned long     //STC12C2051AD的SFR定义     sfr  WDT_CONTR = 0xe1;//stc2051的看门狗??????     /**********全局常量************/    //写卡的命令     #define    write_command0       0//写密码     #define    write_command1       1//写配置字     #define    write_command2       2//密码写数据     #define    write_command3       3//唤醒     #define    write_command4       4//停止命令     #define    TRUE       1     #define    FALSE      0     #define    OK         0     #define    ERROR      255     //读卡的时间参数us     #define ts_min          250//270*11.0592/12=249//取近似的整数     #define ts_max          304//330*11.0592/12=304     #define t1_min          73//90*11.0592/12=83:-10调整     #define t1_max          156//180*11.0592/12=166     #define t2_min          184//210*11.0592/12=194     #define t2_max          267//300*11.0592/12=276     //***********不采用中断处理:采用查询的方法读卡时关所有中断****************/     sbit p_U2270B_Standby = P3^5;//p_U2270B_Standby PIN=13     sbit p_U2270B_CFE = P3^3;//p_U2270B_CFE     PIN=6     sbit p_U2270B_OutPut = P3^7;//p_U2270B_OutPut  PIN=2     sbit wtd_sck = P1^7;//SPI总线     sbit wtd_si = P1^3;    sbit wtd_so = P1^2;    sbit iic_data = P1^2;//lcd IIC     sbit iic_clk = P1^7;    sbit led_light = P1^6;//测试绿灯     sbit led_light1 = P1^5;//测试红灯     sbit led_light_ok  = P1^1;//读卡成功标志     sbit fengmingqi = P1^5;    /***********全局变量************************************/       uchar data Nkey_a[4] = {0xA0, 0xA1, 0xA2, 0xA3};//初始密码             //uchar idata card_snr[4];   //配置字     uchar data bankdata[28] = {1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7};     //存储卡上用户数据(1-7)7*4=28     uchar data cominceptbuff[6] = {1,2,3,4,5,6};//串口接收数组ram     uchar command; //第一个命令     uchar command1;//     //uint  temp;     uchar j,i;    uchar myaddr = 8;    //uchar ywqz_count,time_count;             //ywqz jishu:     uchar bdata DATA;    sbit BIT0 = DATA^0;    sbit BIT1 = DATA^1;    sbit BIT2 = DATA^2;    sbit BIT3 = DATA^3;    sbit BIT4 = DATA^4;    sbit BIT5 = DATA^5;    sbit BIT6 = DATA^6;    sbit BIT7 = DATA^7;    uchar bdata DATA1;    sbit BIT10 = DATA1^0;    sbit BIT11 = DATA1^1;    sbit BIT12 = DATA1^2;    sbit BIT13 = DATA1^3;    sbit BIT14 = DATA1^4;    sbit BIT15 = DATA1^5;    sbit BIT16 = DATA1^6;    sbit BIT17 = DATA1^7;    bit i_CurrentLevel;//i_CurrentLevel  BIT 00H(Saves current level of OutPut pin of U2270B)     bit timer1_end;    bit read_ok = 0;    //缓存定时值,因用同一个定时器     union HLint { uint W;    struct   {    uchar H;uchar L;   }   B; };//union HLint idata a     union HLint data a;    //缓存定时值,因用同一个定时器     union HLint0 { uint W;    struct {   uchar H;   uchar L; } B; };//union HLint idata a     union HLint0 data b;    /**********************函数原型*****************/    //读写操作     void f_readcard(void);//全部读出1~7 AOR唤醒     void f_writecard(uchar x);//根据命令写不同的内容和操作     void f_clearpassword(void);//清除密码     void f_changepassword(void);//修改密码     //功能子函数     void write_password(uchar data *data p);//写初始密码或数据     void write_block(uchar x,uchar data *data p);//不能用通用指针     void write_bit(bit x);//写位     /*子函数区*****************************************************/    void delay_2(uint x)    //延时,时间x*10us@12mhz,最小20us@12mhz     {    x--; x--;    while(x)    {      _nop_();      _nop_();      x--;    }    _nop_();//WDT_CONTR=0X3C;不能频繁的复位     _nop_();    }    /////////////////////////////////////////////////////////////////////     void initial(void)    {    SCON = 0x50; //串口方式1,允许接收     //SCON  =0x50;     //01010000B:10位异步收发,波特率可变,SM2=0不用接收到有效停止位才RI=1,     //REN=1允许接收     TMOD = 0x21; //定时器1 定时方式2(8位),定时器0 定时方式1(16位)     TCON = 0x40; //设定时器1 允许开始计时(IT1=1)     TH1 = 0xfD;  //FB 18.432MHz 9600 波特率     TL1 = 0xfD;  //fd 11.0592 9600     IE = 0X90;     //EA=ES=1     TR1 = 1;     //启动定时器     WDT_CONTR = 0x3c;//使能看门狗     p_U2270B_Standby = 0;//单电源     PCON = 0x00;    IP = 0x10;//uart you xian XXXPS PT1 PX1 PT0 PX0     led_light1 = 1;    led_light = 0;    p_U2270B_OutPut = 1;    }    /************************************************/    void f_readcard()//读卡     {    EA = 0;//全关,防止影响跳变的定时器计时     WDT_CONTR = 0X3C;//喂狗     p_U2270B_CFE = 1;//      delay_2(232);  //>2.5ms            /*   //   aor    用唤醒功能来防碰撞   p_U2270B_CFE = 0; delay_2(18);//start gap>150us   write_bit(1);//10=操作码读0页   write_bit(0);       write_password(&bankdata[24]);//密码block7   p_U2270B_CFE =1 ;//    delay_2(516);//编程及确认时间5.6ms   */    WDT_CONTR = 0X3C;//喂狗     led_light = 0;    b.W = 0;    while(!(read_ok == 1))    {             //while(p_U2270B_OutPut);//等一个稳定的低电平?超时判断?              while(!p_U2270B_OutPut);//等待上升沿的到来同步信号检测1       TR0 = 1;      //deng xia jiang       while(p_U2270B_OutPut);//等待下降沿       TR0 = 0;   a.B.H = TH0;   a.B.L = TL0;   TH0 = TL0 = 0;   TR0 = 1;//定时器晚启动10个周期       //同步头       if((324 < a.W) && (a.W < 353)) ;//检测同步信号1                  else     {     TR0 = 0;     TH0 = TL0 = 0;     goto read_error;    }      //等待上升沿        while(!p_U2270B_OutPut);   TR0 = 0;   a.B.H = TH0;   a.B.L = TL0;   TH0 = TL0 = 0;   TR0 = 1;//b.N1<<=8;            if(a.B.L < 195);//0.5p       else     {     TR0 = 0;     TH0 = TL0 = 0;     goto read_error;    }      //读0~7块的数据       for(j = 0;j < 28;j++)      {       //uchar i;                  for(i = 0;i < 16;i++)//8个位        {        //等待下降沿的到来         while(p_U2270B_OutPut);                TR0 = 0;     a.B.H = TH0;     a.B.L = TL0;     TH0 = TL0 = 0;     TR0 = 1;              if(t2_max < a.W/*)&&(a.W < t2_max)*/)//1P          {         b.W >>= 2;//先左移再赋值          b.B.L += 0xc0;                             i++;        }        else if(t1_min < a.B.L/*)&&(a.B.L < t1_max)*/)//0.5p         {         b.W >>= 1;         b.B.L += 0x80;                           }        else      {      TR0 = 0;      TH0 = TL0 = 0;      goto read_error;     }        i++;        while(!p_U2270B_OutPut);//上升                   TR0 = 0;     a.B.H = TH0;     a.B.L = TL0;     TH0 = TL0 = 0;     TR0 = 1;                      if(t2_min < a.W/*)&&(a.W < t2_max)*/)//1P          {         b.W >>= 2;         i++;        }        else if(t1_min < a.B.L/*a.W)&&(a.B.L < t1_max)*/)//0.5P         //else if(!(a.W==0))         {         b.W >>= 1;         //temp+=0x00;          //led_light1=0;led_light=1;delay_2(40000);         }        else      {      TR0 = 0;      TH0 = TL0 = 0;      goto read_error;     }        i++;       }       //取出奇位        DATA = b.B.L;       BIT13 = BIT7;    BIT12 = BIT5;    BIT11 = BIT3;    BIT10 = BIT1;       DATA = b.B.H;       BIT17 = BIT7;    BIT16 = BIT5;    BIT15 = BIT3;    BIT14 = BIT1;       bankdata[j] = DATA1;      }              read_ok = 1;//读卡完成了     read_error:    _nop_();    }       }    /***************************************************/    void f_writecard(uchar x)//写卡     {    p_U2270B_CFE = 1;    delay_2(232);  //>2.5ms            //psw=0 standard write     if (x == write_command0)//写密码:初始化密码     {      uchar i;      uchar data *data p;      p = cominceptbuff;      p_U2270B_CFE = 0;   delay_2(31);//start gap>330us       write_bit(1);//写操作码1:10       write_bit(0);//写操作码0       write_bit(0);//写锁定位0       for(i = 0;i < 35;i++)      {       write_bit(1);//写数据位1       }      p_U2270B_CFE = 1;      led_light1 = 0;   led_light = 1;   delay_2(40000);//测试使用       //write_block(cominceptbuff[4],p);       p_U2270B_CFE = 1;      bankdata[20] = cominceptbuff[0];//密码存入       bankdata[21] = cominceptbuff[1];      bankdata[22] = cominceptbuff[2];      bankdata[23] = cominceptbuff[3];    }    else if (x == write_command1)//配置卡参数:初始化     {      uchar data *data p;      p = cominceptbuff;      write_bit(1);//写操作码1:10       write_bit(0);//写操作码0       write_bit(0);//写锁定位0               write_block(cominceptbuff[4],p);      p_U2270B_CFE=  1;    }    //psw=1  pssword mode     else if(x == write_command2)  //密码写数据    {      uchar data*data p;      p = &bankdata[24];      write_bit(1);//写操作码1:10       write_bit(0);//写操作码0       write_password(p);//发口令       write_bit(0);//写锁定位0       p = cominceptbuff;      write_block(cominceptbuff[4],p);//写数据            }    else if(x == write_command3)//aor    //唤醒 {      //cominceptbuff[1]操作码10 X xxxxxB       uchar data *data p;      p = cominceptbuff;      write_bit(1);//10       write_bit(0);             write_password(p);//密码       p_U2270B_CFE = 1;//此时数据不停的循环传出     }    else //停止操作码     {      write_bit(1);//11       write_bit(1);             p_U2270B_CFE = 1;         }    p_U2270B_CFE = 1;    delay_2(560);//5.6ms     }    /************************************/    void f_clearpassword()//清除密码     {    uchar data *data p;    uchar i,x;          p = &bankdata[24];//原密码     p_U2270B_CFE = 0; delay_2(18);//start gap>150us     //操作码10:10xxxxxxB     write_bit(1);    write_bit(0);              for(x = 0;x < 4;x++)//发原密码     {             DATA = *(p++);      for(i = 0;i < 8;i++)      {       write_bit(BIT0);       DATA >>= 1;      }    }    write_bit(0);//锁定位0:0     p = &cominceptbuff[0];    write_block(0x00,p);//写新配置参数:pwd=0             //密码无效:即清除密码     DATA = 0x00;//停止操作码00000000B     for(i = 0;i < 2;i++)    {    write_bit(BIT7);    DATA <<= 1;    }    p_U2270B_CFE = 1;       delay_2(560);//5.6ms     }    /*********************************/    void f_changepassword()//修改密码            {       uchar data *data p;    uchar i,x,addr;    addr = 0x07;//block7     p = &Nkey_a[0];//原密码     DATA = 0x80;//操作码10:10xxxxxxB     for(i = 0;i < 2;i++)    {      write_bit(BIT7);      DATA <<= 1;    }    for(x = 0;x < 4;x++)//发原密码     {             DATA = *(p++);      for(i = 0;i < 8;i++)      {       write_bit(BIT7);       DATA >>= 1;      }    }    write_bit(0);//锁定位0:0     p = &cominceptbuff[0];    write_block(0x07,p);//写新密码     p_U2270B_CFE = 1;    bankdata[24] = cominceptbuff[0];//密码存入     bankdata[25] = cominceptbuff[1];    bankdata[26] = cominceptbuff[2];    bankdata[27] = cominceptbuff[3];    DATA = 0x00;//停止操作码00000000B     for(i = 0;i < 2;i++)    {      write_bit(BIT7);      DATA <<= 1;    }    p_U2270B_CFE = 1;       delay_2(560);//5.6ms     }    /***************************子函数***********************************/    void write_bit(bit x)//写一位     {    if(x)    {      p_U2270B_CFE = 1;   delay_2(32);//448*11.0592/120=42延时448us       p_U2270B_CFE = 0;   delay_2(28);//280*11.0592/120=26写1     }    else    {      p_U2270B_CFE = 1;   delay_2(92);//192*11.0592/120=18       p_U2270B_CFE = 0;   delay_2(28);//280*11.0592/120=26写0     }    }    /*******************写一个block*******************/    void write_block(uchar addr,uchar data *data p)    {    uchar i,j;        for(i = 0;i < 4;i++)//block0数据     {             DATA = *(p++);      for(j = 0;j < 8;j++)      {       write_bit(BIT0);       DATA >>= 1;      }    }    DATA = addr <<= 5;//0地址     for(i = 0;i < 3;i++)    {      write_bit(BIT7);      DATA <<= 1;    }                   }    /*************************************************/    void write_password(uchar data *data p)    {    uchar i,j;        for(i = 0;i < 4;i++)//     {             DATA = *(p++);      for(j = 0;j < 8;j++)      {       write_bit(BIT0);       DATA >>= 1;      }    }        }   /*************************************************/   void main()    {    initial();    TI = RI = 0;    ES = 1;    EA = 1;  delay_2(28);   //f_readcard();     while(1) {   f_readcard();      //读卡   f_writecard(command1);  //写卡    f_clearpassword();   //清除密码     f_changepassword();    //修改密码 } }

    标签: 12345

    上传时间: 2017-10-20

    上传用户:my_lcs

  • 74LS595级联电路仿真

    51单片机控制74LS595级联电路仿真,单片机程序使能595,并发送穿行数据,通过595转换为并行数据。对学习51单片机、595移位寄存器很方便。

    标签: 595 74 LS 级联电路 仿真

    上传时间: 2021-04-23

    上传用户:quanjj

  • VHDL语言100例 VHDL学习资料VHDL 编程要点VHDL编程心得体会: 100vhdl例子

    VHDL语言100例 VHDL学习资料VHDL 编程要点VHDL编程心得体会:100vhdl例子VHDL 编程要注意问题.docVHDL——按键消抖.docVHDL电路简化.docVHDL编程心得体会.pdfvhd开发的官方手册.pdf第1例 带控制端口的加法器第2例 无控制端口的加法器第3例 乘法器第4例 比较器第5例 二路选择器第6例 寄存器第7例 移位寄存器第8例 综合单元库第9例 七值逻辑与基本数据类型第10例 函数第11例 七值逻辑线或分辨函数第12例 转换函数第13例 左移函数第14例 七值逻辑程序包第15例 四输入多路器第16例 目标选择器第17例 奇偶校验器第18例 映射单元库及其使用举第19例 循环边界常数化测试第20例 保护保留字第21例 进程死锁 第22例 振荡与死锁第23例 振荡电路第24例 分辨信号与分辨函数第25例 信号驱动源第26例 属性TRANSACTION和分辨信号第27例 块保护及属性EVENT,第28例 形式参数属性的测试第29例 进程和并发语句第30例 信号发送与接收第31例 中断处理优先机制建模第32例 过程限定第33例 整数比较器及其测试第34例 数据总线的读写第35例 基于总线的数据通道第36例 基于多路器的数据通道第37例 四值逻辑函数第38例 四值逻辑向量按位或运算第39例 生成语句描述规则结构第40例 带类属的译码器描述第41例 带类属的测试平台第42例 行为与结构的混合描述第43例 四位移位寄存器第44例 寄存/计数器第45例 顺序过程调用第46例 VHDL中generic缺省值的使用第47例 无输入元件的模拟第48例 测试激励向量的编写第49例 delta延迟例释第50例 惯性延迟分析第51例 传输延迟驱动优先第52例 多倍(次)分频器第53例 三位计数器与测试平台第54例 分秒计数显示器的行为描述6第55例 地址计数器第56例 指令预读计数器第57例 加.c减.c乘指令的译码和操作第58例 2-4译码器结构描述第59例 2-4译码器行为描述第60例 转换函数在元件例示中的应用第61例 基于同一基类型的两分辨类型的赋值相容问题第62例 最大公约数的计算第63例 最大公约数七段显示器编码第64例 交通灯控制器第65例 空调系统有限状态自动机第66例 FIR滤波器第67例 五阶椭圆滤波器第68例 闹钟系统的控制第69例 闹钟系统的译码第70例 闹钟系统的移位寄存器第71例 闹钟系统的闹钟寄存器和时间计数器第72例 闹钟系统的显示驱动器第73例 闹钟系统的分频器第74例 闹钟系统的整体组装第75例 存储器第76例 电机转速控制器第77例 神经元计算机第78例ccAm2901四位微处理器的ALU输入第79例ccAm2901四位微处理器的ALU第80例ccAm2901四位微处理器的RAM第81例ccAm2901四位微处理器的寄存器第82例ccAm2901四位微处理器的输出与移位第83例ccAm2910四位微程序控制器中的多路选择器第84例ccAm2910四位微程序控制器中的计数器/寄存器第85例ccAm2910四位微程序控制器的指令计数器第86例ccAm2910四位微程序控制器的堆栈第87例 Am2910四位微程序控制器的指令译码器第88例 可控制计数器第89例 四位超前进位加法器第90例 实现窗口搜索算法的并行系统(1)——协同处理器第91例 实现窗口搜索算法的并行系统(2)——序列存储器第92例 实现窗口搜索算法的并行系统(3)——字符串存储器第93例 实现窗口搜索算法的并行系统(4)——顶层控制器第94例 MB86901流水线行为描述组成框架第95例 MB86901寄存器文件管理的描述第96例 MB86901内ALU的行为描述第97例 移位指令的行为描述第98例 单周期指令的描述第99例 多周期指令的描述第100例 MB86901流水线行为模型

    标签: vhdl

    上传时间: 2021-10-21

    上传用户:ttalli

  • lm75A温度数字转换器 FPGA读写实验Verilog逻辑源码Quartus工程文件+文档资料

    lm75A温度数字转换器 FPGA读写实验Verilog逻辑源码Quartus工程文件+文档资料,FPGA为CYCLONE4系列中的EP4CE6E22C8. 完整的工程文件,可以做为你的学习设计参考。LM75A 是一个使用了内置带隙温度传感器和模数转换技术的温度数字转换器。它也是一个温度检测器,可提供一个过热检测输出。LM75A 包含许多数据寄存器:配置寄存器用来存储器件的某些配置,如器件的工作模式、OS 工作模式、OS 极性和OS 故障队列等(在功能描述一节中有详细描述);温度寄存器(Temp),用来存储读取的数字温度;设定点寄存器(Tos & Thyst),用来存储可编程的过热关断和滞后限制,器件通过2 线的串行I2C 总线接口与控制器通信。LM75A 还包含一个开漏输出(OS),当温度超过编程限制的值时该输出有效。LM75A 有3 个可选的逻辑地址管脚,使得同一总线上可同时连接8个器件而不发生地址冲突。LM75A 可配置成不同的工作条件。它可设置成在正常工作模式下周期性地对环境温度进行监控或进入关断模式来将器件功耗降至最低。OS 输出有2 种可选的工作模式:OS 比较器模式和OS 中断模式。OS 输出可选择高电平或低电平有效。故障队列和设定点限制可编程,为了激活OS 输出,故障队列定义了许多连续的故障。温度寄存器通常存放着一个11 位的二进制数的补码,用来实现0.125℃的精度。这个高精度在需要精确地测量温度偏移或超出限制范围的应用中非常有用。正常工作模式下,当器件上电时,OS 工作在比较器模式,温度阈值为80℃,滞后75℃,这时,LM75A就可用作一个具有以上预定义温度设定点的独立的温度控制器。module LM75_SEG_LED ( //input input                   sys_clk           ,input                   sys_rst_n         ,inout                   sda_port          ,//output output wire              seg_c1         ,output wire              seg_c2         ,output wire              seg_c3         ,output wire              seg_c4         ,output reg               seg_a          ,output reg               seg_b          ,output reg               seg_c          ,output reg               seg_e          ,output reg               seg_d          ,output reg               seg_f          ,output reg               seg_g          ,output reg               seg_h          ,      output reg              clk_sclk                        );//parameter define parameter WIDTH = 8;parameter SIZE  = 8;//reg define reg    [WIDTH-1:0]       counter             ;reg    [9:0]             counter_div         ;reg                      clk_50k             ;reg                      clk_200k            ;reg                      sda                 ;reg                      enable              ;

    标签: lm75a 数字转换器 fpga verilog

    上传时间: 2021-10-27

    上传用户:

  • 300个C51单片机设计proteus仿真源码软件源码: 100000秒以内的计时程序 10秒的秒表

    300个C51单片机设计proteus仿真源码软件源码:100000秒以内的计时程序10秒的秒表12864LCD图形滚动演示128X64LED160128LCD图文演示1602字符液晶滚动演示程序1602液晶显示的DS1302实时时钟16×16点阵(滚动显示)16×16点阵2(滚动显示)2io5键盘模拟音量数码管显示2×20串行字符液晶演示32x16汉字44行列键盘485全双工通信4×4键盘矩阵控制条形LED显示4个独立式按键控制LED开关4个独立式按键控制LED移位4只数码管滚动显示0~3555可调PWM发生器555的应用6264扩展内存6个16×16点阵74HC154译码器应用74HC59574HC595串入并出芯片应用74LS138译码器应用74LS148扩展中断8051双机通信简例8255并行口扩展实例89C51PWM8x8LED汉字显示8x8点阵做的贪吃蛇游戏8×8LED点阵屏显示数字8只数码管同时显示不同字符8只数码管显示多个不同字符8只数码管滚动显示8~F8只数码管滚动显示单个数字8只数码管滚动显示数字串8只数码管闪烁显示8通道自动温度检测系统仿真(含原程序)ADC0808 PWM实验ADC0809模数转换与显示ADC0832模数转换与显示AT89C51对直流电动机的驱动AVR_UartBCD译码数码管显示数字c51 可预设电压的数控电源(功能强大)clockConterCPU控制的独立式键盘扫描实验da、ad。液晶,传递函数模型综合应用的实例DIY51式数控电源DS1621温度传感器实验ds18b20DS18B20温度传感器实验DS18B20温度检测及其液晶显示HorseLightI2CIIC-24C04与数码管IIC-24C04与蜂鸣器INT0与INT1中断计数INT0中断3位计数INT0及INT1中断计数INT0和INT1控制条形LEDINT1中断5位计数IO并行口直接驱动单个数码管K1-K4 分组控制LEDK1-K4 控制LED移位K1-K4 控制数码管加减演示K1-K4 控制数码管移位显示K1-K4 键状态显示key_lcdks0108 液晶12864LCD频率计仿真LED代码查询V1[1].1LED模拟交通灯LED闪烁M16_AN_CompareM16_EEPROMM16_HorseMAX7221控制数码管动态显示my16key_cNT0中断控制LEDNT0中断计数NumberDisplayP3口流水灯PCF8574PCF8583+LCD1602PCF8591模数与数模转换实验proteus ADDC的练习程序PWMPWMLEDPWM控制LED的亮度仿真程序PWM控制马达的方法PWM波输出(可调)PWM电机正反转pwm程序实例PWM调温RAM扩展练习sscom32串口调试TIMER0与TIMER1控制条形LEDTIMER0控制LED二进制计数TIMER0控制单只LED闪烁TIMER0控制四只LED滚动闪烁TIMER0控制流水灯ULN2803usart_t《lcd1602仿真实例》一个数控直流稳压电源一个步进电机的仿真一步一步教你51_PC串口通信万能逻辑电路实验三机通讯串口仿真mcu_pc串口方式1串行数据转换为并行数据交通灯从左到右的流水灯光藕隔离驱动电机内部函数intrins.h应用举例净水控制器仿真电路刚做好的十个字的led屏模拟有程序包含单片机寄存器的头文件单只按键控制单只数码管滚动显示单只数码管循环显示0-9单只数码管循环显示0~F单片机与PC机串口通讯仿真单片机之间双向通信单片机向PC发送数据单片机向主机发送字符串单片机接收PC发出的数据单片机控制的电动自行车驱动系统单片机数据发送程序发一个用定时器做的PWM基于1602+ds12b80+ds1302+音乐+电子书+流水灯的多功能电子表基于ADC0832的数字电压表基于AT24C02的多机通信基于AT89C51+MAX7219的频率计 附带proteus仿真电路图 实际硬件电路测试通过基于DS1302的日历时钟基于yjwpm测试过的DS18B20仿真实例多功能电子钟多点温度测量多路开关状态指示大屏幕仿真子电路做的一个H型电机驱动电路字符串函数string.h应用举例字符函数ctype.h应用举例宏定义应用举例定时器中断控制的独立式键盘扫描实验定时器控制交通指示灯定时器控制数码动态显示定时器控制数码管动管显示对I2C总线上挂接多个AT24C0

    标签: c51 单片机 proteus 仿真

    上传时间: 2021-10-27

    上传用户:wangshoupeng199

  • CD40系列CD45系列集成芯片DATASHEET数据手册170个芯片技术手册资料合集: 4000

    CD40系列CD45系列集成芯片DATASHEET数据手册170个芯片技术手册资料合集:4000 CMOS 3输入双或非门1反相器.pdf4001 CMOS 四2输入或非门.pdf4002 CMOS 双4输入或非门.pdf4006 CMOS 18级静态移位寄存器.pdf4007 CMOS 双互补对加反相器.pdf4008 CMOS 4位二进制并行进位全加器.pdf4009 CMOS 六缓冲器-转换器(反相).pdf4010 CMOS 六缓冲器-转换器(同相).pdf40100 CMOS 32位双向静态移位寄存器.pdf40101 CMOS 9位奇偶发生器-校验器.pdf40102 CMOS 8位BCD可预置同步减法计数器.pdf40103 CMOS 8位二进制可预置同步减法计数器.pdf40104 CMOS 4位三态输出双向通用移位寄存器.pdf40105 CMOS 先进先出寄存器.pdf40106 CMOS 六施密特触发器.pdf40107 CMOS 2输入双与非缓冲-驱动器.pdf40108 CMOS 4×4多端寄存.pdf40109 CMOS 四三态输出低到高电平移位器.pdf4011 CMOS 四2输入与非门.pdf40110 CMOS 十进制加减计数-译码-锁存-驱动.pdf40117 CMOS 10线—4线BCD优先编码器.pdf4012 CMOS 双4输入与非门.pdf4013 CMOS 带置位-复位的双D触发器.pdf4014 CMOS 8级同步并入串入-串出移位寄存器.pdf40147 CMOS 10线—4线BCD优先编码器.pdf4015 CMOS 双4位串入-并出移位寄存器.pdf4016 CMOS 四双向开关.pdf40160 CMOS 非同步复位可预置BCD计数器.pdf40161 CMOS 非同步复位可预置二进制计数器.pdf40162 CMOS 同步复位可预置BCD计数器.pdf40163 CMOS 同步复位可预置二进制计数器.pdf4017 CMOS 十进制计数器-分频器.pdf40174 CMOS 六D触发器.pdf40175 CMOS 四D触发器.pdf4018 CMOS 可预置 1分N 计数器.pdf40181 CMOS 4位算术逻辑单元.pdf40182 CMOS 超前进位发生器.pdf4019 CMOS 四与或选译门.pdf40192 CMOS 可预制四位BCD计数器.pdf40193 CMOS 可预制四位二进制计数器.pdf40194 CMOS 4位双向并行存取通用移位寄存器.pdf4020 CMOS 14级二进制串行计数-分频器.pdf40208 CMOS 4×4多端寄存器.pdf4021 CMOS 异步8位并入同步串入-串出寄存器.pdf4022 CMOS 八进制计数器-分频器.pdf4023 CMOS 三3输入与非门.pdf4024 CMOS 7级二进制计数器.pdf4025 CMOS 三3输入或非门.pdf40257 CMOS 四2线-1线数据选择器-多路传输.pdf4026 CMOS 7段显示十进制计数-分频器.pdf4027 CMOS 带置位复位双J-K主从触发器.pdf4028 CMOS BCD- 十进制译码器.pdf4029 CMOS 可预制加-减(十-二进制)计数器.pdf4030 CMOS 四异或门.pdf4031 CMOS 64级静态移位寄存器.pdf4032 CMOS 3位正逻辑串行加法器.pdf4033 CMOS 十进制计数器-消隐7段显示.pdf4034 CMOS 8位双向并、串入-并出寄存器.pdf4035 CMOS 4位并入-并出移位寄存器.pdf4038 CMOS 3位串行负逻辑加法器.pdf4040 CMOS 12级二进制计数-分频器.pdf4041 CMOS 四原码-补码缓冲器.pdf4042 CMOS 四时钟控制 D 锁存器.pdf4043 CMOS 四三态或非 R-S 锁存器.pdf4044 CMOS 四三态与非 R-S 锁存器.pdf4045 CMOS 21位计数器.pdf4046 CMOS PLL 锁相环电路.pdf4047 CMOS 单稳态、无稳态多谐振荡器.pdf4048 CMOS 8输入端多功能可扩展三态门.pdf4049 CMOS 六反相缓冲器-转换器.pdf4050 CMOS 六同相缓冲器-转换器.pdf4051 CMOS 8选1双向模拟开关.pdf4051,2,3.pdf4052 CMOS 双4选1双向模拟开关.pdf4053 CMOS 三2选1双向模拟开关.pdf4054 C

    标签: cd40 cd45 datasheet

    上传时间: 2021-11-09

    上传用户:kent

  • TFT+LCD驱动芯片的研究与设计

    文章针对800×600象素的 TFT LCD,介绍了LCD显示原理、TFT元件特性、TFT-LCD的结构及驱动原理,重点进行了 TFT-LCD周边驱动电路设计,包括栅(行)驱动电路和源〔列)驱动电路。栅驱动芯片,内部主要包括逻辑控制电路、双向移位寄存器、电平位移电路和4-Level输出电路。本文设计了一种多模式工作的栅驱动电路,其中控制电路包含左右移位控制、输入输出控制、分段清零、工作模式选择,且相互之间必须进行互相配合。可根据应用场合的不同,而选择不同的工作模式。列驱动芯片,首先分析其工作原理,并对内部两个关键电路进行设计:并行输入串行输出电路和用于实现λ校正的DA变换电路。并采用两种方式实现了DA转换,一种是利用高低电压组合;另一种是采用高低位译码电路来实现。在此基础上,为了能够降低列驱动芯片的功耗,对列驱动芯片的结构进行了改进,并对改进后的缓冲电路进行了设计,采用 Hspice对芯片内部的模块电路进行仿真,仿真结果表明,所设计的驱动芯片基本能够满足所需的要求,并对栅驱动电路进行版图设计关键词:TFT LCD电平位移栅驱动列驱动科学技术的发展日新月异,显示技术也在发生一场革命,随着显示技术的突破及市场需求的急剧增长,使得以液晶显示(LCD)为代表的平板显示(FPD)技术迅速崛起。目前竞争最激烈的平板显示器有四个品种:场致发射平板显示器(FED)、等离子体平板显示器(PDP)、薄膜晶体管液晶平板显示器(TFT-ICD)和有机电致发光显示器(OLED)。而由于 TFT-LCD在亮度、对比度、功耗、寿命、体积和重量等方面的优势,从而得到广泛的关注和应用

    标签: tft lcd 驱动 芯片

    上传时间: 2022-04-22

    上传用户:

  • cd4000系列45系列芯片器件手合集册

    常用4000系列标准数字电路的中文名称资料   型号   器件名称        厂牌   备注 CD4000 双3输入端或非门+单非门 TI   CD4001 四2输入端或非门 HIT/NSC/TI/GOL CD4002 双4输入端或非门 NSC CD4006 18位串入/串出移位寄存器 NSC CD4007 双互补对加反相器 NSC CD4008 4位超前进位全加器 NSC CD4009 六反相缓冲/变换器 NSC CD4010 六同相缓冲/变换器 NSC CD4011 四2输入端与非门 HIT/TI CD4012 双4输入端与非门 NSC CD4013 双主-从D型触发器 FSC/NSC/TOS CD4014 8位串入/并入-串出移位寄存器 NSC CD4015 双4位串入/并出移位寄存器 TI CD4016 四传输门 FSC/TI CD4017 十进制计数/分配器 FSC/TI/MOT CD4018 可预制1/N计数器 NSC/MOT CD4019 四与或选择器 PHI CD4020 14级串行二进制计数/分频器 FSC CD4021 08位串入/并入-串出移位寄存器 PHI/NSC CD4022 八进制计数/分配器 NSC/MOT CD4023 三3输入端与非门 NSC/MOT/TI CD4024 7级二进制串行计数/分频器 NSC/MOT/TI CD4025 三3输入端或非门 NSC/MOT/TI CD4026 十进制计数/7段译码器 NSC/MOT/TI CD4027 双J-K触发器 NSC/MOT/TI CD4028 BCD码十进制译码器 NSC/MOT/TI CD4029 可预置可逆计数器 NSC/MOT/TI CD4030 四异或门 NSC/MOT/TI/GOL CD4031 64位串入/串出移位存储器 NSC/MOT/TI CD4032 三串行加法器 NSC/TI CD4033 十进制计数/7段译码器 NSC/TI CD4034 8位通用总线寄存器 NSC/MOT/TI CD4035 4位并入/串入-并出/串出移位寄存 NSC/MOT/TI CD4038 三串行加法器 NSC/TI CD4040 12级二进制串行计数/分频器 NSC/MOT/TI CD4041 四同相/反相缓冲器 NSC/MOT/TI CD4042 四锁存D型触发器 NSC/MOT/TI CD4043 4三态R-S锁存触发器("1"触发) NSC/MOT/TI CD4044 四三态R-S锁存触发器("0"触发) NSC/MOT/TI CD4046 锁相环 NSC/MOT/TI/PHI CD4047 无稳态/单稳态多谐振荡器 NSC/MOT/TI CD4048 4输入端可扩展多功能门 NSC/HIT/TI CD4049 六反相缓冲/变换器 NSC/HIT/TI CD4050 六同相缓冲/变换器 NSC/MOT/TI CD4051 八选一模拟开关 NSC/MOT/TI 

    标签: cd4000 芯片

    上传时间: 2022-05-05

    上传用户:

  • VHDL 基础程序百例 FPGA 逻辑设计源码

    VHDL 基础程序百例 FPGA 逻辑设计源码VHDL语言100例第1例 带控制端口的加法器第2例 无控制端口的加法器第3例 乘法器第4例 比较器第5例 二路选择器第6例 寄存器第7例 移位寄存器第8例 综合单元库第9例 七值逻辑与基本数据类型第10例 函数第11例 七值逻辑线或分辨函数第12例 转换函数第13例 左移函数第14例 七值逻辑程序包第15例 四输入多路器第16例 目标选择器第17例 奇偶校验器第18例 映射单元库及其使用举第19例 循环边界常数化测试第20例 保护保留字第21例 进程死锁 第22例 振荡与死锁第23例 振荡电路第24例 分辨信号与分辨函数第25例 信号驱动源第26例 属性TRANSACTION和分辨信号第27例 块保护及属性EVENT,第28例 形式参数属性的测试第29例 进程和并发语句第30例 信号发送与接收第31例 中断处理优先机制建模第32例 过程限定第33例 整数比较器及其测试第34例 数据总线的读写第35例 基于总线的数据通道第36例 基于多路器的数据通道第37例 四值逻辑函数第38例 四值逻辑向量按位或运算第39例 生成语句描述规则结构第40例 带类属的译码器描述第41例 带类属的测试平台第42例 行为与结构的混合描述第43例 四位移位寄存器第44例 寄存/计数器第45例 顺序过程调用第46例 VHDL中generic缺省值的使用第47例 无输入元件的模拟第48例 测试激励向量的编写第49例 delta延迟例释第50例 惯性延迟分析第51例 传输延迟驱动优先第52例 多倍(次)分频器第53例 三位计数器与测试平台第54例 分秒计数显示器的行为描述6第55例 地址计数器第56例 指令预读计数器第57例 加.c减.c乘指令的译码和操作第58例 2-4译码器结构描述第59例 2-4译码器行为描述第60例 转换函数在元件例示中的应用第61例 基于同一基类型的两分辨类型的赋值相容问题第62例 最大公约数的计算第63例 最大公约数七段显示器编码第64例 交通灯控制器第65例 空调系统有限状态自动机第66例 FIR滤波器第67例 五阶椭圆滤波器第68例 闹钟系统的控制第69例 闹钟系统的译码第70例 闹钟系统的移位寄存器第71例 闹钟系统的闹钟寄存器和时间计数器第72例 闹钟系统的显示驱动器第73例 闹钟系统的分频器第74例 闹钟系统的整体组装第75例 存储器第76例 电机转速控制器第77例 神经元计算机第78例ccAm2901四位微处理器的ALU输入第79例ccAm2901四位微处理器的ALU第80例ccAm2901四位微处理器的RAM第81例ccAm2901四位微处理器的寄存器第82例ccAm2901四位微处理器的输出与移位第83例ccAm2910四位微程序控制器中的多路选择器第84例ccAm2910四位微程序控制器中的计数器/寄存器第85例ccAm2910四位微程序控制器的指令计数器第86例ccAm2910四位微程序控制器的堆栈第87例 Am2910四位微程序控制器的指令译码器第88例 可控制计数器第89例 四位超前进位加法器第90例 实现窗口搜索算法的并行系统(1)——协同处理器第91例 实现窗口搜索算法的并行系统(2)——序列存储器第92例 实现窗口搜索算法的并行系统(3)——字符串存储器第93例 实现窗口搜索算法的并行系统(4)——顶层控制器第94例 MB86901流水线行为描述组成框架第95例 MB86901寄存器文件管理的描述第96例 MB86901内ALU的行为描述第97例 移位指令的行为描述第98例 单周期指令的描述第99例 多周期指令的描述第100例 MB86901流水线行为模型

    标签: vhdl fpga

    上传时间: 2022-05-14

    上传用户:

  • STM32FLASH实验-SPI

    FLASH实验-SPI学习目标:1、学会STM32硬件SPI2、学会对EN25Q64进行读写操作10.1 EN25Q64简介EN25Q64是华邦公司推出的大容量SPI FLASH产品,EN25Q64的容量为64M比特,也就是说有8M字节.EN25Q64将8M的容量分为128个块(Block),每个块大小为64K字节,每个块又分为16个扇区(Sector),每个扇区4K个字节.EN25Q64的最少擦除单位为一个扇区,也就是每次必除4K个字节。EN25Q64支持标准的SPI,还支持双输出/四输出的SPI,最大SPI时钟可以到80Mhz(双输出时相当于160Mhz,四输出时相当于320M),更多的EN25Q64的介绍,请参考EN25Q64的DAIASHEET.10.2 SPI简介从上面的简介我们知道,EN25Q64是使用SPI来通信的。那什么是SPI呢?SPI是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口,SPI接口主要用四根线进行通信:1,MISO:主设备数据输入,从设备数据输出。2,MOSI:主设备数据输出,从设备数据输入。3,SCLK:时钟信号,由主设备产生。4.CS:从设备片选信号,由主设备控制。而通常意义上,SPI的通信只用三根线就可以了,一根时钟线、一根输出、根输入。为了更好理解SPI的传输原理,我们来看一下SPI的内部结构:从图上可以有知道,SPI数据的传输过程其实是通过一个移位寄存器来完成的,主机将自己的移位寄存器的数据移出,同时从机的移位寄存器数据移入,同时将自己的数据移出。简单的来理解,就像将两个寄存器贴在一起,然后进行循环左移或者循环右移(SPI的传输可以选择先发送高位还是先发送低位。),直到两个寄存器的数据交换为止。而时钟信号SCLK就是控制传输速率的。STM32内部是给我们提供了一个SPI的外设的,那么我们就可以使用单片机的内部的SPI来控制EN25Q64了

    标签: stm32 flash spi

    上传时间: 2022-06-18

    上传用户: