• 1.立即寻址方式 这种寻址方式所提供的操作数直接放在指令中,紧跟在操作码的后面,与操作码一起放在码段区域中。立即数可以是8位的,也可以是16位. 立即寻址主要是用来给寄存器赋初值.  例如:MOV AX,1234H ;十六进制数1234H送入AX。   2.寄存器寻址 操作数包含在CPU的内部寄存器中,例如寄存器AX、BX、SI、DI等, 虽然操作数可在CPU的内部通用寄存器的任一个中,且它们都能参与算术运算和逻辑运算并存放运算结果。但是AX是累加器,若结果是存放在AX中,则通常指令要更短些,更紧凑些。
  • 1.立即寻址方式 这种寻址方式所提供的操作数直接放在指令中,紧跟在操作码的后面,与操作码一起放在码段区域中。立即数可以是8位的,也可以是16位. 立即寻址主要是用来给寄存器赋初值. 例如:MOV AX,1234H ;十六进制数1234H送入AX。 2.寄存器寻址 操作数包含在CPU的内部寄存器中,例如寄存器AX、BX、SI、DI等, 虽然操作数可在CPU的内部通用寄存器的任一个中,且它们都能参与算术运算和逻辑运算并存放运算结果。但是AX是累加器,若结果是存放在AX中,则通常指令要更短些,更紧凑些。 >>
  • 来源:www2.eefocus.com/book/09-05/739521276059757.html
  • 在汇编语言中寄存器R0~R13为保存数据或地址值的通用寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊用途,并且可用于任何使用通用寄存器的指令。其中R0~R7为未分组的寄存器,也就是说对于任何处理器模式,这些寄存器都对应于相同的32位物理寄存器。寄存器R8~R14为分组寄存器。它们所对应的物理寄存器取决于当前的处理器模式,几乎所有允许使用通用寄存器的指令都允许使用分组寄存器。寄存器R8~R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。这样在发生FIQ中断
  • 在汇编语言中寄存器R0~R13为保存数据或地址值的通用寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊用途,并且可用于任何使用通用寄存器的指令。其中R0~R7为未分组的寄存器,也就是说对于任何处理器模式,这些寄存器都对应于相同的32位物理寄存器。寄存器R8~R14为分组寄存器。它们所对应的物理寄存器取决于当前的处理器模式,几乎所有允许使用通用寄存器的指令都允许使用分组寄存器。寄存器R8~R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。这样在发生FIQ中断 >>
  • 来源:www.61ic.com/code/viewthread.php?tid=22166
  • 这两天做项目,需要用到 CRC 校验。以前没搞过这东东,以为挺简单的。结果看看别人提供的汇编源程序,居然看不懂。花了两天时间研究了一下 CRC 校验,希望我写的这点东西能够帮助和我有同样困惑的朋友节省点时间。 先是在网上下了一堆乱七八遭的资料下来,感觉都是一个模样,全都是从 CRC 的数学原理开始,一长串的表达式看的我头晕。第一次接触还真难以理解。这些东西不想在这里讲,随便找一下都是一大把。我想根据源代码来分析会比较好懂一些。 费了老大功夫,才搞清楚 CRC 根据”权”(即多项表达
  • 这两天做项目,需要用到 CRC 校验。以前没搞过这东东,以为挺简单的。结果看看别人提供的汇编源程序,居然看不懂。花了两天时间研究了一下 CRC 校验,希望我写的这点东西能够帮助和我有同样困惑的朋友节省点时间。 先是在网上下了一堆乱七八遭的资料下来,感觉都是一个模样,全都是从 CRC 的数学原理开始,一长串的表达式看的我头晕。第一次接触还真难以理解。这些东西不想在这里讲,随便找一下都是一大把。我想根据源代码来分析会比较好懂一些。 费了老大功夫,才搞清楚 CRC 根据”权”(即多项表达 >>
  • 来源:www.baiheee.com/Documents/090107/090107125924.htm
  • 前段时间做了个迷你电子称跟大家分享一下。 当时设计的时候想着用两节五号干电池让它工作,综合了一下成本,选用了STC15W408AS 20P 做主控,采用74HC595串口驱动数码管做显示。 不得不在这里赞扬一下STC15W408AS这个单片机,个人认为它价格便宜,功能强大,引脚少,更重要的是工作电压是5.
  • 前段时间做了个迷你电子称跟大家分享一下。 当时设计的时候想着用两节五号干电池让它工作,综合了一下成本,选用了STC15W408AS 20P 做主控,采用74HC595串口驱动数码管做显示。 不得不在这里赞扬一下STC15W408AS这个单片机,个人认为它价格便宜,功能强大,引脚少,更重要的是工作电压是5. >>
  • 来源:www.ndiy.cn/forum.php?mod=viewthread&tid=33868&highlight=STC15W
  • 3.2 计数器模式 3.2.1 向上计数模式   在向上计数模式中,计数器从0计数到自动加载值(TIMx_ARR计数器的内容),然后重新从0开始计数并且产生一个计数器溢出事件。   每次计数器溢出时可以产生更新事件,在TIMx_EGR寄存器中(通过软件方式或者使用从模式控制器)设置UG位也同样可以产生一个更新事件。   设置TIMx_CR1 寄存器中的UDIS位,可以禁止更新事件;这样可以避免在向预装载寄存器中写入新值时更新影子寄存器。在UDIS位被清’0’之前,将不产生更新事件。
  • 3.2 计数器模式 3.2.1 向上计数模式   在向上计数模式中,计数器从0计数到自动加载值(TIMx_ARR计数器的内容),然后重新从0开始计数并且产生一个计数器溢出事件。   每次计数器溢出时可以产生更新事件,在TIMx_EGR寄存器中(通过软件方式或者使用从模式控制器)设置UG位也同样可以产生一个更新事件。   设置TIMx_CR1 寄存器中的UDIS位,可以禁止更新事件;这样可以避免在向预装载寄存器中写入新值时更新影子寄存器。在UDIS位被清’0’之前,将不产生更新事件。 >>
  • 来源:www.mamicode.com/info-detail-925532.html
  • cpsr分为四个域,每个域有8位的宽度:flags,status,extension和control.control域包含处理器模式和状态以及中断屏蔽位.flags域包含condition flags.处理器模式决定了当前哪些寄存器是可用的以及cpsr本身的访问权限. 当发生异常时,arm会自动将cpsr保存到spsr寄存器中。 二、 处理器模式 处理器模式分为特权模式和非特权模式:特权模式对cpsr有完全的读写控制.
  • cpsr分为四个域,每个域有8位的宽度:flags,status,extension和control.control域包含处理器模式和状态以及中断屏蔽位.flags域包含condition flags.处理器模式决定了当前哪些寄存器是可用的以及cpsr本身的访问权限. 当发生异常时,arm会自动将cpsr保存到spsr寄存器中。 二、 处理器模式 处理器模式分为特权模式和非特权模式:特权模式对cpsr有完全的读写控制. >>
  • 来源:www.lxway.com/4469062894.htm
  • 所以,发送和接收寄存器可使用同一地址,编写验证程序(发送和接收是独立空间):读取一个数(1)->发送一个数(2)->再读取得1则是独立空间 不知道STM32串口寄存器和C51串口寄存器是否同样道理 STM32串口寄存器:STM32的发送与接收是通过数据寄存器USART_DR来实现的,这是一个双寄存器,包含了TDR和RDR,对它读操作,读取的是RDR寄存器的值,对它的写操作,实际上是写到TDR寄存器的;当向该寄存器写数据的时候,串口就会自动发送,当收到收据的时候,也是存在该寄存器内。
  • 所以,发送和接收寄存器可使用同一地址,编写验证程序(发送和接收是独立空间):读取一个数(1)->发送一个数(2)->再读取得1则是独立空间 不知道STM32串口寄存器和C51串口寄存器是否同样道理 STM32串口寄存器:STM32的发送与接收是通过数据寄存器USART_DR来实现的,这是一个双寄存器,包含了TDR和RDR,对它读操作,读取的是RDR寄存器的值,对它的写操作,实际上是写到TDR寄存器的;当向该寄存器写数据的时候,串口就会自动发送,当收到收据的时候,也是存在该寄存器内。 >>
  • 来源:www.cnblogs.com/cj2014/p/3969951.html
  • 1.立即寻址方式 这种寻址方式所提供的操作数直接放在指令中,紧跟在操作码的后面,与操作码一起放在码段区域中。立即数可以是8位的,也可以是16位. 立即寻址主要是用来给寄存器赋初值.  例如:MOV AX,1234H ;十六进制数1234H送入AX。   2.寄存器寻址 操作数包含在CPU的内部寄存器中,例如寄存器AX、BX、SI、DI等, 虽然操作数可在CPU的内部通用寄存器的任一个中,且它们都能参与算术运算和逻辑运算并存放运算结果。但是AX是累加器,若结果是存放在AX中,则通常指令要更短些,更紧凑些。
  • 1.立即寻址方式 这种寻址方式所提供的操作数直接放在指令中,紧跟在操作码的后面,与操作码一起放在码段区域中。立即数可以是8位的,也可以是16位. 立即寻址主要是用来给寄存器赋初值. 例如:MOV AX,1234H ;十六进制数1234H送入AX。 2.寄存器寻址 操作数包含在CPU的内部寄存器中,例如寄存器AX、BX、SI、DI等, 虽然操作数可在CPU的内部通用寄存器的任一个中,且它们都能参与算术运算和逻辑运算并存放运算结果。但是AX是累加器,若结果是存放在AX中,则通常指令要更短些,更紧凑些。 >>
  • 来源:www2.eefocus.com/book/09-05/739521276059757.html
  • 摘要:本文主要介绍了智能图像传感器DVT的在线检测,并且对检测结果获取、传输方面技术进行了说明,以及智能传感器和外围设备之间通信的研究。表明其获取结果多样性。本文举例应用智能传感器DVT630对工件小孔定位、半径测量,实验表明此传感器灵活性高,检测结果准确,提高工业流水生长线上的检测效率。 1、引言 DVT机器视觉系统,是能够代替人眼的计算机系统,是为适应图像、字符自动化生产线的检测和监控而研究开发的。 在高速、批量、连续的自动化生产过程中,往往需要视觉系统进行OCR字符及各种号码识别、质量检查、色彩与几
  • 摘要:本文主要介绍了智能图像传感器DVT的在线检测,并且对检测结果获取、传输方面技术进行了说明,以及智能传感器和外围设备之间通信的研究。表明其获取结果多样性。本文举例应用智能传感器DVT630对工件小孔定位、半径测量,实验表明此传感器灵活性高,检测结果准确,提高工业流水生长线上的检测效率。 1、引言 DVT机器视觉系统,是能够代替人眼的计算机系统,是为适应图像、字符自动化生产线的检测和监控而研究开发的。 在高速、批量、连续的自动化生产过程中,往往需要视觉系统进行OCR字符及各种号码识别、质量检查、色彩与几 >>
  • 来源:www.dt365.com/Article/HTML/20120705213327_9469.html
  • 可能你已经注意到了,表 5-2 的 TCON 最后标注了“可位寻址”,而表 5-4 的 TMOD 标注的是“不可位寻址”。意思就是说:比如 TCON 有一个位叫 TR1,我们可以在程序中直接进行 TR1 = 1 这样的操作。但对 TMOD 里的位比如(T1)M1 = 1 这样的操作就是错误的。我们要操作就必须一次操作这整个字节,也就是必须一次性对 TMOD 所有位操作,不能对其中某一位单独进行操作,那么我们能不能只修改其中的一位而不影响其它位的值呢?当然可以
  • 可能你已经注意到了,表 5-2 的 TCON 最后标注了“可位寻址”,而表 5-4 的 TMOD 标注的是“不可位寻址”。意思就是说:比如 TCON 有一个位叫 TR1,我们可以在程序中直接进行 TR1 = 1 这样的操作。但对 TMOD 里的位比如(T1)M1 = 1 这样的操作就是错误的。我们要操作就必须一次操作这整个字节,也就是必须一次性对 TMOD 所有位操作,不能对其中某一位单独进行操作,那么我们能不能只修改其中的一位而不影响其它位的值呢?当然可以 >>
  • 来源:c.biancheng.net/cpp/html/1878.html
  • 看门狗定时器WDT是一片内自振荡式RC振荡器,即使外部振荡器被关闭(即工作在休眠模式),WDT也一直在计数。当WDT被使能,无论是在工作模式或休眠模式,若WDT超时,都将导致单片机复位,因此WDT主要用来防止单片机系统失控,一般WDT基本溢出周期约18ms(PAB=0),最大溢出周期约2.
  • 看门狗定时器WDT是一片内自振荡式RC振荡器,即使外部振荡器被关闭(即工作在休眠模式),WDT也一直在计数。当WDT被使能,无论是在工作模式或休眠模式,若WDT超时,都将导致单片机复位,因此WDT主要用来防止单片机系统失控,一般WDT基本溢出周期约18ms(PAB=0),最大溢出周期约2. >>
  • 来源:www.zsgbailin.com/emjg2.htm
  • C串行总线标准,这里不再赘述。而S5920外加总线信号分为输入(in)、输出(out)和双向三态(t/s)三种。下面对S5920的外加总线引脚作一分类描述: 3.1 信箱通道引脚   MDMODE:(in),信箱通道数据模式选择端。高电平时,MD[70]信号恒为输入;低电平时,由LOAD#信号控制MD[70]为输入或输出。 LOAD#:(in),高电平时,MD[70]为输入,下一个时钟ADCLK的上升沿将数据锁入到外加总线输出信箱寄存器的第三字节;当低电平且MDMODE为0时,MD[70]上显示PC
  • C串行总线标准,这里不再赘述。而S5920外加总线信号分为输入(in)、输出(out)和双向三态(t/s)三种。下面对S5920的外加总线引脚作一分类描述: 3.1 信箱通道引脚   MDMODE:(in),信箱通道数据模式选择端。高电平时,MD[70]信号恒为输入;低电平时,由LOAD#信号控制MD[70]为输入或输出。 LOAD#:(in),高电平时,MD[70]为输入,下一个时钟ADCLK的上升沿将数据锁入到外加总线输出信箱寄存器的第三字节;当低电平且MDMODE为0时,MD[70]上显示PC >>
  • 来源:lunwen.freekaoyan.com/ligonglunwen/dianzi/20080216/120313686576916.shtml
  • 1、时序图 2、控制字 3、寄存器地址与RAM地址 4、代码 时序图  控制字  寄存器与RAM  代码: #include <reg52.h> #include <intrins.h> sbit dm = P2^2; //段码 sbit wm = P2^3; //位码 sbit st = P1^6; //使能(RST) sbit cl = P1^4; //时钟管脚(CLK) sbit da = P1^5; //i/o管脚(数据管脚)(i/o) /*这两个函数就这时钟芯片的精髓*/
  • 1、时序图 2、控制字 3、寄存器地址与RAM地址 4、代码 时序图 控制字 寄存器与RAM 代码: #include <reg52.h> #include <intrins.h> sbit dm = P2^2; //段码 sbit wm = P2^3; //位码 sbit st = P1^6; //使能(RST) sbit cl = P1^4; //时钟管脚(CLK) sbit da = P1^5; //i/o管脚(数据管脚)(i/o) /*这两个函数就这时钟芯片的精髓*/ >>
  • 来源:www.51hei.com/bbs/dpj-30428-1.html
  • 本系统采用常见的51单片机作为主控芯片,程序开始对单片机初始化,再对12864液晶初始化和始终芯片ds1302初始化后主控芯片就一直检测卡片传过来的信息并对其解码还原成卡号。并通过按键检测来识别身份和与内部存储的卡号对比来控制继电器的开关模拟门禁系统。通过程序来读取DS1302内部寄存器的数值来显示时间。 本程序是外部电路接收到开卡发回来的曼码与单片机接口相连,单片机检测输入的高低电平的跳变来还原成卡号。具体10跳变解码成1,01跳变解码成0.
  • 本系统采用常见的51单片机作为主控芯片,程序开始对单片机初始化,再对12864液晶初始化和始终芯片ds1302初始化后主控芯片就一直检测卡片传过来的信息并对其解码还原成卡号。并通过按键检测来识别身份和与内部存储的卡号对比来控制继电器的开关模拟门禁系统。通过程序来读取DS1302内部寄存器的数值来显示时间。 本程序是外部电路接收到开卡发回来的曼码与单片机接口相连,单片机检测输入的高低电平的跳变来还原成卡号。具体10跳变解码成1,01跳变解码成0. >>
  • 来源:www.9mcu.com/9mcubbs/forum.php?mod=viewthread&tid=1043948
  • 1、时序图 2、控制字 3、寄存器地址与RAM地址 4、代码 时序图  控制字  寄存器与RAM  代码: #include <reg52.h> #include <intrins.h> sbit dm = P2^2; //段码 sbit wm = P2^3; //位码 sbit st = P1^6; //使能(RST) sbit cl = P1^4; //时钟管脚(CLK) sbit da = P1^5; //i/o管脚(数据管脚)(i/o) /*这两个函数就这时钟芯片的精髓*/
  • 1、时序图 2、控制字 3、寄存器地址与RAM地址 4、代码 时序图 控制字 寄存器与RAM 代码: #include <reg52.h> #include <intrins.h> sbit dm = P2^2; //段码 sbit wm = P2^3; //位码 sbit st = P1^6; //使能(RST) sbit cl = P1^4; //时钟管脚(CLK) sbit da = P1^5; //i/o管脚(数据管脚)(i/o) /*这两个函数就这时钟芯片的精髓*/ >>
  • 来源:www.51hei.com/bbs/dpj-30428-1.html
  • 了解一款芯片,最基本的就是要了解它的寄存器。大家不要因为80386是32位处理器,就认为它的寄存器都是32位的。其实它的寄存器相当的复杂。不仅有32位的,还有16位的,48位的,乃至64位的。80386共有34个寄存器,可分为七类。它们分别是通用寄存器、指令指针和标志寄存器、段寄存器、系统地址寄存器、控制寄存器、调试和测试寄存器。以下是部分常用的寄存器: 一、通用寄存器(8个) 80386有8个32位的通用寄存器,这8个通用寄存器都是由8088/8086/80286的相应16位通用寄存器扩展成32位而得。
  • 了解一款芯片,最基本的就是要了解它的寄存器。大家不要因为80386是32位处理器,就认为它的寄存器都是32位的。其实它的寄存器相当的复杂。不仅有32位的,还有16位的,48位的,乃至64位的。80386共有34个寄存器,可分为七类。它们分别是通用寄存器、指令指针和标志寄存器、段寄存器、系统地址寄存器、控制寄存器、调试和测试寄存器。以下是部分常用的寄存器: 一、通用寄存器(8个) 80386有8个32位的通用寄存器,这8个通用寄存器都是由8088/8086/80286的相应16位通用寄存器扩展成32位而得。 >>
  • 来源:www.61ic.com/Technology/embed/201304/48051.html
  • DM8168的PWM是通过TIMx_OUT引脚输出的,需要对Timer进行配置才能有波形输出。 对Timer的时钟进行配置,确保Timer能正常工作。 设置寄存器之前关闭Timer。 设置定时溢出后的装载值。 设置比较值,该值决定PWM占空比。 设置internal counter值。 启动Timer。 启动DM8168过后,停在U-boot界面,使用U-boot的内存读写工具来进行调试。 一、修改CM_ALWON_TIMER_4_CLKCTRL,该
  • DM8168的PWM是通过TIMx_OUT引脚输出的,需要对Timer进行配置才能有波形输出。 对Timer的时钟进行配置,确保Timer能正常工作。 设置寄存器之前关闭Timer。 设置定时溢出后的装载值。 设置比较值,该值决定PWM占空比。 设置internal counter值。 启动Timer。 启动DM8168过后,停在U-boot界面,使用U-boot的内存读写工具来进行调试。 一、修改CM_ALWON_TIMER_4_CLKCTRL,该 >>
  • 来源:www.jeepshoe.org/454284201.htm