随着电子技术的不断发展,各种智能核仪器逐步走向自动化、智能化、数字化和便携式的方向发展。针对传统的多道脉冲幅度分析器体积大,人机交互不友好,不方便现场分析等的缺陷[5]。新型的高速、集成度高、界面友好的多道脉冲幅度分析器的陆续出现填补了这一缺点。 随着电子技术的发展,以ARM为核的处理器技术的应用领域不断扩大,相比较单片机而言,它的主频高、运算速度快,可以满足多道脉冲幅度分析器的苛刻的时间上的要求。而且ARM处理器功耗小,适合于功耗要求比较苛刻的地方,这些方面的特点正好满足了便携式多道脉冲幅度分析器野外勘察的要求。同时,由于以ARM为核的处理器具有丰富的外设资源,这样就简化了外设电路及芯片的使用,降低了功耗并增强了产品的信赖性。另外,ARM芯片可以方便的移植操作系统,为多道脉冲幅度分析器多任务的管理和并行的处理,甚至硬实时功能的实现提供了前提。而且在ARM平台使用嵌入式linux操作系统使多道脉冲幅度分析器的软件易于升级。 智能化和小型化是多道脉冲幅度分析器的发展趋势。智能化要求系统的自动化程度高、操作简便、容错性好。智能化除了需要控制软件外,还需要软件命令的执行者即硬件控制电路来实现相应的控制逻辑,两者的结合才能真正的实现智能化。小型化要求系统的体积小、功耗小、便于携带;小型化除了要求采用微功耗的器件,还要求电路板的尺寸尽量的小且所用元件尽量的少,但小型化的同时必须保持系统的智能化,即不能减少智能化所要求的复杂的逻辑和时序的控制功能。为此采用高集成度的ARM芯片实现控制电路能满意地同时满足智能化和小型化的要求。在研制的多道脉冲幅度分析器中,几乎所有的控制都可以用控制芯片来实现,如阈值设定、自动稳谱以及多道数据采集,在节省了元件的数目和电路板的尺寸的同时仍能保持系统的智能化程度。 Linux内核精简而高效,可修改性强,支持多种体系结构的处理器等,使得它是一个非常适合于嵌入式开发和应用的操作系统。嵌入式Linux可以运行的硬件平台十分广泛,从x86、MIPS、POWERPC到ARM,以及其他许多硬件体系结构。目前在世界范围内,ARM体系结构的SOC逐渐占领32位嵌入式微处理器市场,ARM处理器及技术的应用几乎已经深入到各个领域,例如:工业控制,无线通讯,网络,消费类电子,成像等。 本课题采用三星公司生产的ARM(Advanced RISC Machines,先进精简指令集机器)芯片S3C2410A设计并研制了一种便携式的核数据采集系统设计方案。利用ARM芯片丰富的外设资源对传统的多道脉冲幅度分析器进行改进和简化。系统由前端探测器系统,以及由线性脉冲放大器、甄别电路、控制电路、采样保持电路组成的前置电路,中央处理器模块,显示模块,用户交互模块,存储模块,网络传输模块等多个模块组成。本设计基于ARM9芯片S3C2410,并在此平台上移植了嵌入式linux操作系统来进行任务的调度和处理等。 电路板核心板部分设计采用6层PCB板结构,这样增加了系统可靠性,提高了电磁兼容的稳定性。数据采集系统是多道脉冲幅度分析器的核心,A/D转换直接使用了S3C2410内置的ADC(Analog to Digital Converter,模数转换器),在2.5 MHz的转换时钟下最大转换速度500 KSPS(Kilo-Samples per second,千采样点每秒),满足了系统最低转换时间≤5 μs的要求,并且控制简单,简化了外部接口电路。由于SD(Secure Digital Card,安全数码卡)卡存储容量大、携带方便、成本低等优点,所以设计中采用其作为外部的数据存储设备,其驱动部分采用SD卡软件包,为开发带来了方便。本设计采用640*480的6.4寸LCD(Liquid Crystal Display,液晶显示)屏作为人机交互的显示部分,并且通过Qt/Embedded为系统提供图形用户界面的应用框架和窗口系统。其中包括了波形显示部分和用户菜单设置部分,这样方便了用户操作。系统的数据存取方面是基于SQLite嵌入式小型数据库而进行的。为了方便数据向上位机的传输,系统设计中采用XML(Extensible Markup Language,可扩展标记语言)格式来组织传输的数据,通过基于TCP/IP(Transmission Control Protocol/Internet Protocol)协议的Linux下Socket套接字编程,来进行与上位机或PC(Personal Computer,个人计算机或桌面机)等的连接和数据传输。
上传时间: 2013-04-24
上传用户:tzl1975
随着科学技术的发展与公共安全保障需求的提高,视频监控系统在工业生产、日常生活、警备与军事方面的应用越来越广泛。采用基于 FPGA 的SOPC技术、H.264压缩编码技术和网络传输控制技术实现网络视频监控系统,在稳定性、功能、成本与扩展性等方面都有着突出的优势,具有重要的学术意义与实用意义, 本课题所设计的网络视频监控系统由以Nios Ⅱ为核心的嵌入式图像服务器、相关网络设备与若干PC机客户端组成。嵌入式图像服务器实时采集图像,采用H.264 编码算法进行压缩,并持续监听网络。PC机客户端可通过网络对服务器进行远程访问,接收编码数据,使用H.264解码算法重建图像并实时显示,使监控人员有效地掌握现场情况, 在嵌入式图像服务器设计阶段,本文首先进行了芯片选型与开发平台选择。然后构建图像采集子系统,采用双缓存乒乓交换的方法设计图像采集用户自定义模块。接着设计双Nios Ⅱ架构的SOPC系统,阐述了双软核设计中定制连接、内存芯片共享、数据搬移、通信与互斥的解决方法。同时完成了网络服务器的设计,采用μC/OS-Ⅱ进行多任务的管理与调度, H.264视频压缩编解码算法设计与实现是本文的重点。文中首先分析H.264.标准,规划编解码器结构。接着设计了16×16帧内预测算法,并设计宏块扫描方式,采用两次判决策略进行预测模式选择。然后设计4×4子块扫描方式,编写整数变换与量化算法程序。熵编码采用Exp-Golomb编码与CAVLC相结合的方案,针对除拖尾系数之外的非零系数值编码子算法,实现了一种基于表示范围判别的编码方法。最后设计了网络传输的码流组成格式,并针对编码算法设计相应解码算法。使用VC++完成算法验证,并进行测试,观察不同参数下压缩率与失真度的变化。 算法验证完成后,本文进行了PC机客户端设计,使其具有远程访问、H.264解码与实时显示的功能。同时将H.264 编码算法程序移植到NiosⅡ中,并将嵌入式图像服务器与若干客户端接入网络进行联合调试,构建完整的网络视频监控系统, 实验结果表明,本系统视频压缩率高,监控图像质量良好,充分证明了系统软硬件与图像编解码算法设计成功。本系统具有成本低、扩展性好及适用范围广等优点,发展前景十分广阔。
上传时间: 2013-08-03
上传用户:88mao
最新Cadence Allegro 16.6破解版,Windows 7下32位和64位,经实际测试,顺利运行,请仔细阅读安装说明。 后面附有高速百度网盘下载链接,压缩包中包括破解文件及安装说明,下面 Cadence16.6的版本个人感觉值得更新,有很多更新真心很实用很强大,但最重要的Display net names的功能的加入实在是感激涕零啊,因为当初从AD转到Cadence16.3时最不习惯的就是PCB上木有NET显示啊... 小弟win7安装时破解方法如下: 具体的步骤: 1、安装licensemanager,问license时,单击cancel,然后finish. 2、接下来安装cadence的product,即第二项,直到结束. 3、在任务管理器中确认一下是否有这两个进程,有就结束掉,即cdsNameServer.exe和cdsMsgServer.exe,没有就算了.(电脑开机没运行过Cadence软件就不用执行这一步). 5、把破解文件夹crack中LicenseManager文件夹下的pubkey、pubkey.exe和lLicenseManagerPubkey.bat放到Cadence\\LicenseManager目录下并运行lLicenseManagerPubkey.bat (如果是WIN764位操作系统请把cdslmd.exe文件复制到Cadence\\LicenseManager目录下覆盖原文件。其他操作系统不用,直接下一步) 6、把破解文件夹crack里crack\\SPB_16.6\\tools的pubkey、pubkey.exe和Tools.bat放到Cadence\\SPB_16.6\\tools目录下并运行Tools.bat (注意看一下DOS窗口会不会一闪而过,如果运行差不多一分钟就说明破解成功) 7、打开破解文件夹crack里LicGen文件夹,然后双击licgen.bat生成新的license.lic,习惯上把这license文件拷到桌面上放着. 8.在电脑开始菜单中的程序里找到cadence文件夹,点开再点开License Manager,运行License servers configuration Unilily,弹出的对话框中点browes...指向第7步拷贝到桌面上的license.lic,打开 它(open)再点下一步(next),将Host Name项中主机名改成你的电脑系统里的主机名(完整的计算机名称),然后点下一步按界面提示直到完成第7步. 9.在电脑开始菜单中的程序里找到cadence文件夹(windows7下),点开再点开,运行License client configuration Unility,填入5280@(你的主机名),点下一步(next),最后点finish,完成这第8步. 10.在电脑开始菜单中的程序里找到cadence文件夹(windows7下),点开再点开,运行Lm Tools,点Config Services项,Path to the license file项中,点Browes指向c:\\cadence\\License Manager\\license.dat(如果看不见icense.dat,请在类型中下拉选择DAT类型),打开它 (open)再点Save Service.然后启动一下服务。到此,破解完成. 11、如果以上步骤都完成了,打开软件提示找不到证书,请打开环境变量,用户变量中看看 CDS_LIC_FILE 变量值是否为 5280@(你的主机名),如果没 CDS_LIC_FILE变量名,请添加一个变量。变量名为CDS_LIC_FILE 变量值为 5280@(你的主机名) 12. 64位操作系统,软件破解完请把cdslmd.exe文件复制到Cadence\\LicenseManager目录下覆盖原文件。 附我用的破解文件,希望给win7安装不成功的有点帮助
标签: Cadence Allegro Crack 16.6
上传时间: 2013-07-23
上传用户:
2013.6.25重新上传。文件rar压缩,容量2.19GB。 Cadence Allegro 16.5 crack 修正 破解 方法 支持 windows 7 具体的步骤: . 1、下载SPB16.5下来后,点setup.exe,先安装第一项licensemanager,问license时,单击cancel,然后finish. . 2、接下来安装cadence的product,即第二项,直到安装结束这个时间有点长装过以前版本的人都知道. . 3、在任务管理器中确认一下是否有这两个进程,有就结束掉,即cdsNameServer.exe和cdsMsgServer.exe,没有就算了. . 4.把安装目录下的SPB_16.5/tools/pspice目录下的orsimsetup.dll剪切出来找个地方先放着不理(待第8步完成后再拷回原来的地方,如果不用仿真部分删掉也无所谓)。 . 5、把pubkey、pubkey1.3.exe和lLicenseManagerPubkey.bat放到Cadence/LicenseManager目录下并运行 . lLicenseManagerPubkey.bat . 6、把破解文件夹crack里的pubkey、pubkey1.3.exe和ToolsPubkey.bat放到Cadence/SPB_16.5/tools目录下并运行 . ToolsPubkey.bat . 7、删除破解文件夹licens_gen下的license.lic,然后双击licgen.bat生成新的license.lic . 8.在电脑开始菜单中的程序里找到cadence文件夹(windows7下),点开 再点开License Manager,运行License servers . configuration Unilily,弹出的对话框中点browes...指向刚才生成的license.lic打开 它(open)再点下一步 . (next),将主机名改成你的电脑名称(系统里的主机名)后点下一步按界面提示直 . 到完成第7步. . 到此,破解完成. . 不必重启电脑就可运行程序(本人只在window7下装过) . 9、以上顺序不要搞反,直到第8便结束破解,无需重电脑就可以用了. . 以上根据rx-78gp02a写的改编.破解文件到他那去下载. . 以下两点仅供参考(完成上处8点后接着以下两条) . 1.在电脑开始菜单中的程序里找到cadence文件夹(windows7下),点开再点开,运行License client configuration Unility,不用填什么,点下一步(next),最后点finish,完成这第8步. . 2.在电脑开始菜单中的程序里找到cadence文件夹(windows7下),点开再点开,运行Lm Tools,点Config Services项,Path to the license file项中,点Browes指向c:/License Manager/license.lic,打开它 (open)再点Save Service. 到此,破解完成.不必重启电脑就可运行程序. 下面是分享的高速下载地址,经测试,带宽可以跑满!
上传时间: 2013-07-23
上传用户:
特点: 精确度0.1%满刻度 可作各式數學演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A|/ 16 BIT类比输出功能 输入与输出绝缘耐压2仟伏特/1分钟(input/output/power) 宽范围交直流兩用電源設計 尺寸小,穩定性高
上传时间: 2014-12-23
上传用户:ydd3625
特点(FEATURES) 精确度0.1%满刻度 (Accuracy 0.1%F.S.) 可作各式数学演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A| (Math functioA+B/A-B/AxB/A/B/A&B(Hi&Lo)/|A|/etc.....) 16 BIT 类比输出功能(16 bit DAC isolating analog output function) 输入/输出1/输出2绝缘耐压2仟伏特/1分钟(Dielectric strength 2KVac/1min. (input/output1/output2/power)) 宽范围交直流两用电源设计(Wide input range for auxiliary power) 尺寸小,稳定性高(Dimension small and High stability)
上传时间: 2013-11-24
上传用户:541657925
附件是51mini仿真器中文使用手册,其中包括有51mini的驱动,USB安装指南及USB驱动程序。 2003 年 SST 公司推出了 SST89C54/58 芯片,并且在官方网站公布了单片机仿真程序,配合 KEIL 可以实现标 准 51 内核芯片的单步调试等等,从而实现了一个简单的 51 单片机仿真方案,将仿真器直接拉低到一颗芯片的价 格。 但是, 1 分钱 1 分货,这个仿真方案由于先天的缺陷存在若干重大问题: 占用 p30,p31 端口 占用定时器 2 占用 8 个 sp 空间 运行速度慢 最高通信速度只有 38400,无法运行 c 语言程序。(由于 c 语言程序会调用库文件,每单步一次 的时间足够你吃个早饭) 所以,网上大量销售的这种这种仿真器最多只能仿真跑马灯等简单程序,并没有实际使用价值。51mini 是深 圳市学林电子有限公司开发生产的具有自主知识产权的新一代专业仿真器,采用双 CPU 方案,一颗负责和 KEIL 解 释,另外一颗负责运行用户程序,同时巧妙利用 CPU 的 P4 口通信,释放 51 的 P30,P31,完美解决了上述问题, 体积更小,是目前价格最低的专业级别 51 单片机仿真器,足以胜任大型项目开发。 51mini仿真器创新设计: 1 三明治夹心双面贴片,体积缩小到只有芯片大小,真正的“嵌入式”结构。 2 大量采用最新工艺和器件,全贴片安装,进口钽电容,贴片电解。 3 采用快恢复保险,即便短路也可有效保护。 4 单 USB 接口,无需外接电源和串口,台式电脑、无串口的笔记本均适用。三 CPU 设计,采用仿真芯片+监控 芯片+USB 芯片结构,是一款真正独立的仿真器,不需要依赖开发板运行。 5 下载仿真通讯急速 115200bps,较以前版本提高一个数量级(10 倍以上),单步运行如飞。 6 不占资源,无限制真实仿真(32 个 IO、串口、T2 可完全单步仿真),真实仿真 32 条 IO 脚,包括任意使用 P30 和 P31 口。 7 兼容 keilC51 UV2 调试环境支持单步、断点、随时可查看寄存器、变量、IO、内存内容。可仿真各种 51 指 令兼容单片机,ATMEL、Winbond、INTEL、SST、ST 等等。可仿真 ALE 禁止,可仿真 PCA,可仿真双 DPTR,可仿真 硬件 SPI。媲美 2000 元级别专业仿真器! 8 独创多声响和 led 指示实时系统状态和自检。 9 独创长按复位键自动进入脱机运行模式,这时仿真机就相当于目标板上烧好的一个芯片,可以更加真实的运 行。这种情况下实际上就变了一个下载器,而且下次上电时仍然可以运行上次下载的程序。 USB 驱动的安装 第一步:用随机 USB 通讯电缆连接仪器的 USB 插座和计算机 USB口;显示找到新硬件向导,选择“从列表或指定位置安装(高级)”选项,进入下一步; 第二步:选择“在搜索中包括这个位置”,点击“浏览”,定位到配套驱动光盘的驱动程序文件夹,如 E:\驱动程序\XLISP 驱动程序\USBDRIVER2.0\,进入下一步; 第三步:弹出“硬件安装”对话框,如果系统提示“没有通过Windows 徽标测试…”,不用理会,点击“仍然继续”,向导即开始安装软件;然后弹出“完成找到新硬件向导”对话框,点击完成。 第四步:系统第二次弹出“找到新的硬件向导”对话框,重复以上几个步骤; 右下角弹出对话框“新硬件已安装并可以使用了”,表明 USB 驱动已成功安装。你可以进入系统的:控制面板\系统\硬件\设备管理器中看到以下端口信息, 表示系统已经正确的安装了 USB 驱动。
上传时间: 2013-11-02
上传用户:猫爱薛定谔
a_bit equ 20h ;个位数存放处 b_bit equ 21h ;十位数存放处 temp equ 22h ;计数器寄存器 star: mov temp,#0 ;初始化计数器 stlop: acall display inc temp mov a,temp cjne a,#100,next ;=100重来 mov temp,#0 next: ljmp stlop ;显示子程序 display: mov a,temp ;将temp中的十六进制数转换成10进制 mov b,#10 ;10进制/10=10进制 div ab mov b_bit,a ;十位在a mov a_bit,b ;个位在b mov dptr,#numtab ;指定查表启始地址 mov r0,#4 dpl1: mov r1,#250 ;显示1000次 dplop: mov a,a_bit ;取个位数 MOVC A,@A+DPTR ;查个位数的7段代码 mov p0,a ;送出个位的7段代码
上传时间: 2013-11-06
上传用户:lx9076
单片机指令系统原理 51单片机的寻址方式 学习汇编程序设计,要先了解CPU的各种寻址法,才能有效的掌握各个命令的用途,寻址法是命令运算码找操作数的方法。在我们学习的8051单片机中,有6种寻址方法,下面我们将逐一进行分析。 立即寻址 在这种寻址方式中,指令多是双字节的,一般第一个字节是操作码,第二个字节是操作数。该操作数直接参与操作,所以又称立即数,有“#”号表示。立即数就是存放在程序存储器中的常数,换句话说就是操作数(立即数)是包含在指令字节中的。 例如:MOV A,#3AH这条指令的指令代码为74H、3AH,是双字节指令,这条指令的功能是把立即数3AH送入累加器A中。MOV DPTR,#8200H在前面学单片机的专用寄存器时,我们已学过,DPTR是一个16位的寄存器,它由DPH及DPL两个8位的寄存器组成。这条指令的意思就是把立即数的高8位(即82H)送入DPH寄存器,把立即数的低8位(即00H)送入DPL寄存器。这里也特别说明一下:在80C51单片机的指令系统中,仅有一条指令的操作数是16位的立即数,其功能是向地址指针DPTR传送16位的地址,即把立即数的高8位送入DPH,低8位送入DPL。 直接寻址 直接寻址方式是指在指令中操作数直接以单元地址的形式给出,也就是在这种寻址方式中,操作数项给出的是参加运算的操作数的地址,而不是操作数。例如:MOV A,30H 这条指令中操作数就在30H单元中,也就是30H是操作数的地址,并非操作数。 在80C51单片机中,直接地址只能用来表示特殊功能寄存器、内部数据存储器以及位地址空间,具体的说就是:1、内部数据存储器RAM低128单元。在指令中是以直接单元地址形式给出。我们知道低128单元的地址是00H-7FH。在指令中直接以单元地址形式给出这句话的意思就是这0-127共128位的任何一位,例如0位是以00H这个单元地址形式给出、1位就是以01H单元地址给出、127位就是以7FH形式给出。2、位寻址区。20H-2FH地址单元。3、特殊功能寄存器。专用寄存器除以单元地址形式给出外,还可以以寄存器符号形式给出。例如下面我们分析的一条指令 MOV IE,#85H 前面的学习我们已知道,中断允许寄存器IE的地址是80H,那么也就是这条指令可以以MOV IE,#85H 的形式表述,也可以MOV 80H,#85H的形式表述。 关于数据存储器RAM的内部情况,请查看我们课程的第十二课。 直接寻址是唯一能访问特殊功能寄存器的寻址方式! 大家来分析下面几条指令:MOV 65H,A ;将A的内容送入内部RAM的65H单元地址中MOV A,direct ;将直接地址单元的内容送入A中MOV direct,direct;将直接地址单元的内容送直接地址单元MOV IE,#85H ;将立即数85H送入中断允许寄存器IE 前面我们已学过,数据前面加了“#”的,表示后面的数是立即数(如#85H,就表示85H就是一个立即数),数据前面没有加“#”号的,就表示后面的是一个地址地址(如,MOV 65H,A这条指令的65H就是一个单元地址)。 寄存器寻址 寄存器寻址的寻址范围是:1、4个工作寄存器组共有32个通用寄存器,但在指令中只能使用当前寄存器组(工作寄存器组的选择在前面专用寄存器的学习中,我们已知道,是由程序状态字PSW中的RS1和RS0来确定的),因此在使用前常需要通过对PSW中的RS1、RS0位的状态设置,来进行对当前工作寄存器组的选择。2、部份专用寄存器。例如,累加器A、通用寄存器B、地址寄存器DPTR和进位位CY。 寄存器寻址方式是指操作数在寄存器中,因此指定了寄存器名称就能得到操作数。例如:MOV A,R0这条指令的意思是把寄存器R0的内容传送到累加器A中,操作数就在R0中。INC R3这条指令的意思是把寄存器R3中的内容加1 从前面的学习中我产应可以理解到,其实寄存器寻址方式就是对由PSW程序状态字确定的工作寄存器组的R0-R7进行读/写操作。 寄存器间接寻址 寄存间接寻址方式是指寄存器中存放的是操作数的地址,即操作数是通过寄存器间接得到的,因此称为寄存器间接寻址。 MCS-51单片机规定工作寄存器的R0、R1做为间接寻址寄存器。用于寻址内部或外部数据存储器的256个单元。为什么会是256个单元呢?我们知道,R0或者R1都是一个8位的寄存器,所以它的寻址空间就是2的八次方=256。例:MOV R0,#30H ;将值30H加载到R0中 MOV A,@R0 ;把内部RAM地址30H内的值放到累加器A中 MOVX A,@R0 ;把外部RAM地址30H内的值放到累加器A中 大家想想,如果用DPTR做为间址寄存器,那么它的寻址范围是多少呢?DPTR是一个16位的寄存器,所以它的寻址范围就是2的十六次方=65536=64K。因用DPTR做为间址寄存器的寻址空间是64K,所以访问片外数据存储器时,我们通常就用DPTR做为间址寄存器。例:MOV DPTR,#1234H ;将DPTR值设为1234H(16位) MOVX A,@DPTR ;将外部RAM或I/O地址1234H内的值放到累加器A中 在执行PUSH(压栈)和POP(出栈)指令时,采用堆栈指针SP作寄存器间接寻址。例:PUSH 30H ;把内部RAM地址30H内的值放到堆栈区中堆栈区是由SP寄存器指定的,如果执行上面这条命令前,SP为60H,命令执行后会把内部RAM地址30H内的值放到RAM的61H内。 那么做为寄存器间接寻址用的寄存器主要有哪些呢?我们前面提到的有四个,R0、R1、DPTR、SP 寄存器间接寻址范围总结:1、内部RAM低128单元。对内部RAM低128单元的间接寻址,应使用R0或R1作间址寄存器,其通用形式为@Ri(i=0或1)。 2、外部RAM 64KB。对外部RAM64KB的间接寻址,应使用@DPTR作间址寻址寄存器,其形式为:@DPTR。例如MOVX A,@DPTR;其功能是把DPTR指定的外部RAM的单元的内容送入累加器A中。外部RAM的低256单元是一个特殊的寻址区,除可以用DPTR作间址寄存器寻址外,还可以用R0或R1作间址寄存器寻址。例如MOVX A,@R0;这条指令的意思是,把R0指定的外部RAM单元的内容送入累加器A。 堆栈操作指令(PUSH和POP)也应算作是寄存器间接寻址,即以堆栈指针SP作间址寄存器的间接寻址方式。 寄存器间接寻址方式不可以访问特殊功能寄存器!! 寄存器间接寻址也须以寄存器符号的形式表示,为了区别寄存器寻址我寄存器间接寻址的区别,在寄存器间接寻址方式式中,寄存器的名称前面加前缀标志“@”。 基址寄存器加变址寄存器的变址寻址 这种寻址方式以程序计数器PC或DPTR为基址寄存器,累加器A为变址寄存器,变址寻址时,把两者的内容相加,所得到的结果作为操作数的地址。这种方式常用于访问程序存储器ROM中的数据表格,即查表操作。变址寻址只能读出程序内存入的值,而不能写入,也就是说变址寻址这种方式只能对程序存储器进行寻址,或者说它是专门针对程序存储器的寻址方式。例:MOVC A,@A+DPTR这条指令的功能是把DPTR和A的内容相加,再把所得到的程序存储器地址单元的内容送A假若指令执行前A=54H,DPTR=3F21H,则这条指令变址寻址形成的操作数地址就是54H+3F21H=3F75H。如果3F75H单元中的内容是7FH,则执行这条指令后,累加器A中的内容就是7FH。 变址寻址的指令只有三条,分别如下:JMP @A+DPTRMOVC A,@A+DPTRMOVC A,@A+PC 第一条指令JMP @A+DPTR这是一条无条件转移指令,这条指令的意思就是DPTR加上累加器A的内容做为一个16位的地址,执行JMP这条指令是,程序就转移到A+DPTR指定的地址去执行。 第二、三条指令MOVC A,@A+DPTR和MOVC A,@A+PC指令这两条指令的通常用于查表操作,功能完全一样,但使用起来却有一定的差别,现详细说明如下。我们知道,PC是程序指针,是十六位的。DPTR是一个16位的数据指针寄存器,按理,它们的寻址范围都应是64K。我们在学习特殊功能寄存器时已知道,程序计数器PC是始终跟踪着程序的执行的。也就是说,PC的值是随程序的执行情况自动改变的,我们不可以随便的给PC赋值。而DPTR是一个数据指针,我们就可以给空上数据指针DPTR进行赋值。我们再看指令MOVC A,@A+PC这条指令的意思是将PC的值与累加器A的值相加作为一个地址,而PC是固定的,累加器A是一个8位的寄存器,它的寻址范围是256个地址单元。讲到这里,大家应可明白,MOVC A,@A+PC这条指令的寻址范围其实就是只能在当前指令下256个地址单元。所在,这在我们实际应用中,可能就会有一个问题,如果我们需要查询的数据表在256个地址单元之内,则可以用MOVC A,@A+PC这条指令进行查表操作,如果超过了256个单元,则不能用这条指令进行查表操作。刚才我们已说到,DPTR是一个数据指针,这个数据指针我们可以给它赋值操作的。通过赋值操作。我们可以使MOVC A,@A+DPTR这条指令的寻址范围达到64K。这就是这两条指令在实际应用当中要注意的问题。 变址寻址方式是MCS-51单片机所独有的一种寻址方式。 位寻址 80C51单片机有位处理功能,可以对数据位进行操作,因此就有相应的位寻址方式。所谓位寻址,就是对内部RAM或可位寻址的特殊功能寄存器SFR内的某个位,直接加以置位为1或复位为0。 位寻址的范围,也就是哪些部份可以进行位寻址: 1、我们在第十二课学习51单片机的存储器结构时,我们已知道在单片机的内部数据存储器RAM的低128单元中有一个区域叫位寻址区。它的单元地址是20H-2FH。共有16个单元,一个单元是8位,所以位寻址区共有128位。这128位都单独有一个位地址,其位地址的名字就是00H-7FH。这里就有一个比较麻烦的问题需要大家理解清楚了。我们在前面的学习中00H、01H。。。。7FH等等,所表示的都是一个字节(或者叫单元地址),而在这里,这些数据都变成了位地址。我们在指令中,或者在程序中如何来区分它是一个单元地址还是一个位地址呢?这个问题,也就是我们现在正在研究的位寻址的一个重要问题。其实,区分这些数据是位地址还是单元地址,我们都有相应的指令形式的。这个问题我们在后面的指令系统学习中再加以论述。 2、对专用寄存器位寻址。这里要说明一下,不是所有的专用寄存器都可以位寻址的。具体哪些专用寄存器可以哪些专用寄存器不可以,请大家回头去看看我们前面关于专用寄存器的相关文章。一般来说,地址单元可以被8整除的专用寄存器,通常都可以进行位寻址,当然并不是全部,大家在应用当中应引起注意。 专用寄存器的位寻址表示方法: 下面我们以程序状态字PSW来进行说明 D7 D6 D5 D4 D3 D2 D1 D0 CY AC F0 RS1 RS0 OV P 1、直接使用位地址表示:看上表,PSW的第五位地址是D5,所以可以表示为D5H MOV C,D5H 2、位名称表示:表示该位的名称,例如PSW的位5是F0,所以可以用F0表示 MOV C,F0 3、单元(字节)地址加位表示:D0H单元位5,表示为DOH.5 MOV C,D0H.5 4、专用寄存器符号加位表示:例如PSW.5 MOV C,PSW.5 这四种方法实现的功能都是相同的,只是表述的方式不同而已。 例题: 1. 说明下列指令中源操作数采用的寻址方式。 MOV R5,R7 答案:寄存器寻址方式 MOV A,55H 直接寻址方式 MOV A,#55H 立即寻址方式 JMP @A+DPTR 变址寻址方式 MOV 30H,C 位寻址方式 MOV A,@R0 间接寻址方式 MOVX A,@R0 间接寻址方式 改错题 请判断下列的MCS-51单片机指令的书写格式是否有错,若有,请说明错误原因。 MOV R0,@R3 答案:间址寄存器不能使用R2~R7。 MOVC A,@R0+DPTR 变址寻址方式中的间址寄存器不可使用R0,只可使用A。 ADD R0,R1 运算指令中目的操作数必须为累加器A,不可为R0。 MUL AR0 乘法指令中的乘数应在B寄存器中,即乘法指令只可使用AB寄存器组合。
上传时间: 2013-11-11
上传用户:caozhizhi
MCS-51系列单片机芯片结构:2.1 MCS—51系列单片机的结构原理2.1.1 MCS-51单片机逻辑结构 MCS-51单片机的系统结构框图如图2.1所示。 图2.1 MCS-51单片机的系统结构框图由图2.1可以看出,单片机内部主要包含下列几个部件:u 一个8位CPU;u 一个时钟电路;u 4Kbyte程序存储器;u 128byte数据存储器;u 两个16位定时/计数器;u 64Kbyte扩展总线控制电路;u 四个8-bit并行I/O端口;u 一个可编程串行接口;五个中断源,其中包括两个优先级嵌套中断 1. CPU CPU即中央处理器的简称,是单片机的核心部件,它完成各种运算和控制操作,CPU由运算器和控制器两部分电路组成。(1)运算器电路 运算器电路包括ALU(算术逻辑单元)、ACC(累加器)、B寄存器、状态寄存器、暂存器1和暂存器2等部件,运算器的功能是进行算术运算和逻辑运算。 (2)控制器电路 控制器电路包括程序计数器PC、PC加1寄存器、指令寄存器、指令译码器、数据指针DPTR、堆栈指针SP、缓冲器以及定时与控制电路等。控制电路完成指挥控制工作,协调单片机各部分正常工作。
上传时间: 2013-10-27
上传用户:tianyi223