单片机应用技术项目式教程-基于C51+ 课件 项目 1、5 单片机基础知识、串行口技术_第1页
单片机应用技术项目式教程-基于C51+ 课件 项目 1、5 单片机基础知识、串行口技术_第2页
单片机应用技术项目式教程-基于C51+ 课件 项目 1、5 单片机基础知识、串行口技术_第3页
单片机应用技术项目式教程-基于C51+ 课件 项目 1、5 单片机基础知识、串行口技术_第4页
单片机应用技术项目式教程-基于C51+ 课件 项目 1、5 单片机基础知识、串行口技术_第5页
已阅读5页,还剩186页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机应用技术项目式教程—基于Proteus和KeilCSINGLE-CHIP

COMPUTER

APPLICATION

TECHNOLOGY项目一

单片机基础知识单片机的基础概念01单片机的结构02STC单片机的基本情况03单片机的复位04知识要点0506单片机的时钟汇编语言基础知识项目一

单片机基础知识掌握单片机的的基本概念01了解单片机常用的产品系列02了解STC单片机的基本情况03掌握STC15单片机内部总体结构04学习要求0506掌握STC单片机的存储结构、I/O结构与工作模式等掌握汇编语言基础知识我国半导体产业的现状2019年的科技界真的热闹非凡,先有中美科技对决,美国打压华为5G,接着继续用利用芯片、操作系统的优势来打压华为,还将一些中国高科技企业列入了“实体清单”进行了管制。因此在半导体尤其是芯片领域,中国必须崛起,才能真正的不怕被打压,才不要看国外的脸色。芯片的生产过程知道在芯片的整个生产过程中,可以分为设计、制造、封测三部分。而设计主要是用EDA软件来设计,同时还看采用什么架构。而在制造方面,主要看的是原材料、制造设备,其中制造设备在整个制造环节中的比重占到70%以上。至于封测相对简单一些,限制条件没这么多。我国芯片领域的不足

在设计领域,我们只能说有技术,缺少架构、EDA软件。因为目前国内基本没有架构,不管是华为麒麟,还是龙芯、或者兆芯、海光CPU等等,全部采用国外的架构。至于EDA设计软件,基本上是国外的,国内的EDA软件还差了一些。

在制造领域,我们基本上只有制造设备中的刻蚀机一项比较牛,其他的像光刻机落后,而一些原材料更是落后,像光刻胶,高纯度硅等,全部要靠进口。

在封测领域,由于门槛不高,所以相对来讲,有什么,缺什么,怕什么并不是特别重要。中国芯片的前景华为断芯事件,认识到半导体技术是我国的弱项,但中国一直注重科技创新,自主研发,以科技创新驱动社会发展,目前中国正在迎头追赶,微电子企业近2年从736家迅速增长到几千家,其中中兴和深圳海思已经进入全球前50IC行业。

1、中国半导体行业的发展势头中国半导体行业经过多年的发展已经取得了长足的进步。首先,中国的半导体工业部门在技术研发方面取得了重要突破,自主研发了DUVIA光刻机,将芯片制造工艺降低到7纳米以下,并在光源方面取得了较大进展。其次,中国的中芯国际已经完成了多次曝光技术的研发,14纳米和N1等技术已经可以实现批量生产。中国的光刻机制造商华东晶科以及深紫外光刻机生产商中微公司也取得了较为可观的成绩。这些积极的发展趋势为中国半导体产业的崛起奠定了坚实的基础。

2、中国半导体行业的未来中芯国际表示,他们的产能已经达到了世界先进水平,每月的产量将超过一亿块。而华为的海思芯片也将继续推出更多的自主研发产品,包括麒麟910、M系列、麒麟X系列等,与苹果等竞争。此外,中国的硅材料、光刻机、封装测试等关键领域也在不断提升,有望实现完全自主化的芯片产业链。目前,中国正在不断加大半导体领域的支持和投入,未来有望成为全球半导体产业的领导者。1.1单片机的基础单片机:在一片集成电路芯片上集成了CPU、RAM、ROM、时钟、定时/计数器、多功能串行或并行I/O口的通用IC,从而构成了一个完整的单芯片微型计算机(SingleChipMicrocomputer),即单片机。1.1单片机的基础—单片机的发展史第一阶段(1976-1978):单片机的探索阶段。以Intel公司的MCS-48为代表。第二阶段(1978-1982):单片机的完善阶段。Intel公司在MCS-48基础上推出了完善的、典型的单片机系列MCS-51。它在以下几个方面奠定了典型的通用总线型单片机体系结构。第三阶段(1982-1990):向微控制器发展的阶段。也是8位单片机的巩固发展及16位单片机的推出阶段。Intel公司推出的MCS-96系列单片机。第四阶段(1990-现在):微控制器的全面发展阶段。随着单片机在各个领域全面深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。1.1单片机的基础—单片机的应用此外,单片机在工商、金融、科研、教育、交通、国防、航空、航天、航海等领域都有着十分广泛的用途。家电领域办公自动化领域通讯领域商业营销领域工业控制领域仪器仪表领域医疗器械领域汽车电子领域1.1单片机的基础—数制和编码十进制二进制八进制十六进制十进制二进制八进制十六进制000091001119111110101012A2102211101113B3113312110014C41004413110115D51015514111016E61106615111117F7111771610000201081000108

所谓数制是指计数的规则,按进位原则进行计数的方法,成为进位计数制。数制有很多种,计算机编程时常用的数制为二进制、八进制、十进制和十六进制。不同进制之间的转换

1、二进制、八进制、十六进制转换为十进制例如:不同进制之间的转换2.十进制数转换成二进制数、八进制数、十六进制数整数部分:除基取余法。分别用基数R不断地去除N的整数,直到商为零为止小数部分:乘基取整法。分别用基数R(R=2、8或16)不断地去乘N的小数,直到积的小数部分为零(或满足所需精度)为止。3、二进制数和十六进制数的转换从二进制的小数点开始,分别向左、右两边各以4位为一组,不足4位以0补足,然后分别把每组用十六进制数码表示,并按序相连。编码计算机不仅要识别人们习惯的十进制数、完成数值计算问题,而且要大量处理文字、字符和各种符号(标点符号、运算符号)等非数值计算问题。这就是要求计算机必须能够识别它们。也就是说,字符、符号和十进制数最终都转换为二进制格式的代码,即信息和数据的二进制编码。根据信息对象的不同,计算机中的编码方式(码制)也不同,常见的码制有BCD码和ASCⅡ码。计算机中数的表示与运算1.无符号数的表示用来表示数的符号的数位称为符号位。无符号数没有符号位,数的所有数位均为数值位。2.有符号数的表示有符号数由符号位和数值位两部分组成,数学中的正、负用符号“+”、“-”来表示,在计算机中规定:用“0”表示“+”、用“1”表示“-”

