51单片机指令求双字节有符号数补码的问题

好儿郎-志在四方 2015-10-12 09:44:04
最近看了一道题,要求是“用汇编程序求R6R7中双字节有符号数的补码,将结果存入R1R0”,初学汇编,木有头绪,其实也有一点想法,就是先判断正负,若是负数,则取反再加一,若是正数,则原码反码补码都相同,但是由于这个是双字节数,低字节、高字节,是不是都要判断正负等等,不成熟,还请大牛多多指教。
...全文
1080 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
代码如下: ORG 0000H MOV A,R6 JNB ACC.7,NEXT XRL A,#7FH MOV R1,A MOV A,R7 CPL A ADD A,#1 MOV R0,A MOV A,#0 ADDC A,R1 MOV R1,A SJMP $ NEXT: MOV A,R7 MOV R0,A MOV A,R6 MOV R1,A SJMP $ END 谢谢各位的讲解
  • 打赏
  • 举报
回复
谢谢各位的讲解,这个问题已经搞懂了,感谢各位
sinat_25020831 2015-10-17
  • 打赏
  • 举报
回复
小哥哥,既然你知道补码的求法,你也知道正数的补码是本身,计算机存的负数是补码,你写个程序存补码不就完了么
worldy 2015-10-14
  • 打赏
  • 举报
回复
单片机一般是大头系统,判断R6最高位是否是1,如果是1,即为负数 算源码,则【R6R7】减1,取反 如-1(1111 1111 1111 1111),减1=1111 1111 1111 1110,取反=0000 0000 0000 0001
mangoalx 2015-10-13
  • 打赏
  • 举报
