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

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

  • 微机原理与接口课件

    微处理器及微型计算机的发展概况  第一代微处理器是以Intel公司1971年推出的4004,4040为代表的四位微处理机。      第二代微处理机(1973年~1977年),典型代表有:Intel 公司的8080、8085;Motorola公司的M6800以及Zlog公司的Z80。     第三代微处理机 第三代微机是以16位机为代表,基本上是在第二代微机的基础上发展起来的。其中Intel公司的8088。8086是在8085的基础发展起来的;M68000是Motorola公司在M6800 的基础发展起来的;     第四代微处理机 以Intel公司1984年10月推出的80386CPU和1989年4月推出的80486CPU为代表,     第五代微处理机的发展更加迅猛,1993年3月被命名为PENTIUM的微处理机面世,98年PENTIUM 2又被推向市场。 INTEL CPU 发展历史Intel第一块CPU 4004,4位主理器,主频108kHz,运算速度0.06MIPs(Million Instructions Per Second, 每秒百万条指令),集成晶体管2,300个,10微米制造工艺,最大寻址内存640 bytes,生产曰期1971年11月. 8085,8位主理器,主频5M,运算速度0.37MIPs,集成晶体管6,500个,3微米制造工艺,最大寻址内存64KB,生产曰期1976年 8086,16位主理器,主频4.77/8/10MHZ,运算速度0.75MIPs,集成晶体管29,000个,3微米制造工艺,最大寻址内存1MB,生产曰期1978年6月. 80486DX,DX2,DX4,32位主理器,主频25/33/50/66/75/100MHZ,总线频率33/50/66MHZ,运算速度20~60MIPs,集成晶体管1.2M个,1微米制造工艺,168针PGA,最大寻址内存4GB,缓存8/16/32/64KB,生产曰期1989年4月 Celeron一代, 主频266/300MHZ(266/300MHz w/o L2 cache, Covington芯心 (Klamath based),300A/333/366/400/433/466/500/533MHz w/128kB L2 cache, Mendocino核心 (Deschutes-based), 总线频率66MHz,0.25微米制造工艺,生产曰期1998年4月) Pentium 4 (478针),至今分为三种核心:Willamette核心(主频1.5G起,FSB400MHZ,0.18微米制造工艺),Northwood核心(主频1.6G~3.0G,FSB533MHZ,0.13微米制造工艺, 二级缓存512K),Prescott核心(主频2.8G起,FSB800MHZ,0.09微米制造工艺,1M二级缓存,13条全新指令集SSE3),生产曰期2001年7月. 更大的缓存、更高的频率、 超级流水线、分支预测、乱序执行超线程技术 微型计算机组成结构单片机简介单片机即单片机微型计算机,是将计算机主机(CPU、    内存和I/O接口)集成在一小块硅片上的微型机。 三、计算机编程语言的发展概况 机器语言  机器语言就是0,1码语言,是计算机唯一能理解并直接执行的语言。汇编语言  用一些助记符号代替用0,1码描述的某种机器的指令系统,汇编语言就是在此基础上完善起来的。高级语言  BASIC,PASCAL,C语言等等。用高级语言编写的程序称源程序,它们必须通过编译或解释,连接等步骤才能被计算机处理。 面向对象语言  C++,Java等编程语言是面向对象的语言。 1.3 微型计算机中信息的表示及运算基础(一) 十进制ND有十个数码:0~9,逢十进一。 例 1234.5=1×103 +2×102 +3×101 +4×100 +5×10-1加权展开式以10称为基数,各位系数为0~9,10i为权。 一般表达式:ND= dn-1×10n-1+dn-2×10n-2 +…+d0×100 +d-1×10-1+… (二) 二进制NB两个数码:0、1, 逢二进一。 例 1101.101=1×23+1×22+0×21+1×20+1×2-1+1×2-3 加权展开式以2为基数,各位系数为0、1, 2i为权。 一般表达式:  NB = bn-1×2n-1 + bn-2×2n-2 +…+b0×20 +b-1×2-1+… (三)十六进制NH十六个数码0~9、A~F,逢十六进一。 例:DFC.8=13×162 +15×161 +12×160 +8×16-1 展开式以十六为基数,各位系数为0~9,A~F,16i为权。 一般表达式: NH= hn-1×16n-1+ hn-2×16n-2+…+ h0×160+ h-1×16-1+… 二、不同进位计数制之间的转换 (二)二进制与十六进制数之间的转换  24=16 ,四位二进制数对应一位十六进制数。举例:(三)十进制数转换成二、十六进制数整数、小数分别转换   1.整数转换法“除基取余”:十进制整数不断除以转换进制基数,直至商为0。每除一次取一个余数,从低位排向高位。举例: 2. 小数转换法“乘基取整”:用转换进制的基数乘以小数部分,直至小数为0或达到转换精度要求的位数。每乘一次取一次整数,从最高位排到最低位。举例:  三、带符号数的表示方法 机器数:机器中数的表示形式。真值: 机器数所代表的实际数值。举例:一个8位机器数与它的真值对应关系如下:  真值: X1=+84=+1010100B     X2=-84= -1010100B   机器数:[X1]机= 01010100    [X2]机= 11010100(二)原码、反码、补码最高位为符号位,0表示 “+”,1表示“-”。 数值位与真值数值位相同。 例  8位原码机器数:  真值:   x1  = +1010100B     x2    =- 1010100B      机器数: [x1]原  = 01010100  [x2]原 = 11010100原码表示简单直观,但0的表示不唯一,加减运算复杂。 正数的反码与原码表示相同。       负数反码符号位为 1,数值位为原码数值各位取反。 例 8位反码机器数:          x= +4: [x]原= 00000100 [x]反= 00000100     x= -4: [x]原= 10000100  [x]反= 111110113、补码(Two’s Complement)正数的补码表示与原码相同。       负数补码等于2n-abs(x)8位机器数表示的真值四、 二进制编码例:求十进制数876的BCD码 876= 1000 0111 0110 BCD  876= 36CH = 1101101100B 2、字符编码    美国标准信息交换码ASCII码,用于计算      机与计算机、计算机与外设之间传递信息。 3、汉字编码 “国家标准信息交换用汉字编码”(GB2312-80标准),简称国标码。 用两个七位二进制数编码表示一个汉字 例如“巧”字的代码是39H、41H汉字内码例如“巧”字的代码是0B9H、0C1H1·4  运算基础 一、二进制数的运算加法规则:“逢2进1”       减法规则:“借1当2”       乘法规则:“逢0出0,全1出1”二、二—十进制数的加、减运算        BCD数的运算规则 循十进制数的运算规则“逢10进1”。但计算机在进行这种运算时会出现潜在的错误。为了解决BCD数的运算问题,采取调整运算结果的措施:即“加六修正”和“减六修正”例:10001000(BCD)+01101001(BCD)        =000101010111(BCD)                1 0 0 0 1 0 0 0       +  0 1 1 0 1 0 0 1           1 1 1 1 0 0 0 1        +  0 1 1 0 0 1 1 0     ……调整          1 0 1 0 1 0 1 1 1                                        进位  例:  10001000(BCD)- 01101001(BCD)= 00011001(BCD)                   1 0 0 0 1 0 0 0            -   0 1 1 0 1 0 0 1             0 0 0 1 1 1 1 1         -                    0 1 1 0   ……调整             0 0 0 1 1 0 0 1  三、 带符号二进制数的运算 1.5 几个重要的数字逻辑电路编码器译码器计数器微机自动工作的条件程序指令顺序存放自动跟踪指令执行1.6 微机基本结构微机结构各部分组成连接方式1、以CPU为中心的双总线结构;2、以内存为中心的双总线结构;3、单总线结构CPU结构管脚特点  1、多功能;2、分时复用内部结构  1、控制; 2、运算; 3、寄存器; 4、地址程序计数器堆栈定义 1、定义;2、管理;3、堆栈形式

    标签: 微机原理 接口

    上传时间: 2013-10-17

    上传用户:erkuizhang

  • S3C44B0X 具有 8 路模拟信号输入的 10 位模/数转换器(ADC)

    S3C44B0X 具有 8 路模拟信号输入的 10 位模/数转换器(ADC),它是一个逐次逼近型 的 ADC,内部结构中包括模拟输入多路复用器,自动调零比较器,时钟产生器,10 位逐次 逼近寄存器(SAR),输出寄存器如下图所示。这个 ADC 还提供可编程选择的睡眠模式, 以节省功耗。

    标签: S3C44B0X ADC 10 模拟信号

    上传时间: 2014-11-23

    上传用户:zhangyi99104144

  • crc任意位生成多项式 任意位运算 自适应算法 循环冗余校验码(CRC

    crc任意位生成多项式 任意位运算 自适应算法 循环冗余校验码(CRC,Cyclic Redundancy Code)是采用多项式的 编码方式,这种方法把要发送的数据看成是一个多项式的系数 ,数据为bn-1bn-2…b1b0 (其中为0或1),则其对应的多项式为: bn-1Xn-1+bn-2Xn-2+…+b1X+b0 例如:数据“10010101”可以写为多项式 X7+X4+X2+1。 循环冗余校验CRC 循环冗余校验方法的原理如下: (1) 设要发送的数据对应的多项式为P(x)。 (2) 发送方和接收方约定一个生成多项式G(x),设该生成多项式 的最高次幂为r。 (3) 在数据块的末尾添加r个0,则其相对应的多项式为M(x)=XrP(x) 。(左移r位) (4) 用M(x)除以G(x),获得商Q(x)和余式R(x),则 M(x)=Q(x) ×G(x)+R(x)。 (5) 令T(x)=M(x)+R(x),采用模2运算,T(x)所对应的数据是在原数 据块的末尾加上余式所对应的数据得到的。 (6) 发送T(x)所对应的数据。 (7) 设接收端接收到的数据对应的多项式为T’(x),将T’(x)除以G(x) ,若余式为0,则认为没有错误,否则认为有错。

    标签: crc CRC 多项式 位运算

    上传时间: 2014-11-28

    上传用户:宋桃子

  • crc任意位生成多项式 任意位运算 自适应算法 循环冗余校验码(CRC

    crc任意位生成多项式 任意位运算 自适应算法 循环冗余校验码(CRC,Cyclic Redundancy Code)是采用多项式的 编码方式,这种方法把要发送的数据看成是一个多项式的系数 ,数据为bn-1bn-2…b1b0 (其中为0或1),则其对应的多项式为: bn-1Xn-1+bn-2Xn-2+…+b1X+b0 例如:数据“10010101”可以写为多项式 X7+X4+X2+1。 循环冗余校验CRC 循环冗余校验方法的原理如下: (1) 设要发送的数据对应的多项式为P(x)。 (2) 发送方和接收方约定一个生成多项式G(x),设该生成多项式 的最高次幂为r。 (3) 在数据块的末尾添加r个0,则其相对应的多项式为M(x)=XrP(x) 。(左移r位) (4) 用M(x)除以G(x),获得商Q(x)和余式R(x),则 M(x)=Q(x) ×G(x)+R(x)。 (5) 令T(x)=M(x)+R(x),采用模2运算,T(x)所对应的数据是在原数 据块的末尾加上余式所对应的数据得到的。 (6) 发送T(x)所对应的数据。 (7) 设接收端接收到的数据对应的多项式为T’(x),将T’(x)除以G(x) ,若余式为0,则认为没有错误,否则认为有错

    标签: crc CRC 多项式 位运算

    上传时间: 2014-01-16

    上传用户:hphh

  • EDA实验--UART串口实验:UART 主要有由数据总线接口、控制逻辑、波特率发生器、发送部分和接收部分等组成。UART 发送器 --- 发送器每隔16 个CLK16 时钟周期输出1 位

    EDA实验--UART串口实验:UART 主要有由数据总线接口、控制逻辑、波特率发生器、发送部分和接收部分等组成。UART 发送器 --- 发送器每隔16 个CLK16 时钟周期输出1 位,次序遵循1位起始位、8位数据位(假定数据位为8位)、1位校验位(可选)、1位停止位。 UART 接收器 --- 串行数据帧和接收时钟是异步的,发送来的数据由逻辑1 变为逻辑0 可以视为一个数据帧的开始。接收器先要捕捉起始位,确定rxd 输入由1 到0,逻辑0 要8 个CLK16 时钟周期,才是正常的起始位,然后在每隔16 个CLK16 时钟周期采样接收数据,移位输入接收移位寄存器rsr,最后输出数据dout。还要输出一个数据接收标志信号标志数据接收完。 波特率发生器 --- UART 的接收和发送是按照相同的波特率进行收发的。波特率发生器产生的时钟频率不是波特率时钟频率,而是波特率时钟频率的16 倍,目的是为在接收时进行精确地采样,以提出异步的串行数据。 --- 根据给定的晶振时钟和要求的波特率算出波特率分频数。

    标签: UART EDA CLK 实验

    上传时间: 2014-01-25

    上传用户:xsnjzljj

  • 8通道24位AD转换器ADS1218操作函数

    8通道24位AD转换器ADS1218操作函数,包含寄存器设置和flash操作。

    标签: 1218 ADS 24位 AD转换器

    上传时间: 2013-12-26

    上传用户:wendy15

  • 通过VHDL实现4位全加器

    通过VHDL实现4位全加器,8位全加器,和8位通用寄存器的设计

    标签: VHDL 全加器

    上传时间: 2014-01-11

    上传用户:lanwei

  • 点亮P10单元板单片机源程序

    /*================================================================= 4扫16*16下入上出C语言程序, 低位起笔,数据反相。 预定义 **************************************************************/ #include #include //可使用其中定义的宏来访问绝对地址? bit ture=1; // 使能正反相位选择 bit false=0; // 使能反相 sbit SCK=P3^6; // EQU 0B6H ; 移位 sbit RCK=P3^5; //EQU 0B5H ; 并行锁存 //sbit P1_3=P1^3; //外RAM扩展读写控制,不能重复申明 sbit EN1=P1^7; //BIT sbit FB=0xD8; // FB作为标志 sfr BUS_SPEED=0xA1; //访问片外RAM速度设置寄存器 sfr P4SW=0xBB; //P4SW寄存器设置P4.4,P4.5,P4.6的功能 sfr P4=0xC0; // P4 EQU 0C0H sbit NC=P4^4; sbit CS=P4^6; //片选 sfr WDT_CONTR=0xC1; // 0C1H ;看门狗寄存器 sfr AUXR=0x8E; // EQU 08EH ;附件功能控制寄存器 sfr16 DPTR=0x82; sfr CLK_DIV=0x97 ; //时钟分频寄存器 const unsigned int code All_zk =256 ; // 0E11H ;原数据总字节 const unsigned int code am_zk =128 ; // 0E13H ;单幕数据量 const unsigned char code asp = 255; // asp数据相位字,如果是正相字,那么asp=0 bit basp=1; // asp数据相位字标记,如果是正相字,那么basp=0 const unsigned char code font[]= // 晶科电子LED数码(反相字) {0xBD,0x81,0xEF,0xFF,0xBD,0x81,0xF7,0xFF,0xEF,0xEB,0x80,0x9F,0xEF,0x8F,0xEF,0xEF,0x7F,0x7B,0x7B,0x7F,0xBF,0xEF,0xEF,0xFF,0x7F,0x00,0xFF,0xFF,0xFF,0x80,0xFE,0xFF, 0x81,0xBD,0x0F,0x0F,0x81,0xBD,0xF0,0xF0,0xEF,0xED,0xE7,0xE1,0xEF,0xE1,0xEE,0xEE,0x7F,0x7B,0x7B,0x7F,0xBF,0xEF,0xEF,0xFF,0x7F,0x7F,0x7F,0x03,0xFF,0xFF,0xFF,0xF0, 0xBD,0x81,0xEF,0xEF,0xBD,0x81,0xF7,0xF7,0xEF,0x2E,0xC7,0xEF,0xEF,0xEE,0xED,0xED,0xFF,0x03,0x03,0x7F,0x80,0xE0,0xE0,0xFF,0x5F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFB, 0xFF,0xBD,0xFF,0x0F,0xFF,0xBD,0xFF,0xF0,0xEF,0xEF,0xAB,0xEF,0xEF,0xEF,0xED,0xED,0xFF,0x7B,0x7B,0x03,0xFF,0xEF,0xEF,0xE0,0xBF,0x7F,0x7F,0xFF,0xFF,0xFF,0xDF,0xFD, 0xBD,0xFD,0xFD,0xFF,0xBD,0xED,0xBD,0xFF,0xDD,0xBD,0xDD,0xFF,0xFF,0xFF,0xFF,0xFF,0xCF,0xEF,0x00,0xEF,0xEB,0xEB,0x81,0xFB,0xC3,0xDA,0xF7,0xFF,0xDF,0xDF,0xEE,0xFF, 0x80,0xFD,0xFD,0xFF,0xC0,0xED,0xED,0xFF,0xE0,0xBD,0xBD,0xFF,0xFF,0xFF,0xFF,0xFF,0xB3,0x00,0xC7,0x6D,0x8D,0xEB,0xDD,0xF3,0xDB,0xDB,0xFB,0x40,0xDF,0xDF,0xEE,0xE0, 0xFF,0xFD,0xFD,0xFF,0xFF,0xFD,0xED,0xFF,0xFF,0xBD,0xBD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xB7,0x2B,0xAB,0xDE,0xF7,0xDD,0xFB,0xFB,0x5B,0xC3,0xF7,0xEB,0xD0,0xEE,0xEF, 0xFF,0xFD,0xFD,0xF8,0xFF,0xBD,0xE1,0xC0,0xFF,0xBD,0xBD,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xD3,0xED,0xC7,0xFF,0xF7,0xDC,0xFB,0xFF,0xDB,0xD9,0xF7,0xF7,0xDF,0xC0,0xEE}; const unsigned char data xzL_data =0x08; //0603H;一幕一行字节数 const unsigned int data aL_data =0x20; //单幕单号线(单组线)数据量 const unsigned char data mov =0x03A ; //移动速度 const unsigned int data t_T =0x040A ; //0E0AH ; 05FAH; ;停留时间 const unsigned char data mu_num=0x02 ; //0602H ;幕数 unsigned int m; //m幕长变量<=am_zk unsigned char data_z; //数据寄存器 unsigned int xd; //数据指针寄存器 /*********************************************************************** 数据转移子函数 ===============================================================*/ char MOVD() { unsigned char f,nm; //nm幕数控制 unsigned char code *dptr; unsigned char xdata *xdptr = 0; f = asp ; for (m=0; m

    标签: P10 单元板 单片机源程序

    上传时间: 2017-05-04

    上传用户:sbfd010

  • 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

  • 19:VK1640B SSOP24更少脚位超小封装面积体积超低功耗替代兼容TM1640,6932

    产品型号:VK1640B 产品品牌:VINTEK/元泰/VINKA 封装形式:SSOP24 产品年份:新年份 联 系 人:许先生 联 系 QQ:1918885898   联系手机:18898582398 主营LCD/LED液晶显示驱动IC,工程服务,技术支持,价格更具优势!   概述 VK1640B 是一款 LED(发光二极管显示器)驱动控制专用电路,内部集成有 MCU 数字接口、数据锁存器、LED 高压驱动。本产品采用 CMOS 工艺,主要应用于小型 LED 显示屏驱动。 特性说明 功能特点 ● 采用 CMOS 工艺制作 ● 显示模式(8 段×12 位) ● 辉度调节电路(占空比 8 级可调) ● 两线串行接口 ● 振荡方式:内置 RC 振荡 ● 内置上电复位 ● 采用 SSOP24 封装 ★  此篇产品叙述为功能简介,如需要完整产品PDF资料可以联系许先生Q:1918885898索取! LCD/LED液晶控制器及驱动器系列 芯片简介如下:           内存映射的LED控制器及驱动器 VK1628 --- 通讯接口:STB/CLK/DIO    电源电压:5V(4.5~5.5V)    驱动点阵:70/52  共阴驱动:10段7位/13段4位  共阳驱动:7段10位   按键:10x2  封装SOP28 VK1629 --- 通讯接口:STB/CLK/DIN/DOUT    电源电压:5V(4.5~5.5V)    驱动点阵:128 共阴驱动:16段8位   共阳驱动:8段16位   按键:8x4  封装QFP44 VK1629A --- 通讯接口:STB/CLK/DIO    电源电压:5V(4.5~5.5V)    驱动点阵:128 共阴驱动:16段8位   共阳驱动:8段16位   按键:---  封装SOP32 VK1629B --- 通讯接口:STB/CLK/DIO    电源电压:5V(4.5~5.5V)    驱动点阵:112  共阴驱动:14段8位   共阳驱动:8段14位   按键:8x2  封装SOP32 VK1629C --- 通讯接口:STB/CLK/DIO    电源电压:5V(4.5~5.5V)    驱动点阵:120  共阴驱动:15段8位  共阳驱动:8段15位   按键:8x1  封装SOP32 VK1629D --- 通讯接口:STB/CLK/DIO    电源电压:5V(4.5~5.5V)    驱动点阵:96  共阴驱动:12段8位  共阳驱动:8段12位   按键:8x4  封装SOP32 VK1640 --- 通讯接口: CLK/DIN    电源电压:5V(4.5~5.5V)    驱动点阵:128 共阴驱动:8段16位  共阳驱动:16段8位   按键:---  封装SOP28 VK1640B -- 通讯接口: CLK/DIN    电源电压:5V(4.5~5.5V)    驱动点阵:96 共阴驱动:8段12位 共阳驱动:12段8位【封装更小,性价更高】 封装SSOP24 VK1650 --- 通讯接口: SCL/SDA    电源电压:5V(3.0~5.5V)    驱动点阵:8x16 共阴驱动:8段4位   共阳驱动:4段8位   按键:7x4  封装SOP16/DIP16 VK1651 --- 通讯接口: SCL/SDA    电源电压:5V(3.0~5.5V)    驱动点阵:8x14 共阴驱动:7段4位   共阳驱动:4段7位   按键:7x4  封装SOP16/DIP16 VK1668 ---通讯接口:STB/CLK/DIO    电源电压:5V(4.5~5.5V)    驱动点阵:70/52 共阴驱动:10段7位/13段4位  共阳驱动:7段10位   按键:10x2  封装SOP24 VK6932 --- 通讯接口:STB/CLK/DIN    电源电压:5V(4.5~5.5V)    驱动点阵:128 共阴驱动:8段16位17.5/140mA  共阳驱动:16段8位   按键:---  封装SOP32 VK16K33 --- 通讯接口:SCL/SDA   电源电压:5V(4.5V~5.5V)   驱动点阵:128/96/64                  共阴驱动:16段8位/12段8位/8段8位   共阳驱动:8段16位/8段12位/8段8位 按键:13x3 10x3 8x3  封装SOP20/SOP24/SOP28 (所有型号全部封装均有现货,欢迎加Q查询 191 888 5898 许生) RAM映射LCD控制器和驱动器系列 VK1024B  2.4V~5.2V   6seg*4com  6*3   6*2             偏置电压1/2 1/3   S0P-16 VK1056B  2.4V~5.2V   14seg*4com 14*3  14*2             偏置电压1/2 1/3   SOP-24/SSOP-24 VK1072B  2.4V~5.2V   18seg*4com 18*3  18*2             偏置电压1/2 1/3   SOP-28 VK1072C  2.4V~5.2V  18seg*4com  18*3  18*2             偏置电压1/2 1/3   SOP-28 VK1088B  2.4V~5.2V  22seg*4com  22*3                  偏置电压1/2 1/3   QFN-32L(4MM*4MM) VK0192   2.4V~5.2V  24seg*8com                         偏置电压1/4       LQFP-44 VK0256   2.4V~5.2V  32seg*8com                         偏置电压1/4       QFP-64 VK0256B  2.4V~5.2V  32seg*8com                         偏置电压1/4       LQFP-64 VK0256C  2.4V~5.2V  32seg*8com                         偏置电压1/4       LQFP-52 VK1621S-1 2.4V~5.2V  32*4 32*3 32*2   偏置电压1/2 1/3   LQFP44/48/SSOP48/SKY28/DICE裸片 VK1622B  2.7V~5.5V   32seg*8com                        偏置电压1/4       LQFP-48 VK1622S  2.7V~5.5V   32seg*8com          偏置电压1/4     LQFP44/48/52/64/QFP64/DICE裸片 VK1623S  2.4V~5.2V   48seg*8com          偏置电压1/4     LQFP-100/QFP-100/DICE裸片 VK1625    2.4V~5.2V  64seg*8com                 偏置电压1/4    LQFP-100/QFP-100/DICE VK1626    2.4V~5.2V  48seg*16com                偏置电压1/5    LQFP-100/QFP-100/DICE (高品质 高性价比:液晶显示驱动IC  原厂直销 工程技术支持!) (所有型号全部封装均有现货,欢迎加Q查询 191 888 5898 许生) 高抗干扰LCD液晶控制器及驱动系列 VK2C21A  2.4~5.5V  20seg*4com  16*8          偏置电压1/3 1/4   I2C通讯接口    SOP-28 VK2C21B  2.4~5.5V  16seg*4com  12*8          偏置电压1/3 1/4   I2C通讯接口    SOP-24 VK2C21C  2.4~5.5V  12seg*4com  8*8           偏置电压1/3 1/4   I2C通讯接口    SOP-20 VK2C21D  2.4~5.5V  8seg*4com   4*8           偏置电压1/3 1/4   I2C通讯接口    NSOP-16 VK2C22A  2.4~5.5V  44seg*4com                偏置电压1/2 1/3   I2C通讯接口    LQFP-52 VK2C22B  2.4~5.5V  40seg*4com                偏置电压1/2 1/3   I2C通讯接口    LQFP-48 VK2C23A  2.4~5.5V  56seg*4com  52*8          偏置电压1/3 1/4   I2C通讯接口    LQFP-64 VK2C23B  2.4~5.5V  36seg*8com                偏置电压1/3 1/4   I2C通讯接口    LQFP-48 VK2C24   2.4~5.5V  72seg*4com 68*8 60*16     偏置电压1/3 1/4 1/5  I2C通讯接口 LQFP-80                  超低功耗LCD液晶控制器及驱动系列 VKL060   2.5~5.5V  15seg*4com            偏置电压1/2 1/3   I2C通讯接口   SSOP-24 VKL128   2.5~5.5V  32seg*4com            偏置电压1/2 1/3   I2C通讯接口   LQFP-44 VKL144A  2.5~5.5V  36seg*4com            偏置电压1/2 1/3   I2C通讯接口   TSSOP-48 VKL144B  2.5~5.5V  36seg*4com         偏置电压1/2 1/3   I2C通讯接口   QFN48L (6MM*6MM)   静态显示LCD液晶控制器及驱动系列 VKS118   2.4~5.2V  118seg*2com           偏置电压 --       4线通讯接口   LQFP-128 VKS232   2.4~5.2V  116seg*2com           偏置电压1/1 1/2   4线通讯接口   LQFP-128             以上介绍内容为IC参数简介,难免有错漏,且相关IC型号众多,未能一一收录。欢迎联系索取完整资料及样品! 请加许先生 QQ:191 888 5898联系!谢谢    生意无论大小,做人首重诚信!本公司全体员工将既往开来,再接再厉。争取为各位带来更专业的技术支持,更优质的销售服务,更高性价比的好产品.竭诚希望能与各位客户朋友深入沟通,携手共进,共同成长,合作共赢!谢谢。  http://www.szvinka.com/

    标签: 1640 1640B SSOP 6932 VK 24 TM 脚位 封装 体积

    上传时间: 2018-11-24

    上传用户:szqxw1688