有符号数的表示---原码、反码、补码对于一个二进制数X,若最高数位用“0”表示“+”,用“1”表示“-”其余各数位表示数值本身,则称为原码表示法,记为[X]原。【例1-6】X=+1101011,Y=-1000011,求[X]原、[Y]原[X]原

=01101011、[Y]原

=11000011值得注意的是,0在8位单片机中的两种原码形式为:【+0】原=00000000B【-0】原=10000000B对于8位二进制原码能表示的范围:-127+127原码:有符号数的表示---原码、反码、补码反码:正数的反码表示与其原码相同,负数的反码是其原码的符号位不变、数值各位取反,记为【X】反【例1-7】X=+1101011,Y=-1000011求。【X】反=01101011【Y】反=101111000在反码中有两种表示形式:【+0】反=00000000B【-0】反=11111111B有符号数的表示---原码、反码、补码补码:正数的原码、反码和补码相同,负数的补码其最高位为1,数值位等于反码数值位的低位加“1”。【例1-8】X=+1101011,Y=-1000011,求[X]补、[Y]补[X]补

=01101011B、[Y]补

=10111101B值得注意的是,0在8位单片机中的两种原码形式为:【+0】补=00000000B【-0】补=00000000B由此可见,不论是+0还是-0,0在补码中只有唯一的一种表示形式数的运算1.无符号数的运算无符号数的运算主要是无符号数的加、减、乘、除运算与溢出。(1)二进制数的加减运算二进制加法运算,每一位遵循如下法则:0+0=0,0+1=1,1+0=1,1+1=0(向高位有进位),逢二进一。0-0=0,1-1=0,1-0=1,0-1=1(向高位有借位),借一位二。0101被乘数×1101乘数0101部分积0000

0101

0101

1000001B乘积【例1-9】乘数为1101B,被乘数0101B,求乘积的值。2)二进制数乘法运算二进制乘法运算,每一位遵循如下法则:00=0,01=0,10=0,11=1。特点是:当且仅当两个1相乘时结果为1,否则为0.二进制数乘法运算过程是若乘数位为1,则将被乘数加于中间结果上:若乘数为0,则加0于中间结果上。3)二进制数除法运算【例1-10】除数为101,被除数为011010,求商的值。

101商除数101被除数101

00110部分余数

-)101

001余数二进制数除法商的过程和十进制数有些类似,首先将除数和被除数的高n位进行比较,若除数小于被除数,则商为1,然后从被除数中减去除数,得到部分余数;否则商为0。将除数和新的部分余数进行比较,直至被除数所有的位数都处理为止,最后得到商和余数二进制数的逻辑运算1)逻辑与运算逻辑与运算常用算符“∧”表示,逻辑与运算的运算法则为:0∧1=1∧0=0,0∧0=0,1∧1=1。逻辑与运算法则可概括为“只有对应的两个二进位均为1时,结果位才为1,否则为0”。2)逻辑或运算逻辑或运算常用算符“∨”表示,逻辑或的运算法则:0∨1=1∨0=1,0∨0=0,1∨1=1。逻辑或运算法则可概括为“只要对应的二个二进位有一个为1时,结果位就位1”。二进制数的逻辑运算3)逻辑非运算逻辑非运算常采用算符“”表示,运算法则:/1=0,/0=14)逻辑异或运算逻辑异或运算常采用算符⊕表示,逻辑异或的运算法则:0⊕1=1⊕0=1,0⊕0=1⊕1=0。逻辑异或运算可总结为“两对应的二进位不同时,结果为1,相同时为0”。1.2目前我国主流的单片机系列1.80C51系列2.PIC系列3.AVR系列AVR系列单片机是Atmel公司推出的较为新颖的单片机,其显著的特点为高性能、速度低功耗。AVR系列的I/O脚类似PIC,它也有用来控制输入/输出的方向寄存器,输出驱动虽不如PIC,但比80C51系列强。AVR系列单片机工作电压2.76.0V,可以实现耗电量最优化,芯片上的Flash存储器附在用户的产品中,可随时编程和再编程,使用户的产品设计容易,更新换代方便。华为总裁任正非简介任正非(1944年10月25日-),企业家,生于贵州省安顺市,毕业于重庆建筑工程学院,世界最具影响力十大华商人物之一,华为公司总裁、CEO。1987年创立华为公司,一手把华为变成了震惊世界的“科技王国”,多次名列《财富》“中国最具影响力的50位商界领袖”榜单第一位。家庭背景1944年,任正非出生于贵州安顺地区镇宁县一个贫困山区的小村庄,靠近黄果树瀑布。任正非的父亲任摩逊是乡村中学教师,家中还有兄妹6人,小学就读于贵州边远山区的少数民族县城,高中就读于贵州省黔南州都匀市都匀一中。知识分子的家庭背景是任正非一生第一个决定性因素。青年时代1963年,任正非就读于重庆建筑工程学院(已并入重庆大学),还差一年毕业的时候,“文化大革命”开始了。父亲被关进了牛棚,因挂念挨批斗的父亲,任正非扒火车回家看望父亲。父亲嘱咐他要不断学习。任正非回到重庆后把电子计算机、数字技术、自动控制等专业技术自学完,他还把樊映川的高等数学习题集从头到尾做了两遍,接着学习了许多逻辑、哲学。他自学了三门外语,当时已到可以阅读大学课本的程度。辽阳辽化大学毕业后任正非当兵了,当的是建筑兵。任正非当兵的第一个工程就是法国公司的工程。那时法国德布尼斯·斯贝西姆公司向中国出售了一个化纤成套设备,在中国的东北辽阳市。任正非在那里从这个工程开始一直到建完生产,然后才离开。工作简历1983年,随国家整建制撤销基建工程兵,任正非复员转业至深圳南海石油后勤服务基地。1987年,因工作不顺利,任正非转而集资21000元人民币创立华为公司。创立初期,华为靠代理香港某公司的程控交换机获得了第一桶金。1992年,任正非孤注一掷投入C&C08机的研发。1993年末,C&C08交换机终于研发成功。其价格比国外同类产品低三分之二,为华为占领了市场。2003年1月23日,思科正式起诉华为及华为美国分公司,理由是后者对公司的产品进行了仿制,侵犯其知识产权。2018年3月23日,华为完成了董事会换届选举,任正非担任董事和公司CEO。[2]2019年11月22日,任正非卸任北京华为数字技术有限公司副董事长。[3]2020年4月10日,上海华为技术有限公司发生工商变更,华为CEO任正非退出公司董事。

创业成就