回复
双字节数,只判断高字节是否负数,两字节同样处理
很好很详细的资料,看了考试应该没问题的,大家快来下吧!单片机原理复习资料(一)  填空题: 1.MCS—51单片机引脚信号中,信号名称带上划线的表示该信号 或 有效。 2.通过堆栈操作实现子程序调用,首先要把 的内容入栈,以进行断点保护。调用返回时再进行出栈操作,把保护的断点送回 。 3.某程序初始化时使(SP)=40H,则此堆栈地址范围为 ,若使(SP)=50H,则此堆栈深度为 。 4.在相对寻址方式中,“相对”两字是指相对于 ,寻址得到的结果是 。在寄存器寻址方式中,指令中指定寄存器的内容就是 。在变址寻址方式中,以 作变址寄存器,以 或 作基址寄存器。 5.假定累加器(A)=49H,执行指令: 201AH: MOVC A,@A+PC 后,送入A的是程序存储器 单元的内容。 6.若(DPTR)=5306H,(A)=49H,执行下列指令: MOVC A,@A+DPTR 后,送入A的是程序存储器 单元的内容。 7.假定(SP)=45H,(ACC)=46H,(B)=47H,执行下列指令: PUSH ACC PUSH B 后,(SP)= ,(46H)= ,(47H)= 。 8.假定(SP)=47H,(46H)=46H,(47H)=47H。执行下列指令: POP DPH POP DPL 后,(DPTR)= ,(SP)= 。 9.若(A)=56H,(R0)=56H,(56H)=56H。执行指令: ADD A,@R0 后,(A)= ,(CY)= ,(AC)= ,(OV)= 。 10.若(A)=0FFH,(R0)=46H,(46H)=0FFH,(CY)=1。 执行指令: ADDC A,@R0 后,(A)= ,(CY)= ,(AC)= ,(OV)= 。 11.假定(A)=45H,(B)=67H。执行指令: MUL AB 后,寄存器(B)= ,累加器(A)= ,(CY)= ,(OV)= 。 12.假定(A)=0FCH,(B)=35H。执行指令: DIV AB 后,累加器(A)= ,寄存器(B)= ,(CY)= ,(OV)= 。 13.执行如下指令序列: MOV C,P1.0 ANL C,P1.1 OR C,/P1.2 MOV P1.3,C 后,所实现的逻辑运算式为 。 14.假定addr11=00100011001B,标号MN的地址为2099H。执行指令: MN:AJMP addr11 后,程序转移到地址 去执行。 15.假定标号MN的地址为2000H,标号XY值为2022H。应执行指令: MN:SJMP XY 该指令的相对偏移量为 。 16.累加器A中存放着一个其值小于63的8位无符号,CY清“0”后执行指令: RLC A RLC A 则A中变为原来的 倍。 17.在MCS—51单片机系统中,采用的编址方式是 。MCS—51可提供 和 两种存储器,其编址方式为 ,扩展后其最大存储空间分别为 和 。对80C51而言,片内ROM和片外ROM的编址方式为 ,片外ROM的地址从 开始;片内RAM和片外RAM的编址方式为 ,片外RAM的地址从 开始。 18.为实现内外程序存储器的衔接,应使用 信号进行控制,对8031, EA= ,CPU对 进行寻址;对80C51, EA=1,CPU对 寻址。 19.访问内部RAM使用 指令,访问外部RAM使用 指令,访问内部ROM使用 指令,访问外部ROM使用 指令。 20.当计器产生记溢出时,定时器/记器的TF0(TF1)位= 。对记溢出的处理,在中断方式时,该位作为 位使用;在查询方式时,该位作为 位使用。 21.在定时器工作方式0下,计器的宽度为 位,其记范围为 ,如果系统晶振频率为6MHZ,则最大定时时间为 。 22.利用定时器/计器产生中断时,应把定时器/计器设置成 工作状态,当计器设置成方式0时,记初值应为 ;设置成方式1时,记初值应为 ;设置成方式2或方式3时,记初值应为 。 23.对单片机而言,连接到据总线上的输出口应具有 功能,连接到据总线上的输入口应具有 功能。 24.在多位LED显示器接口电路的控制信号中,必不可少的是 控信号和 控信号。 25.与8255比较,8155的功能有所增强,主要表现在8155具有 单元的 和一个 位的 。 26.单片机实现据通讯时,其据传送方式有 和 两种。串行据传送方式分为 和 两种。 27.专用寄存器“串行发送据缓冲寄存器”,实际上是 寄存器和 寄存器的总称。 28.在串行通讯中,若发送方的波特率为1200bps,则接收方的波特率为 。 29.D/A转换电路之前必须设置据锁存器,这是因为 。 30.对于由8031构成的单片机应用系统,EA脚应接 ,中断响应并自动生成长调用指令LCALL后,应转向 去执行中断服务程序。 单选题: 1.80C51与8031的区别在于 内部ROM的容量不同 内部RAM的容量不同 内部ROM的类型不同 80C51使用EEPROM,而8031使用EPROM 2.PC的值是 A.当前指令前一条指令的地址 B.当前正在执行指令的地址 C.下一条指令的地址 D.控制器中指令寄存器的地址 3.假定(SP)=37H,在进行子程序调用时把累加器A和断点地址进栈保护后,SP的值为 A.3AH B.38H C.39H D.40H 4.在80C51中,可使用的堆栈最大深度为 A.80个单元 B.32个单元 C.128个单元 D.8个单元 5.在相对寻址方式中,寻址的结果体现在 A.PC中 B.累加器A中 C.DPTR中 D.某个存储单元中 6.在寄存器间接寻址方式中,指定寄存器中存放的是 A.操作 B.操作地址 C.转移地址 D.地址偏移量 7.执行返回指令时,返回的断点是 A.调用指令的首地址 B.调用指令的末地址 C.返回指令的末地址 D.调用指令下一条指令的首地址 8.可以为访问程序存储器提供或构成地址的有 A.只有程序计器PC B.只有PC和累加器A C.只有PC、A和据指针DPTR D.PC、A、DPTR和堆栈指针SP 9.若原来工作寄存器0组为当前寄存器组,现要改2组为当前寄存器组,不能使用指令 A.SETB PSW.3 B.SETB D0H.4 C.MOV D0H,#10H D.CPL PSW.4 10.执行以下程序段 MOV SP,#40H MOV B,#30H MOV A,#20H PUSH B PUSH ACC POP B POP ACC 后,B和A的内容分别为 A.20H,30H B.30H,20H C.40H,30H D.40H,20H 11.执行以下程序段 MOV R0,#70H MOV A,R0 RL A MOV R1,A RL A RL A ADD A,R1 MOV @R0,A 后,实现的功能是 A.把立即70H循环左移3次 B.把立即70H×10 C.把70H单元的内容循环左移3次 D.把70H单元的内容×10 12.下列叙述中,不属于单片机存储器系统特点的是 A.扩展程序存储器与片内程序存储器存储空间重叠 B.扩展据存储器与片内据存储器存储空间重叠 C.程序和据两种类型的存储器同时存在 D.芯片内外存储器同时存在 13.如在系统中只扩展两片Intel2764,其地址范围分别为0000H~1FFFH、8000H~9FFFH,除应使用P0口的8条口线外,至少还应使用P2口的口线 A.6条 B.7条 C.5条 D.8条 14.下列有关MCS—51中断优先级控制的叙述中,错误的是 A.低优先级不能中断高优先级,但高优先级能中断低优先级 B.同级中断不能嵌套 C.同级中断请求按时间的先后顺序响应 D.同级中断按CPU查询次序响应中断请求 15.执行中断返回指令,要从堆栈弹出断点地址,以便去执行被中断了的主程序。从堆栈弹出的断点地址送给 A.A B.CY C.PC D.DPTR 16.中断查询确认后,在下列各种单片机运行情况中,能立即进行响应的是 A.当前指令是ORL A,Rn指令 B.当前正在执行RETI指令 C.当前指令是MUL指令,且正处于取指令机器周期 D.当前正在进行1优先级中断处理 下列功能中不是由I/O接口实现的是 A.据缓冲和锁存 B.据暂存 C.速度协调 D.据转换 18.为给扫描法工作的键盘提供接口电路,在接口电路中需要 A.一个输入口 B.一个输出口 C.一个输入口和一个输出口 D.两个输入口 19.下列理由中,能说明MCS—51的I/O编址是统一编址方式而非独立编址方式的理由是 用存储器指令进行I/O操作 有专用的I/O指令 有区分存储器和I/O的控制信号 I/O和存储器的地址可以重叠 20.把8155的A2、A1、A0分别与80C51的P0.2、P0.1、P0.0连接,则8155的PA、PB、PC口的地址可能是 A.××00H~××03H B.00××H~03××H C.××01H~××03H D.××00H~××02H 21.调制解调器(MODEM)的功能是 A.串行据与并行据的转换 B.字信号与模拟信号的转换 C.电平信号与频率信号的转换 D.基带传送方式与频带传送方式的转换 22.通过串行口发送据时,在程序中应使用 A.MOVX SBUF,A B.MOVC SUBF,A C.MOV SUBF,A D.MOV A,SUBF 23.通过串行口接收据时,在程序中应使用 A.MOVX A,SBUF B.MOVC A,SUBF C.MOV SUBF,A D.MOV A,SUBF 24.在多机通讯中,有关第9据位的说明中,正确的是 A.接收到的第9据位送SCON寄存器的TB8中保存 B.帧发送时使用指令把TB8位的状态送入移位寄存器的第9位 C.发送的第9据位内容在SCON寄存器的RB8中预先准备好 D.帧发送时使用指令把TB8位的状态送入发送SBUF中 25.在使用多片DAC0832进行D/A转换,并分时输入据的应用中,它的两级据锁存结构可以 A.提高D/A转换速度 B.保证各模拟电压能同时输出 C.提高D/A转换精度 D.增加可靠性 26.8279芯片与80C51接口电路时,其内部时钟信号是由外部输入的时钟信号经过分频产生的。如80C51的fosc=6MHz,8279为取得100KHz的内部时钟信号,则其定时值为 A.20D B.10D C.20H D.10H 分析程序后,回答问题。 若(A)=80H,R0=17H,(17H)=34H,执行下段程序后,(A)=? ANL A,#17H ORL 17H,A XRL A,@R0 CPL A 写出程序执行后有关寄存器和RAM中有关单元的内容: MOV 30H,#A4H MOV A,#0D6H MOV R0,#30H MOV R2,#47H ANL A,R2 ORL A,R0 SWAP A CPL A XRL A,#0FFH ORL 30H,A 下列程序执行后,(SP)=? (A)=? (B)=? ORG 2000H MOV SP,#40H MOV A,#30H LCALL 2500H ADD A,#10H MOV B,A SJMP $ ORG 2500H MOV DPTR,#200AH PUSH DPL PUSH DPH RET 在程序存储器中,据表格为: 1010H:02H 1011H:04H 1012H:06H 1013H:08H 执行程序 1000H:MOV A,#0DH 1002H:MOVC A,@A+PC 1003H:MOV R0,A 问结果:(A)=? (R0)=? (PC)=? 在程序存储器中,据表格为: 7010H:02H 7011H:04H 7012H:06H 7013H:08H 执行程序 1004H:MOV A,#10H 1006H:MOV DPTR,#7000H 1009H:MOVC A,@A+DPTR 问结果:(A)=? (PC)=? 程序如下: CLR RS1 CLR RS0 MOV A,#38H MOV R0,A MOV 29H,R0 SETB RS0 MOV C,RS0 MOV R1,A MOV 26H,A MOV 28H,C ADDC A,26H 试问:(1)区分哪些是位操作指令?哪些是字节操作指令? (2)写出程序执行后有关寄存器和RAM中有关单元的内容。 设单片机采用6MHz晶振,计算如下一段程序的执行时间,并说明这段程序的作用。 MOV R0,#20H MOV R3,#05H MOV A,@ R0 CPL A ADD A,#01H MOV @ R0,A NEXT: INC R0, MOV A,@ R0 CPL A ADDC A,#00H MOV @ R0,A DJNZ R3,NEXT SJMP $ 用80C51单片机的P1端口作输出,经驱动电路接8只发光二极管,如图,输出位是“1”时,发光二极管点亮,输出“0”时为暗。试分析下述程序执行过程及发光二极管点亮的工作规律。 LP:MOV P1,#81H LCALL DELAY MOV P1,#42H LCALL DELAY MOV P1,#24H LCALL DELAY MOV P1,#18H LCALL DELAY MOV P1,#24H LCALL DELAY MOV P1,#42H LCALL DELAY SJMP LP 子程序: DELAY:MOV R2,#0FAH L1:MOV R3,#0FAH L2:DJNZ R3,L2 DJNZ R2,L1 RET 改错题: 把在R4和R5中的两字节取补(高位在R4中): CLR C MOV A,R5 CPL A INC A MOV R5,A MOV A,R4 CPL A ADDC A,#00H MOV R4,A SJMP $ 问答题 单片机MCS—51系列产品80C51/87C51/80C31三种单片机的区别是什么?如何选用? 试说明MCS—51单片机内部程序存储器中6个特殊功能单元(5个中断源和1个复位)的作用及在程序编制中如何使用? 内部RAM低128单元划分为哪3个主要部分?说明各部分的使用特点。 堆栈有哪些功能?堆栈指示器(SP)的作用是什么?在程序设计时,为什么还要对SP重新赋值?如果CPU在操作中要使用两组工作寄存器,你认为SP的初值应为多大? 开机复位后,CPU使用的是哪组工作寄存器?它们的地址是什么?CPU如何确定和改变当前工作寄存器组? MCS—51单片机运行出错或程序进入死循环,如何摆脱困境? 在MCS—51单片机系统中,外接程序存储器和据存储器共用16位地址线和8位据线,为什么不会发生冲突? 一个定时器的定时时间有限,如何实现两个定时器的串行定时,以满足较长定时时间的要求? 使用一个定时器,如何通过软硬件结合的方法,实现较长时间的定时? 10.MCS—51单片机属哪一种I/O编址方式?有哪些特点可以证明。 11.多片D/A转换器为什么必须采用双缓冲接口方式? 12.说明利用MCS-51单片机的串行口进行多机通信的原理,应特别指出第9据位在串行通信中的作用及在多机通信时必须采用主从式的原因。 单片机的fosc=12MHZ,要求用T0定时150μs,分别计算采用定时方式0、定时方式1和定时方式2时的定时初值。 单片机的fosc=6MHZ,问定时器处于不同工作方式时,最大定时范围分别是多少? 编程题: 程序实现c=a2+b2。设a、b均小于10,a存在31H单元,b存在32H单元,把c存入33H单元。 软件延时方法实现变调振荡报警:用P1.0端口输出1KHz和2KHz的变调音频,每隔1s交替变换一次。 使用定时器中断方法设计一个秒闪电路,让LED显示器每秒钟有400ms点亮。假定晶振频率为6MHz,画接口图并编写程序。 以80C51串行口按工作方式1进行串行据通信。假定波特率为1200bps,以中断方式传送据,请编写全双工通信程序。 以80C51串行口按工作方式3进行串行据通信。假定波特率为1200bps,以中断方式传送据,请编写全双工通信程序。 甲乙两台单片机利用串行口方式1通讯,并用RS—232C电平传送,时钟为6MHz,波特率为1.2K,编制两机各自的程序,实现把甲机内部RAM50H~5FH的内容传送到乙机的相应片内RAM单元。 设计一个80C51单片机的双机通信系统,并编写程序将甲机片外RAM3400H~3500H的据块通过串行口传送到乙机的片外RAM4400H~4500H单元中去。 求8个的平均值,这8个以表格形式存放在从table开始的单元中。 在外部RAM首地址为table的据表中,有10个字节据。编程将每个字节的最高位无条件地置“1”。 单片机用内部定时方法产生频率为100KHz等宽矩形波,假定单片机的晶振频率为12MHz,请编写程序。 假定单片机晶振频率为6MHz,要求每隔100ms,从外部RAM以data开始的据区传送一个据到P1口输出,共传送100个据。要求以两个定时器串行定时方法实现。 用定时器T1定时,使P1.2端电平每隔1min变反一次,晶振为12MHz。 设定时器/计器T0为定时工作方式,并工作在方式1,通过P1.0引脚输出一周期为2ms的方波,已知晶振频率为6MHZ,试编制程序。 若80C51单片机的fosc=6MHZ,请利用定时器T0定时中断的方法,使P1.0输出如图所示的矩形脉冲。 80C51单片机P1端口上,经驱动器接有8只发光二极管,若晶振频率为6MHZ,试编写程序,使这8只发光管每隔2s由P1.0~P1.7输出高电平循环发光。 从片外RAM2000H地址单元开始,连续存有200D个补码。编写程序,将各取出处理,若为负则求补,若为正则不予处理,结果存入原据单元。 80C51单片机接口DAC0832D/A变换器,试设计电路并编制程序,使输出如图所示的波形。 PC/XT的D/A接口使用DAC0832。其有关信号接线如图所示,其输出电压V0和输入字量DI7-DI0之间呈线性且如表所示。现要求V0从零开始按图示波形周期变化(周期可自定)。试用汇编语言编写其控制部分程序。 七、画接口电路图: 1.以两片Intel2716给80C51单片机扩展一个4KB的外部程序存储器,要求地址空间与80C51的内部ROM相衔接,请画出接口图。 2.微型机PC的RS-232接口与MCS-51单片机程序通信接口的电路原理图。 3.MCS-51单片机系统中外部扩展程序存储器和据存储器共用16位地址线和8位据线,如何处理不会发生冲突?试画出MCS-51单片机外扩展ROM(2732EPROM)和RAM(6116)的系统接线原理图,并说明其工作过程。 一片6116芯片(2K×8)和一片27128芯片(16K×8)构成存储器系统,要求存储器的起始地址为0000H,且两存储器芯片的地址号连续,试画出连线原理图,并说明每一芯片的地址范围。 用74LS138设计一个译码电路,利用80C51单片机的P0口和P2口译出地址为2000H ~ 3FFFH的片选信号CS 。 用一片74LS138译出两片存储器的片选信号,地址空间分别为1000H~1FFFH,3000H~3FFFH。试画出译码器的接线图。 80C31单片机要扩展4K字节外部RAM,要求地址范围为1000H~1FFFH,请画出完整的电路图。
单片机原理与接口技术课程设计 课程名称: 单片机原理与接口技术 设计题目: 基于51单片机字温度计设计 专 业: 信 息 工 程 设 计 者: 指导老师: 摘要 随着现代信息技术的飞速发展和传统工业改造的逐步实现.能够独立工作的温度检测 和显示系统应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的 成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有 一定的误差。与传统的温度计相比,这里设计的字温度计具有读方便,测温范围广 ,测温精确,字显示,适用范围宽等特点。选用AT89C51型单片机作为主控制器件,D Sl8B20作为测温传感器通过2位共阴极LED码管串口传送据,实现温度显示。通过DS l8B20直接读取被测温度值,进行据转换,该器件的物理化学性能稳定,线性度较好, 在0 ~100 最大线性偏差小于0.1 。该器件可直接向单片机传输字信号,便于单片机处 理及控制。另外,该温度计还能直接采用测温器件测量温度,从而简化据传输与处理 过程。 关键字:AT89S52 51单片机 DS18B20 温度计 目 录 1 系统硬件设计方案 - 3 - 1.1 温度传感器介绍 - 3 - 1.2 温度传感器与单片机的连接 - 6 - 1.3 复位信号及外部复位电路 - 7 - 1.4 电源电路 - 7 - 1.5 显示电路 - 8 - 2 软件设计 - 9 - 3 据测试 - 11 - 4 总结与体会 - 11 - 参考文献 - 13 - 附录1 仿真图 - 14 - 附录2 程序源代码 - 15 - 1 系统硬件设计方案 1.1 温度传感器介绍 AT89C51作为温度测试系统设计的核心器件。该器件是INTEL公司生产的MCS一5l系列单片 机中的基础产品,采用了可靠的CMOS工艺制造技术,具有高性能的8位单片机,属于标准 的MCS—51的CMOS产品。不仅结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,而且 继承和扩展了MCS—48单片机的体系结构和指令系统。单片机小系统的电路图如图2所示。 图1 单片机小系统电路 AT89C51单片机的主要特性: (1)与MCS-51 兼容,4K字节可编程闪烁存储器; (2)灵活的在线系统编程,掉电标识和快速编程特性; (3)寿命为1000次写/擦周期,据保留时间可10年以上; (4)全静态工作模式:0Hz-33Hz; (5)三级程序存储器锁定; (6)128*8位内部RAM,32可编程I/O线; (7)两个16位定时器/计器,6个中断源; (8)全双工串行UART通道,低功耗的闲置和掉电模式; (9)片内振荡器和时钟电路; DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。可选更小的封装方式,更宽的电 压适用范围。分辨率设定,及用户设定的报警温度存储在EPROM中,掉电后依然保存。 温度传感器DS18B20引脚如图3所示。 8引脚封装 TO-92封装 图2 温度传感器 引脚功能说明: NC :空引脚,悬空不使用; VDD :可选电源脚,电源电压范围3~5.5V。当工作于寄生电源时,此引脚必须接地。 DQ :据输入/输出脚。漏极开路,常态下高电平。 GND :为电源地 DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警 触发器TH和TL、配置寄存器。 光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码 。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自 身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作 用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的 。 DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二 进制补码形式提供,以0.0625 /LSB形式表达,其中S为符号位。 这是12位转化后得到的12位据,存储在18B20的两个8比特的RAM中,二进制中的前 面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的值乘于0.0625即可 得到实际温度;如果温度小于0,这5位为1,测到的值需要取反加1再乘于0.0625即可 得到实际温度。 例如+125 的字输出为07D0H,+25.0625 的字输出为0191H,- 25.0625 的字输出为FF6FH,-55 的字输出为FC90H。 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的 E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。 暂存存储器包含了
《单片机系统的设计与制作》期末复习提纲 一、理论基础 (一)MCS-51单片机结构和原理 内部组成 (1)CPU(包括运算器和控制器)控制器的功能是:接受来自程序存储器ROM存储单 元的指令,并对其进行译码,通过定时和控制电路,按时序规定发出指令功能所需 要的各种(内部和外部)控制信息,使各部分协调工作,完成指令功能所需的操作 。 控制器主要包括程序计器、指令寄存器、指令译码器及定时控制电路等。 (2) 运算器ALU 运算器的功能是:对据进行算术运算和逻辑运算。计算机对任何据的加工、处理 必须由运算器完成。 CPU是单片机内部的核心部件,是单片机的指挥和控制中心。CPU可分为运算器和控制 器两大部分。 (2)内部RAM(空间大小、作用;256B,用户可用于读写据的为前128B……..) (3)内部ROM(空间大小、作用)(2)内部据存储器(内部RAM) 8051芯片中共有256个RAM单元,但其中后128单元被专用寄存器占用,能作为寄存器 供用户使用的只是前128单元,用于存放可读写的据。因此通常所说的内部据存储器 就是指前128单元,简称内部RAM。 (3)内部程序存储器(内部ROM) 8051共有4KB掩膜ROM,用于存放程序、原始据或表格,因此称之为程序存储器,简 称内部ROM。 (4)定时/计器(2个16位……)(4)定时器/计器 8051共有2个16位的定时器/计器,以实现定时或计功能,并以其定时或计结果 对计算机进行控制。 (5)并行I/O(4个8位,P0,P1,P2,P3,其中P3口具有第二功能)5)并行I/O口 MCS- 51共有四个8位的I/O口(P0、P1、P2、P3),以实现据的并行输入输出。在实训中我 们已经使用了P1口,通过P1口连接8个发光二极管。 (6)串行口(全双工串行口,可实现单片机与其他设备之间的串行据传送)6)串 行口 MCS- 51单片机有一个全双工的串行口,以实现单片机和其它设备之间的串行据传送。该串 行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用 (7)中断控制系统(5个中断源)(7)中断控制系统 MCS- 51单片机的中断功能较强,以满足控制应用的需要。8051共有5个中断源,即外中断2个 ,定时/计中断2个,串行中断1个。全部中断分为高级和低级共二个优先级别 (8)时钟电路(需外接晶振和微调电容)MCS- 51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟 脉冲序列。系统允许的晶振频率一般为6MHZ和12MHZ。 (二)指令系统 1.指令格式 "标号 "操作码 "操作或操作地址";注释 " ": " " " " 注意区分(1)单字节指令、双字节指令、三字节指令 (2)目的操作、源操作 2.寻址方式 (1)寄存器寻址 R0~R7 Rn(n=0~7):表示当前工作寄存器R0~R7中的任一个寄存器 (2)直接寻址 direct (30H)direct:表示片内RAM的8位单元地址 (3)立即寻址 #data (#30H)#data:表示8位直接参与操作的立即 (4)寄存器间接寻址 @Rn(n只能取0或1)Ri(i=0或1):表示通用寄存器组中用于间接寻址的两个寄存器R0 , R1。 (5)变址寻址 @A+DPTR (用于查表操作 操作码 MOVC)在间接寻址方式中,表示间接寻址寄存器指针的前缀标志 DPTR:据指针,用于寄存器间接寻址方式和变址寻址方式 (6)相对寻址相对寻址 定义:将程序计器PC的当前值(取出本条指令后的PC值)与指令第二个字节给出的 偏移量(rel)相加,形成新的转移目标地址。称为相对寻址方式。 特点:相对寻址方式是为实现程序的相对转移而设计的,为相对转移指令所使用,其 指令码中含有相对地址偏移量,能生成浮动代码。 如: SJMP rel ; (PC) (PC) + 2 + rel 相对转移指令的目的地址=指令地址+指令字节+偏移量 寻址范围:只能对程序存储器ROM进行寻址。相对地址偏移量(rel)是一个带符号的 8位二进制补码,其取值范围为(128~+127(以PC为中间的256个字节范围)。 (7)位寻址位寻址 定义:指令中给出的操作是一个可单独寻址的位地址,这种寻址方式称为位寻址方 式。 特点:位寻址是直接寻址方式的一种,其特点是对8位二进制中的某一位的地址进 行操作。 寻址范围:片内RAM低128B中位寻址区、部分SFR(其中有83位可以位寻址)。 可位寻址的位地址的表示形式如下: (1)直接使用位地址形式。如: MOV 00H, C ;(00H) (Cy) 其中:00H是片内RAM中20H地址单元的第0位。 3.指令系统1)指令的格式、功能 。 (2)
基于单片机字温度计设计课程设计全文共7页,当前为第1页。基于单片机字温度计设计课程设计全文共7页,当前为第1页。基于单片机字温度计设计课程设计 基于单片机字温度计设计课程设计全文共7页,当前为第1页。 基于单片机字温度计设计课程设计全文共7页,当前为第1页。 基于单片机的字温度计设计引言随着现代信息技术的飞速发展和传统工业改造的逐步实现.能够独立工作的温度检测和显示系统应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。与传统的温度计相比,这里设计的字温度计具有读方便,测温范围广,测温精确,字显示,适用范围宽等特点。选用AT89C51型单片机作为主控制器件,DSl8B20作为测温传感器通过4位共阳极LED码管串口传送据,实现温度显示。通过DSl8B20直接读取被测温度值,进行据转换,该器件的物理化学性能稳定,线性度较好,在0 ~100 最大线性偏差小于0.1 。该器件可直接向单片机传输字信号,便于单片机处理及控制。另外,该温度计还能直接采用测温器件测量温度,从而简化据传输与处理过程。 2系统硬件设计方案根据系统功能要求,构造图1所示的系统原理结构框图。 图1系统原理结构框图2.1单片机的选择AT89C51作为温度测试系统设计的核心器件。该器件是INTEL公司生产的MCS一5l系列单片机中的基础产品,采用了可靠的CMOS工艺制造技术,具有高性能的8位单片机,属于标准的MCS—51的CMOS产品。不仅结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,而且继承和扩展了MCS—48单片机的体系结构和指令系统。单片机小系统的电路图如图2所示。 图2单片机小系统电路AT89C51单片机的主要特性: (1)与MCS-51兼容,4K字节可编程闪烁存储器; (2)灵活的在线系统编程,掉电标识和快速编程特性; (3)寿命为1000次写/擦周期,据保留时间可基于单片机字温度计设计课程设计全文共7页,当前为第2页。基于单片机字温度计设计课程设计全文共7页,当前为第2页。10年以上; (4)全静态工作模式:0Hz-33Hz; (5)三级程序存储器锁定; (6)128*8位内部RAM,32可编程I/O线; (7)两个16位定时器/计器,6个中断源; (8)全双工串行UART通道,低功耗的闲置和掉电模式; (9)看门狗(WDT)及双据指针; (9)片内振荡器和时钟电路; 2.2温度传感器介绍DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EPROM中,掉电后依然保存。 基于单片机字温度计设计课程设计全文共7页,当前为第2页。 基于单片机字温度计设计课程设计全文共7页,当前为第2页。 温度传感器DS18B20引脚如图3所示。 8引脚封装TO-92封装图3温度传感器引脚功能说明: NC:空引脚,悬空不使用; VDD:可选电源脚,电源电压范围3~5.5V。当工作于寄生电源时,此引脚必须接地。 DQ:据输入/输出脚。漏极开路,常态下高电平。 GND:为电源地DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。 光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。 基于单片机字温度计设计课程设计全文共7页,当前为第3页。基于单片机字温度计设计课程设计全文共7页,当前为第3页。DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码形式提供,以0.0625 /LSB形式表达,其中S为符号位。 基于单片机字温度计设计课程设计全文共7页,当前为第3页。 基于单片机字温度计设计课程设计全文共7页,当前为第3页。 这是12位转化后得到的12位据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的值乘于0.0625即可得到实际温度; 如果温度小于0,这5位为1,测到的值需要取反加1再乘于0.0625即可得到实际温度。 例如+125 的字输出为07D0H,+25.0625 的字输出为0191H,-25.0625 的字输出为FF6FH,-
基于单片机的字温度计设计 引言 随着现代信息技术的飞速发展和传统工业改造的逐步实现.能够独立工作的温度检测 和显示系统应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的 成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有 一定的误差。与传统的温度计相比,这里设计的字温度计具有读方便,测温范围广 ,测温精确,字显示,适用范围宽等特点。选用AT89C51型单片机作为主控制器件,D Sl8B20作为测温传感器通过4位共阳极LED码管串口传送据,实现温度显示。通过DS l8B20直接读取被测温度值,进行据转换,该器件的物理化学性能稳定,线性度较好, 在0 ~100 最大线性偏差小于0.1 。该器件可直接向单片机传输字信号,便于单片机处 理及控制。另外,该温度计还能直接采用测温器件测量温度,从而简化据传输与处理 过程。 2 系统硬件设计方案 根据系统功能要求,构造图1所示的系统原理结构框图。 图1 系统原理结构框图 2.1 单片机的选择 AT89C51作为温度测试系统设计的核心器件。该器件是INTEL公司生产的MCS一5l系列 单片机中的基础产品,采用了可靠的CMOS工艺制造技术,具有高性能的8位单片机,属于 标准的MCS—51的CMOS产品。不仅结合了HMOS的高速和高密度技术及CHMOS的低功耗特征, 而且继承和扩展了MCS—48单片机的体系结构和指令系统。单片机小系统的电路图如图2所 示。 图2 单片机小系统电路 AT89C51单片机的主要特性: (1)与MCS-51 兼容,4K字节可编程闪烁存储器; (2)灵活的在线系统编程,掉电标识和快速编程特性; (3)寿命为1000次写/擦周期,据保留时间可10年以上; (4)全静态工作模式:0Hz-33Hz; (5)三级程序存储器锁定; (6)128*8位内部RAM,32可编程I/O线; (7)两个16位定时器/计器,6个中断源; (8)全双工串行UART通道,低功耗的闲置和掉电模式; (9)看门狗(WDT)及双据指针; (9)片内振荡器和时钟电路; 2.2 温度传感器介绍 DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。可选更小的封装方式,更宽 的电压适用范围。分辨率设定,及用户设定的报警温度存储在EPROM中,掉电后依然保存 。 温度传感器DS18B20引脚如图3所示。 8引脚封装 TO-92封装 图3 温度传感器 引脚功能说明: NC :空引脚,悬空不使用; VDD :可选电源脚,电源电压范围3~5.5V。当工作于寄生电源时,此引脚必须接地。 DQ :据输入/输出脚。漏极开路,常态下高电平。 GND :为电源地 DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警 触发器TH和TL、配置寄存器。 光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码 。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自 身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作 用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的 。 DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二 进制补码形式提供,以0.0625 /LSB形式表达,其中S为符号位。 这是12位转化后得到的12位据,存储在18B20的两个8比特的RAM中,二进制中的前 面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的值乘于0.0625即可 得到实际温度;如果温度小于0,这5位为1,测到的值需要取反加1再乘于0.0625即可 得到实际温度。 例如+125 的字输出为07D0H,+25.0625 的字输出为0191H,- 25.0625 的字输出为FF6FH,-55 的字输出为FC90H。 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的 E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。 暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容 是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性 拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时 被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。 该字节各位的意义如下: TM R1 R0 1 1 1 1 1 低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20

1,068

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