1991年9月,华为租下了深圳宝安县蚝业村工业大厦三楼作为研制程控交换机的场所,五十多名年轻员工跟随任正非来到这栋破旧的厂房中,开始了他们充满艰险和未知的创业之路,他们把整层楼分隔为单板、电源、总测、准备四个工段,外加库房和厨房。人们在机器的高温下挥汗如雨夜以继日地作业,设计制作电路板、话务台、焊接的电路板,编写软件,调试、修改、再调试。华为在任正非的带领下,相继打败了国内企业“巨龙”和“大唐”。而与另一个国内巨头中兴的竞争中,华为已逐渐把中兴甩在了身后。截止到2017年中兴营业收入1088亿元,相当于华为的1/6,各个板块都跟华为有很大的差距。在国际竞争中,华为的运营商业务已占到了全球28%的份额,全球排行第一;消费者业务仅次于三星和苹果,全球排名第三。9月15日,华为芯片断供;9月16日,中科院宣布将攻关光刻机等卡脖子技术;9月17日,任正非到访中科院。连续三天,中国科技界的三件大事,颇有些特殊意义。或许,这将是预示中国芯片未来崛起的三天?再想起知名军事专家张召忠不久前说过的,“三年后美国芯片没人要,中国芯片满大街都是”,感觉这一天不远了!2020年9月15,华为被断供了9月15日,美国川普的华为制裁令正式生效,台积电、联发科、三星、高通、美光、sony等华为芯片及核心元器件的供应链企业,全部和华为停止合作供货了。美国芯片买不了,自家麒麟芯片造不了,第三方芯片也买不到,华为芯片被彻底断供。而卡住华为脖子的,正是芯片制造的核心关键设备,光刻机。华为虽有雄心壮志,也有雄厚人资,但却无力在短时间内凭一企之力解决光刻机和芯片制造的产业链问题。916,中科院官宣了9月16日,中科院院长白春礼在国新办发布会上公开表示:“科学院将在‘率先行动’第二个阶段目标当中,进一步加强部署,将‘卡脖子’的问题和国外出口管制的清单转化为我们的任务清单。白春礼强调,科学院要聚焦这些关键的核心技术,瞄准关键的基础材料、关键核心的工艺、基础算法、重大装备等基础性、战略性的关键核心技术的需求,在光刻机、橡胶轮胎、高端芯片等方面,争取要主动揭榜,发挥多学科的综合和建制化优势,集结精锐力量组织系统攻关,有效解决一批“卡脖子”问题。917,任正非来中科院了9月17日,任正非来中科院了!就在中科院院长白春礼公开表态的第二天,华为任正非就出现在了中科院。据中科院官网消息,9月17日下午,华为技术有限公司CEO任正非一行到访中国科学院,与中科院的专家学者们举行了座谈交流会,就基础研究及关键技术发展进行了探讨交流。1.3STC15单片机内部总体结构及引脚功能STC15W4K32S4的PDIP40引脚封装图51单片机基本知识引脚号12345678I/O名称P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7第二功能(AD0〜AD7)访问外部存储器时,分时复用用做低8位地址总线和8位数据总线第三功能RxD3TxD3RxD4TxD4T3CLKOT3T4CLKOT4串行口3数据接收端串行口3数据发送端串行口4数据接收端串行口4数据发送端T3的时钟输岀端T3的外部计数输入端T4的时钟输岀端T4的外部计数输入端第四功能—————PWMFLT_2PWM7_2PWM6_2PWM异常停机控制引脚(切换1)脉宽调制输出通道7(切换1)脉宽调制输出通道6(切换1)P0口引脚排列与功能说明引脚号I/O名称第二功能第三功能第四功能第五功能第六功能9P1.0ADC0CCP1RxD2——ADC模拟输入通道0外部信号捕获;高速脉冲输出及脉冲宽度调制输出通道1串行口2串行数据接收端10P1.1ADC1CCP0TxD2——ADC模拟输入通道1外部信号捕获;高速脉冲输出及脉冲宽度调制输出通道0串行口2串行数据发送端11P1.2ADC2SSECICMPO—ADC模拟输入通道2SPI接口的从机选择信号CCP模块计数器外部计数脉冲输入端比较器比较结果输出端12P1.3ADC3MOSI———ADC模拟输入通道3SPI接口主岀从入数据端13P1.4ADC4MISO———ADC模拟输入通道4SPI接口主入从岀数据端14P1.5ADC5SCLK———ADC模拟输入通道5SPI接口同步时钟端15PI.6ADC6RxD_3XTAL2MCLKO_2PWM6ADC模拟输入通道6串行口1串行数据接收端(切换2)内部时钟放大器反相放大器的输出端主时钟输出(切换1)脉宽调制输出通道616P1.7ADC7TxD_3XTAL1PWM7—ADC模拟输入通道7串行口1串行数据发送端(切换2)内部时钟放大器反相放大器的输入端脉宽调制输出通道7P1口引脚排列与功能说明P1.0P1.0/ADC0/CCP1/RXD2(1):标准的IO口(2):ADC的通道0(3):外部信号捕获;高速脉冲输出及脉冲宽度调制输出通道1(4):串行口2的接收端P1.1P1.1/ADC1/CCP0/TXD2(1):标准的IO口(2):ADC的通道1(3):外部信号捕获;高速脉冲输出及脉冲宽度调制输出通道0(4):串行口2的发送端P1.2P1.1/ADC2/SS/ECI/CMPO

(1):标准的IO口(2):ADC的通道2(3):SPI接口的从机选择信号(4):CCP模块计数器外部计数脉冲输入端(5)比较器比较结果输出端P1.3P1.3/ADC3/MOSI(1):标准的IO口(2):ADC的通道3(3):MOSI:SPI接口的主设备输出从设备输入P1.4P1.4/ADC4/MISO(1):标准的IO口(2):ADC的通道4(3):MISO:SPI接口的主设备输入从设备输出P1.5P1.5/ADC5/SCLK(1):标准的IO口(2):ADC的通道5(3):SCLK:SPI接口的同步时钟信号P1.6P1.6/ADC6/RXD_3/XTAL_2/MCLK0_2/PWM6

(1):标准的IO口(2):ADC的通道6(3):RXD_3串口1的数据接收端的第三个引脚(4):XTAL_2外部无源晶体振荡器的一端;当外接有源晶体时,该引脚输入到XTAL1的一端进行输出(5):MCLK0_2主时钟输出可选的第二个引脚的位置(6):PWM6P1.7P1.7/ADC7/RXD_2/XTAL_1/PWM7引脚号I/O名称第二功能第三功能第四功能第五功能32P2.0A8访问外部存储器时,用做高8位地址总线RSTOUT_LOW——上电后输出低电平33P2.1A9SCLK_2PWM3—SPI接口同步时钟端(切换1)脉宽调制输出通道334P2.2A10MISO_2PWM4—SPI接口主入从岀数据端(切换1)脉宽调制输出通道435P2.3A11MOSI_2PWM5—SPI接口主岀从入数据端(切换1)脉宽调制输出通道536P2.4A12ECI_3SS_2PWMFLTCCP模块计数器外部计数脉冲输入端(切换2)SPI接口的从机选择信号(切换1)PWM异常停机控制引脚37P2.5A13CCP0_3——CCP输出通道0(切换2)38P2.6A14CCP1_3——CCP输出通道1(切换2)39P2.7A15PWM2_2——脉宽调制输出通道2(切换1)P2口引脚排列与功能说明引脚号I/O名称第二功能第三功能第四功能21P3.0RxD/INT4T2CLKO串行口1串行数据接收端外部中断4中断请求输入端T2定时器的时钟输出端22P3.1TxDT2—串行口1串行数据发送端T2定时器的外部计数脉冲输入端23P3.2INT0

外部中断0中断请求输入端

24P3.3INT1

外部中断1中断请求输入端

25P3.4T0T1CLKOECI_2T0定时器的外部计数脉冲输入端T1定时器的时钟输出端CCP模块计数器外部计数脉冲输入端(切换1)26P3.5T1T0CLKOCCP0_2T1定时器的外部计数脉冲输入端T0定时器的时钟输出端CCP输出通道0(切换1)27P3.6/INT2RxD_2CCP1_2外部中断2中断请求输入端串行口1串行接收数据端(切换1)CCP输岀通道1(切换1)28P3.7/INT3TxD_2PWM2外部中断3中断请求输入端串行口1串行发送数据端(切换1)脉宽调制输出通道2P3口引脚排列与功能说明引脚号I/O名称第二功能第三功能29P4.1MOSI_3

SPI接口主出从入数据端(切换2)

30P4.2/WRPWM5_2外部数据存储器写脉冲脉宽调制输出通道5(切换1)31P4.4/RDPWM4_2外部数据存储器读脉冲脉宽调制输出通道4(切换1)40P4.5ALEPWM3_2外部扩展存储器的地址锁存信号脉宽调制输出通道3(切换1)P4口引脚排列与功能说明P5口引脚排列与功能说明引脚号I/O名称第二功能•第三功能第四功能第五功能17P5.4RSTMCLKOSS-3CMP-复位脉冲输入端主时钟输出端SPI接口的从机选择信号(切换2)比较器负极输入端19P5.5CMP+———比较器正极输入端1.3.2总体结构早期51单片机的内核结构Intel公司的MCS-51单片机系列产品及各芯片厂商推出的各种51兼容产品都具有基本相同的内核组成结构。其基本组成包括CPU、一定容量的存储器(包括数据存储器和程序存储器)、并行I/O口、中断控制部件、其他的功能部件(包括定时/计数器、串行输入/输出接口等)。单片机内部各功能组件通过内部总线相连。

STC15W4K32S4单片机详细结构图STC单片机具有51单片机最基本的内核结构,同时增加了不少功能部件。1.CPU中央处理器CPU是单片机的核心,主要由运算部件、控制部件和专用寄存器组成。CPU功能可概况为以下三条:①产生控制信号②控制数据传送③对输入数据进行算术逻辑运算及位操作

51单片机的存储体系将存储空间分为程序存储器及数据存储器两个独立的存储地址空间。这些空间物理上分布于芯片内和芯片外。在芯片内,STC15W4K32S4,片内有32KB的Flash存储器;还有一定数量的数据存储器,采用RAM的形式,用于存储程序运行过程中产生的中间结果等;这个片内的数据存储器空间,还包括一些用于存储控制其他功能部件(如定时器)运行方式和参数的信息单元,这些称为特殊功能寄存器(SpecialFunctionRegister,SFR)。STC15系列的单片机片内还有一个单独编址的Flash存储区(片内EEPROM),用于存放那些程序运行时可实时修改但系统断电后需要保持不变的数据。2.存储器并行开关量(数字量)的输入/输出•是微控制器最基本的功能。STC15系列单片机提供了最多8个可编程的并行I/O口(根据封装的不同,端口数也不同)。大部分I/O口是8位的,有些口不足8位。4.其他功能部件单片机内一般还集成有中断逻辑、两个或多个16位定时/计数器、一个或多个全双工串行口、多路A/D转换单元、同步串行数据传输SPI接口、多路PWM脉宽调制输出、多路比较器、看门狗和内部上电复位电路、高精度RC时钟ISP/IAP接口等功能部件,这些部件给单片机的应用带来了极大的方便,具体结构和应用方式见以后的叙述。3.并行I/O口1.4STC15单片机存储体系结构51单片机的存储空间在逻辑上分为程序存储器空间和数据存储器空间,二者都有独立的地址空间。对于STC15系列的单片机,可以说是有5个独立的存储器编址空间:程序存储器空间(位于片内),片内基本数据RAM空间,片内扩展数据RAM空间,片内掉电不丢失的数据Flash(又称为EEPROM)空间,片外数据存储器空间。51单片机没有独立的I/O地址空间。若需要扩充I/O接口并分配访问地址,则需要占用片外数据存储器空间,即采用“内存映像”方式进行访问。STC系列单片机存储体系结构1程序存储器(程序Flash)程序存储器用于存放程序代码以及常数表格。程序存储器地址空间为64KB,地址从0000H到0FFFFH。经典单片机可能在片内集成较少的程序存储器空间,然后允许用户在片外扩充至总空间为64KB,STC15单片机各型号芯片片内分别集成了8〜61KB容量的Flash程序存储器,STC公司认为已足够适用于各种应用系统,因此不再允许用户在片外再扩充程序存储器了,这样,对于STC15系列单片机,所有程序存储器都位于片内。各型号芯片,不管其片内程序存储器容量多大,都是从0000H开始连续编址。用户程序只能通过MOVC指令读程序存储器的内容,不能写程序存储器单元(指带STC头的产品)。STC15系列单片机程序存储空间中,有一些特殊地址单元已定义为特殊用途。这些特殊地址单元如下。0000H〜0002H:复位地址,此地址存放系统复位后单片机执行的用户程序第一条指令的代码。0003H:外部中断0入口地址。000BH:定时/计数器0溢岀中断入口地址。0013H:外部中断1入口地址。001BH:定时/计数器1溢出中断入口地址。0023H:串行口1中断入口地址。以上是经典51单片机程序存储器所占用的情况。

2.基本RAM单片机的内部数据存储器结构如图所示。片内数据存储器地址范围是00H~FFH,只有256个字节。(1)低128字节。低128字节根据RAM作用的差异性,又分为工作寄存器区、位寻址区和用户RAM区。1).工作寄存器组区2).位寻址区3).用户RAM区(2)高128字节。高128字节的地址为80H〜FFH,属普通存储区域,但高128字节地址与特殊功能寄存器区的地址是相同的。片内数据存储器的配置1).工作寄存器组区最低32个单元(地址为00H~1FH)是4个通用工作寄存器组。每个寄存器组含有8个8位寄存器,编号为R0~R7。程序状态字PSW中的2位RS0、RS1用来确定当前采用哪一个工作寄存器组,其对应关系如表所示。RS1RS0工作寄存器组000组(00H~07H)011组(08H~0FH)102组(10H~17H)113组(18H~1FH)在某一时刻只能选用其中的一组寄存器工作,系统复位后,指向工作寄存器组0。如果用户程序不需要4个工作寄存器区,则不用的工作寄存器单元可以作一般的RAM使用。2).位寻址区单元地址MSB位地址LSB2FH7FH7EH7DH7CH7BH7AH79H78H2EH77H76H75H74H73H72H71H70H2DH6FH6EH6DH6CH6BH6AH69H68H2CH67H66H65H64H63H62H61H60H2BH5FH5EH5DH5CH5BH5AH59H58H2AH57H56H55H54H53H52H51H50H29H4FH4EH4DH4CH4BH4AH49H48H28H47H46H45H44H43H42H41H40H27H3FH3EH3DH3CH3BH3AH39H38H26H37H36H35H34H33H32H31H30H25H2FH2EH2DH2CH2BH2AH29H28H24H27H26H25H24H23H22H21H20H23H1FH1EH1DH1CH1BH1AH19H18H22H17H16H15H14H13H12H11H10H21H0FH0EH0DH0CH0BH0AH09H08H20H07H06H05H04H03H02H01H00HRAM位寻址区地址表3).用户RAM区30H~7FH共80个字节单元,为字节寻址的内部RAM区,可供用户作为数据存储区。这一区域的操作指令非常丰富,数据处理方便灵活,是非常宝贵的资源。但是,如果堆栈指针初始化时设置在这个区域,就要留出足够的字节单元作为堆栈区,以防止在数据存储时,破坏了堆栈的内容。堆栈:是按先进后出或后进先出原则进行读/写的特殊RAM区域。51单片机的堆栈区是不固定的,原则上可设置在内部RAM的任意区域内。实际使用时要根据对片内RAM各功能区的使用情况而灵活设置,应避开工作寄存器区、位寻址区和用户实际使用的数据区,一般设在2FH地址单元以后的区域。

堆栈的作用:主要用在子程序调用或中断处理过程中,用于保护断点和现场,实现子程序或中断的多级嵌套处理。在CPU响应中断或调用子程序时,会自动地将断点处的16位返回地址压入堆栈。在中断服务程序或子程序结束时,返回地址会自动由堆栈弹出,并放回到程序计数器PC中,使程序从原断口处继续执行下去。(3)特殊功能寄存器可位寻址不可位寻址地址+0+1+2+3+4+5+6+780HP011111111SP00000111DPL00000000DPH00000000S4CON00000000S4BUFXXXXXXXX-PCON0011000088HTCON00000000TMOD00000000TL000000000TL100000000TH000000000TH100000000AUXR00000001INT_CLKOAUXR20000000090HP111111111P1M100000000PlM000000000P0M100000000P0M000000000P2M100000000P2M000000000CUK_DIVPCON298HSCON00000000SBUFXXXXXXXXS2CON00000000S2BUFXXXXXXXX—PlASF00000000——A0HP211111111BUS_SPEEDXXXXXX10P_SW100000000—一———A8HIE00000000SADDRWKTCLWKTCL_CNT01111111WKTCHWKTCH_CNT01111111S3C0N00000000S3BUFXXXXXXXX—IE2X0000000BOHP311111111P3M100000000P3M000000000P4M100000000P4M000000000IP2XXX00000IP2HXXXXXX00IPHX0000000B8HipX0X00000SADENP_SW2—ADC_CONTR00000000ADC_RES00000000ADC_RESL00000000—C0HP411111111WDT_CONTR0X000000IAP_DATA11111111IAP_ADDRH00000000IAP_ADDRL00000000IAP_CMDXXXXXX00IAP_TRIGXXXXXXXXIAP_CONTR00000000C8HP511111111P5M1XX000000P5M0XX000000P6M100000000P6M000000000SPSTAT00XXXXXXSPCTL00000100SPDAT00000000D0HPSW00000000T4T3M00000000T4H00000000T4L00000000T3H00000000T3L00000000T2H00000000T2L00000000D8HCCON00XX0000CMOD0XXXX000CCAPM0X0000000CCAPM1X0000000CCAPM2X0000000——一E0HACC00000000P7M100000000P7M000000000—————E8HP611111111CL00000000CCAPOL00000000CCAP1L00000000CCAP2L00000000———F0HB00000000PWMCFG00000000PCA_PWM000XXXX00PCA_PWM100XXXX00PCA_PWM200XXXX00PWMCR00000000PWMIFX0000000PWMFDCRXX000000F8HP711111111CH00000000CCAP0H00000000CCAP1H00000000CCAP2H00000000———3.片内扩展的数据RAM空间(XRAM)STC15的大部分产品,在片内还扩展了另一部分数据存储器空间,这部分空间一般比上述基本数据RAM要大得多。以STC15W4K32S4为例,这部分空间为4KB-256B=3840B,这部分空间使用16位地址访问,地址编码为0000〜0EFFH。单片机对这部分空间的访问,使用和访问片外数据存储器空间一样的指令(即MOVX指令),单片机会根据SFR中地址为8EH的寄存器AUXR的D1位(名为EXTRAM)的状态,决定是访问片外的地址单元,还是片内的相应地址单元。当EXTRAM=0时,单片机MOVX指令访问片内的单元;当EXTRAM=1时,单片机MOVX指令访问片外的单元。用户可以用指令改变EXTRAM的状态。4片内数据Flash存储器(EEPROM)寄存器名地址MSB位地址及符号LSB复位值IAP_DATAC2H

11111111BIAP_ADDRHC3H

0000000BIAP_ADDRLC4H

00000000B1AP_CMDC5HMS1MS0xxxxx000BIAP_TRIGC6H

xxxxxxxxBIAP_CONTRC7HIAPENSWBSSWRSTCMDFAILWT2WT1WT00000x000BSTC15系列单片机片内还集成了一块较大容量的EEPROM(电可擦可编程只读存储器),用于掉电不丢失数据的存储,一般称为数据Flash。该数据Flash有单独的地址空间,采用IAP技术(“在应用编程”,即下面要介绍的访问方法)访问时,地址编址从0开始。在对数据Flash做IAP技术操作时,涉及如表1-15所示的特殊功能寄存器。1.5并行I/O口并行I/O接口是实际应用中使用最多、最普遍的接口类型,开关量的输入/输出都是通过并行I/O接口实现的。STC15系列单片机,根据芯片型号和封装的不同,最多具有P0〜P7共8个I/O口,62根口线。每个端口的每个口线,均具有输岀的锁存和驱动,以及输入的三态缓冲,它们都可以被用户程序配置为4种工作模式之一。1.5.1I/O口的工作模式及其设置STC15单片机的所有I/O口均有4种工作模式:准双向口(传统8051单片机I/O模式)、推挽输出、仅为输入(高阻状态)与开漏模式。

每个口的工作模式由PnMl和PnM0(n=0,1,2,3,4,5,6,7)两个寄存器的相应位来控制。例如,P0M1和P0M0用于设定P0口的工作模式,其中P0M1.0和P0M0.0用于设置P0.0的工作模式,P0M1.7和P0M0.7用于设置P0.7的工作模式,以此类推。模式控制信号I/O口工作模式PnMlPnM0000准双向口(传统8051单片机I/O模式):灌电流可达20mA,拉电流为150〜230uA101推挽输出:强上拉输出,可达20mA,要外接限流电阻210仅为输入(高阻)311开漏:内部上拉电阻断开,要外接上拉电阻才可以拉高。此模式可用于5V器件与3V器件电平切换1.模式0——准双向I/O口模式准双向口工作模式下,I/O口的电路结构如图1.7所示。此模式下,I/O口可用直接输出而不需重新配置口线输出状态。这是因为当口线输出为“1”时驱动能力很弱,允许外部装置将其拉低电平。当引脚输出为低电平时,它的驱动能力很强,可吸收相当大的电流。图1.7准双向口工作模式I/O口的电路结构2.模式1——推挽输出工作模式图1.8推挽输入输出工作模式下I/O口的电路结构

推挽输出工作模式下,I/O口的电路结构如图1.8所示。此模式下,I/O口输出的下拉结构、输入电路结构与准双向口模式是一致的,不同的是推挽输出工作模式下I/O口的上拉是持续的“强上拉”,若输出高电平,输出拉电流最大可达20mA;若输出低电平时,输出灌电流最大可达20mA。当从端口引脚上输入数据时,必须先向端口锁存器置“1”,使T2截止。3.模式2——仅为输入(高阻)工作模式仅为输入(高阻)工作模式下,I/O口的电路结构如图1.9所示。此模式下,可直接从端口引脚读入数据,而不需要先对端口锁存器置“1”。图1.9仅为输入(高阻)工作模式下I/O口的电路结构4.模式3——开漏工作模式开漏工作模式下,I/O口的电路结构如图1.10所示。此模式下,I/O口输出的下拉结构与推挽输出/准双向口一致,输入电路与准双向口一致,但输岀驱动无任何负载,即开漏状态,输出应用时,必须外接上拉电阻。图1.10开漏输出工作模式下I/O口的电路结构1.5.2并行I/O口使用注意事项1.关于数据/地址/控制三总线

微型计算机系统一般采用三总线结构,即以数据总线DB、地址总线AB、控制总线CB连接各组成部件。对于STC15单片机为主处理器组成的系统来说,也是采用这样的结构。STC15单片机的数据总线,由P0口提供,双向8位,地址总线16位,由P0、P2口提供,P0口提供低8位地址、数据总线复用,P2口提供高8位地址。控制总线主要信号由P3、P4口提供,例如,/WR、/RD、ALE等。如图1.11所示为STC15单片机片外扩展三总线的一般模型图。图1.11STC15单片机三总线扩展模型2.引脚口线的多功能性STC单片机的口线,除上述介绍的三总线以外,其他也都具有多种功能。具体功能安排请见芯片的引脚图。这里需要注意一种情况,即STC15单片机的一些产品,如STC15W4K60S4等,可以将几种特殊的片内部件的引脚,在多个端口间切换。例如,串口1的RxD和TxD引脚,既可安排在P3.0和P3.1上,也可安排在P3.6和P3.7上,还可安排在P1.6和P1.7上,串口1的这种安排,用户可以通过设置AUXR1(P_SW1)的SFR(地址0A2H)的D7、D6位的状态来控制。类似的部件还包括PCA/CCP/PWM、SPI、串口2〜4等。当然,在实际应用中,这些部件的功能引脚显然各自只能出现在某一个口线上。同样,若单片机系统需要使用某一口线的第二或第三功能,则相应口线也不能再作为一般的I/O使用了。3.复位状态和驱动能力

单片机复位后,各端口锁存器SFRs置全1。各端口处于准双线/弱上拉工作模式,进入程序后,用户可按实际需要,任意设置成4种工作模式之一。必须注意,不管该口线是工作在普通I/O还是第二功能、第三功能,若非工作于模式2--仅输入模式,则当需要从引脚输入时,都需要先向口线锁存器SFR的对应位写1。复位后各端口引脚已处于可输入状态,若在运行过程中,修改了口线SFR对应位的状态,又需要使用该口线的输入功能,必须先向对应的锁存器SFR相应位写入l。STC15单片机的口线,都具有最大20mA的灌电流输岀驱动能力,若工作于模式1--推挽输出模式,则还有20mA的拉电流驱动力。但是,单片机芯片总的功耗有限制,一般40引脚以上的芯片,总电流不超过120mA,40引脚以下的芯片,总电流不能超过90mA。因此,用户在设计时,并不能每个引脚都使用其最大驱动能力。绝大部分引脚在驱动较大负载时,需外加驱动芯片或三极管增加驱动能力。

单片机在运行过程中,除了可能执行读引脚状态的操作外,还可能有另外一种读并行口的操作,即读口锁存器状态的操作。此时单片机内部会将端口锁存器的状态读入内部总线。显然,读引脚状态和读口锁存器状态,其结果是不一样的。

哪些指令产生读口锁存器的操作,哪些产生读引脚的操作呢?单片机对并行口的“读—改—写”指令执行的是读口锁存器的操作,除此之外,其他的读口指令执行的是读引脚的操作。所谓“读—改—写”指令,是指那些先将端口(锁存器)数据读入,经过运算修改后,再写回端口(锁存器)的指令。例如ANLP0,A,该指令将P0口锁存器的内容和A累加器相与,结果回写到P0口锁存器,这里开始读的就是P0口锁存器。类似的指令还有以端口为目标操作数的ORL、XRL、JBC、CPL、INC、DEC等指令4.读端口与读锁存器的区别1.6STC15单片机时钟、复位及启动流程1.6.1时钟电路微处理器作为一个复杂的时序逻辑电路,其工作必须要有时钟驱动。给单片机提供合适的时钟是单片机能正常工作的基本条件。主频时钟的频率也直接决定单片机执行指令的速度。1.外部时钟图1.12外接晶振产生时钟图1.13直接外接时钟2.内部R/C时钟STC15单片机也可以选择使用片内产生的R/C时钟,有些芯片则只能使用这种方式。STC15系列单片机选择这种时钟方式时,需要在给芯片装入程序代码时进行适当设置。利用STC公司发布的ISP(在系统编程)软件—STC-ISP(V6.86),可以完成程序代码的下载(写入单片机片内程序Flash)及其他的一些初始化的设置,操作界面如图1.14所示。3.主时钟分频、时钟输出和分频寄存器SFRNameD7D6D5D4D3D2D1D0CLK_DIV(PCON2)MCKO_S1MCKO_S0ADRJTx_RxMCLKO_2CLKS2CLKS1CLKS0以上方法产生的时钟称为主时钟MCLK,单片机内部控制CPU、定时器、串行口、SPI、CCP/PWM/PCA、A/D转换的实际工作时钟称为系统时钟SysClk(相当于经典51单片机中的机器周期概念)。系统时钟是对主时钟分频而得,分频系数由一个SFR时钟分频控制器(CLK_DIV,地址97H)设置,CLK_D1V寄存器各位的定义如表所示。(1)CLKS2、CLKS1、CLKS0:系统时钟频率选择控制位,单片机系统时钟频率由这三位配置,具体设置情况如表所示。CLKS2CLKS1CLKS0系统时钟频率设置000主时钟频率/l,不分频001主时钟频率/2010主时钟频率/4011主时钟频率/8100主时钟频率/16101主时钟频率/32110主时钟频率/64111主时钟频率/128通过设置CLKS2、CLKS1、CLKS0这三位,可以让单片机在较低的频率上运行。(2)MCKO_S1及MCKO_S1设置引脚MCLKO/P5.4或MCLKO_2/P1.6是否对外输岀时钟,输出的时钟频率为多少,具体情况见表。MCKO_S1MCKO_S0引脚MCLKO或MCLKO_2对外输出时钟设置00不对外输出时钟01对外输出时钟,输出时钟频率不分频10对外输出时钟,输出时钟频率2分频11对外输出时钟,输出时钟频率4分频还需要注意,STC15系列中,有的芯片输岀的是系统时钟的分频信号,如STC15W4K32S4系列等,有的芯片输出的是主时钟的分频信号,如STC15W404S系列等。具体情况请见STC15产品手册。此外,STC15系列5V单片机I/O口的对外输出速度最快不超过13.5MHz,3.3V单片机I/O口的对外输出速度最快不超过8MHz,这个限制也需要在输出时钟时予以考虑。

(3)MCLKO_2设置是在MCLKO/P5.4引脚还是在MCLKO_2/P1.6引脚上输出时钟,为0在MCLKO引脚,为1在MCLK0_2引脚。4.STC15单片机时序说明

所谓时序,一般指的是在CPU运行时,引脚信号随着时钟而变化的时间与次序的安排。单片机的特点是,大部分指令的执行,只需在芯片内完成,因此也无引脚信号的变化。只是在执行片外数据存储器读/写操作时,才涉及片外总线的变化,而引起片外三总线的操作时序。(1)主时钟频率,系统时钟频率,机器周期。

主时钟频率MCLK系统时钟频率SysClk机器周期(2)指令执行时间。指令的执行时间,即指令执行所需要的机器周期数。传统上,将指令的执行时间简称为指令周期。STC15单片机的各类指令所需要的时间不同,总体来说,这些指令执行时间和指令长度(即指令代码的字节数)分为以下几种类型。①单字节单周期②双字节单周期③单字节双周期④多字节多周期1.7复位

单片机复位的意义是给片内各寄存器和触发器一个确定的初始状态。可靠的复位是单片机能正确执行用户程序的必要前提。STC15单片机的复位有两种类型4种组合:

冷启动/热启动复位

硬(件)复位/软(件)复位。

具体共有7种复位方式,包括:外部RST引脚复位,软件复位,掉电复位/上电复位,内部低压检测复位,MAX810专用复位电路复位,看门狗复位以及程序地址非法复位。热启动复位和冷启动复位对照表复位种类复位源上电复位标志(POF)复位后程序启动区域冷启动复位系统停电后再上电引起的硬复位1从系统ISP监控程序区开始执行程序,如果检测不到合法的ISP下载命令流,将软复位到用户程序区执行用户程序热启动复位通过控制RST引脚产生的硬复位不变从系统ISP监控程序区开始执行程序,如果检测不到合法的ISP下载命令流,将软复位到用户程序区执行用户程序内部看门狗复位不变若(SWBS)=1,复位到系统ISP监控程序区:若(SWBS)=0,复位到用户程序区0000H处通过对IAP_CONTR寄存器操作的软复位不变若(SWBS)=1,软复位到系统ISP监控程序区;若(SWBS)=0,软复位到用户程序区0000H处1.复位操作有关寄存器1).ISP/IAP控制寄存器ISP/IAP控制寄存器(IAP_CONTR,地址0C7H)各位定义如表1-23所示。位D7D6D5D4D3D2D1D0定义IAPENSWBSSWRSTCMD_FAIL—WT2WT1WT0其中,SWBS为0,则复位后从用户应用程序区启动,为1从系统ISP监控程序区启动(用于下载用户程序代码至本芯片的程序存储器)。SWRST为1,软件控制产生复位;为0:无操作。2).电源控制寄存器电源控制寄存器(PCON,地址87H)各位定义如表1-24所示。位D7D6D5D4D3D2D1D0定义SMODSMOD0LVDFPOFGF1GF0PDIDL表1-24中,POF为冷启动复位标志,所谓冷启动,指单片机从无电到接通电源所进行的复位操作。当单片机冷启动复位后,POF=1;除此之外的热启动,此位保持不变。在冷启动后,此位可以立即用软件清零,如此,用户程序可以通过此位的状态是0还是1,来判断单片机是否是冷启动。2.复位的实现1)MAX810专用复位电路复位2)外部RST引脚复位3)内部低压检测复位。4)看门狗复位5)软件复位。6)掉电复位/上电复位7)程序地址非法复位走近科学北斗卫星导航系统由空间段、地面段和用户段三部分组成,可在全球范围内全天候、全天时为各类用户提供高精度、高可靠定位、导航、授时服务,并且具备短报文通信能力,已经初步具备区域导航、定位和授时能力,定位精度为分米、厘米级别,测速精度0.2米/秒,授时精度10纳秒。2020年7月31日上午,北斗三号全球卫星导航系统正式开通。中国北斗卫星导航系统是中国自行研制的全球卫星导航系统,也是继GPS、GLONASS之后的第三个成熟的卫星导航系统。北斗卫星导航系统(BDS)和美国GPS、俄罗斯GLONASS、欧盟GALILEO,是联合国卫星导航委员会已认定的供应商。北斗卫星1.8汇编语言简介1、七种寻址方式2、数据传送类指令3、算术运算类指令4、控制转移类指令5、汇编语言程序设计汇编语言指令标号:

操作码

目的操作数,源源操作数

;注释符号含

义$当前指令起始地址/对该位内容取反Rel转移指令8位偏移量Rn当前R0-R7RiR0R1(i=0、1)#data8/168位常数(立即数)、16位常数(立即数)Addr11/1611位目的地址、16位目的地址direct直接地址(00H-FFH)或指SFRbit位地址@间接寻址符号(前缀)(x)X中的内容/数据((x))由X作为地址存储单元中的内容数据传送方向代码字节指令代码汇编指令指令周期单字节84DIVAB四周期单字节A3INCDPTR双周期双字节7410MOVA,#10H单周期三字节B440relCJNEA,#40H,LOOP双周期1.8.1寻址方式1立即数寻址例如:MOVA,#52H;A

52H

MOVDPTR,#5678H;DPTR

5678H2直接寻址

在指令中含有操作数的直接地址,该地址指出了参与操作的数据所在的字节地址或位地址。

3寄存器寻址

由指令指出某一个寄存器中的内容作为操作数,这种寻址方式称为寄存器寻址。寄存器一般指累加器A和工作寄存器R0~R7。例如:

MOVA,Rn;A

(Rn)其中n为0~7之一,Rn是工作寄存器。

MOVRn,A;Rn

(A)

MOVB,A;B

(A)

寄存器寻址方式的寻址范围包括:

寄存器寻址的主要对象是通用寄存器,共有4组32个通用寄存器,但寄存器寻址只能使用当前寄存器组。因此指令中的寄存器名称只能是R0~R7。在使用本指令前,需通过对PSW中RS1、RS0位的状态设置,来进行当前寄存器组的选择。

部分专用寄存器。累加器A、B寄存器以及数据指针DPTR等。4

寄存器间接寻址方式

由指令指出某一个寄存器的内容作为操作数,这种寻址方式称为寄存器间接寻址。

寄存器间接寻址用符号“@”表示。例如:MOVR0,#60H;R0

60HMOVA,@R0;A

((R0))MOVA,@R1;A

((R1))5

位寻址

位操作指令能对内部RAM中的位寻址区(20H~2FH)和某些有位地址的特殊功能寄存器进行位操作。也就是说可对位地址空间的每个位进行位状态传送、状态控制、逻辑运算操作。例如指令

SETBTR0;TR0

1CLR00H;(00H)

0MOVC,57H;将57H位地址的内容传送到位累加器C中ANLC,5FH;将5FH位状态与进位位C相与,结果在C中6

基址寄存器加变址寄存器间接寻址

它以基址寄存器(DPTR或PC)的内容为基本地址,加上变址寄存器A的内容形成16位的地址,访问程序存储器中的数据表格。例如;

MOVCA,@A+DPTRMOVCA,@A+PCJMP@A+DPTRMOVCA,@A+DPTR7

相对寻址

相对寻址以程序计数器PC的当前值作为基地址,与

指令中给出的相对偏移量rel进行相加,把所得之和作为程序的转移地址。这种寻址方式用于相对转移指令中,指令中的相对偏移量是一个8位带符号数,用补码表示。可正可负,转移的范围为-128~+127。使用中应注意rel的范围不要超出。例如:

JZLOOP

DJNER0,DISPLAY1.8.2指令系统1.8.2.1数据传送类指令

数据传送类指令用到的助记符有:MOV,MOVX,MOVC,XCH,XCHD,PUSH,POP,SWAP。1.以累加器为目的操作数的内部数据传送指令MOVA,Rn;A

(Rn)MOVA,direct;A

(direct)MOVA,@Ri;A

((Ri))MOVA,#data;A

data2.数据传送到工作寄存器Rn的指令

MOVRn,A;Rn

(A)MOVRn,direct;Rn

(direct)MOVRn,#data;Rn

data3.数据传送到内部RAM单元或特殊功能寄存器SFR的指令MOVdirect,A;direct

(A)MOVdirect,Rn;direct

(Rn)MOVdirect1,direct2;direct1

(direct2)MOVdirect,@Ri;direct

((Ri))MOVdirect,#data;direct

#dataMOV@Ri,A;(Ri

(A)MOV@Ri,direct ;(Ri)

(direct)MOV@Ri,#data ;(Ri)

dataMOVDPTR,#data16;DPTR

data164.累加器A与外部数据存储器之间的传送指令MOVXA,@DPTR;A

(DPTR)MOVXA,@Ri;A

((Ri))MOVX@DPTR,A;(DPTR)

AMOVX@Ri,A;(Ri)

A5

、程序存储器内容与累加器之间传送MOVCA,@A+PCMOVCA,@A+DPTR6、堆栈操作指令PUSHdirectPOPdirect例如:PUSHPSWPOPDPHPUSHACCPOPDPLPUSHDPLPOPACCPUSHDPHPOPPSW7、字节交换指令(1)整字节交换指令XCHA,Rn;(A)

(Rn)XCHA,direct;(A)

(direct)XCHA,@Ri;(A)

((Ri))(2)半字节交换指令字节单元与累加器A进行低4位的半字节数据交换。只有一条指令。XCHDA,@Ri

(3)累加器高低半字节交换指令SWAPA

【例1-13】(R0)=30H,(A)=65H,(30H)=8FH执行指令:XCH

A,@R0;(R0)=30H,(A)=8FH,(30H)=65HXCHD

A,@R0;(R0)=30H,(A)=6FH,(30H)=85HSWAP

A;(A)=56H1.8.2.2算术操作类指令算术指令用到的助记符共有8种:ADD、ADDC、INC、SUBB、DEC、DA、MUL、DIV。1.加法指令加法指令分为普通加法指令、带进位加法指令和加1指令。(1)普通加法指令ADDA,Rn;A

(A)+(Rn)ADDA,direct;A

(A)+(direct)ADDA,@Ri;A

(A)+((Ri))ADDA,#data;A

(A)+data

【例1-14】(A)=85H,R0=20H,(20H)=0AFH,执行指令:

ADDA,@R0后A,AC,OV,CY的值。(2)带进位加法指令ADDCA,Rn;A

(A)+(Rn)+(Cy)ADDCA,direct;A

(A)+(direct)+(Cy)ADDCA,@Ri;A

(A)+((Ri))+(Cy)ADDCA,#data;A

(A)+data+(Cy)这组指令的功能与普通加法指令类似,唯一的不同之处是,在执行加法时,还要将上一次进位标志Cy的内容也一起加进去,对于标志位的影响也与普通加法指令相同。

【例1-15】(A)=85H,(20H)=0FFH,Cy=1执行指令:ADDCA,20H

10000101111111111+110000101结果:(A)=85H;Cy=1;AC=1;OV=0。

(3)增量指令INCA;A

(A)+1INCRn;Rn

(Rn)+1INCdirect;direct

(direct)+1INC@Ri;(Ri)

((Ri))+1INCDPTR;DPTR

(DPTR)+1【例1-16】(A)=12H,(R3)=0FH,(35H)=4AH,(R0)=56H,(56H)=00H执行如下指令:INC

A;执

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论