单片机实验4 子程序设计-- BCD码转换为二进制

合集下载

二进制,十进制,十六进制,ASCII,BCD码的转换,单片机

二进制,十进制,十六进制,ASCII,BCD码的转换,单片机

1.在片内RAM 30H单元有-个8位二进制数,将其转换成压缩BCD码,存于片内RAM 41H(高位)40H(低位)中。

方法:2^8=256,所以8位二进制A<=256,A/100商是百位数,存放到41h单元,余数再除以10,再得商是10位数,高低位互换,) ORG 0100HSTART:MOV A,30H ;取来8位二进制数MOV B,#100DIV AB ;除以100MOV 41H,A ;商是百位数,存放到41h单元MOV A,B ;取回余数MOV B,#10DIV AB ;再除以10SWAP A ;商是10位数,高低位互换ORL A,BMOV 40H,A ;将十位数与个位位数存入40hSJMP $END2.一个字节(8位)BCD码转换为二进制数(方法:先将高半字节乘以10,再加上低半字节)设待转换的BCD码存放于R2中DTOB:MOV A,R2ANL A,#0F0HSWAP AMOV B,#0AHMUL ABMOV R3,AMOV A,R2ANL A,#0FHADD A,R3RET3.二进制数转换为ASCII码设(30H)=4BH,将高4位的ASCII码放在31H单元,低4位的ASCII码放在32H单元,程序具有通用性,向入口参数30H存入任何数,都能将其变成相应的ISCII 码.ORG 0000HLJMP MAINORG 0030HMAIN:MOV SP,#60HMOV 30H,#4BHMOV R2,30HMOV A,R2ANL A,#0FHCJNE A,#0AH,NEQNEQ: JC LOOPADD A,#37HJMP LOOP3LOOP:ADD A,#30HLOOP3:MOV 31H,AMOV A,R2SWAP AANL A,#0FHCJNE A,#0AH,NE1NE1: JC LOOP1ADD A,#37HJMP LOOP4LOOP1:ADD A,#30HLOOP4:MOV 32H,AA1: SJMP A1END4.已知R0的低半个字节为一个四位的二进制数,要求将其转换为ASCAII码后送回R0中。

微机原理(单片机汇编)实验报告

微机原理(单片机汇编)实验报告

软件实验报告软件实验一一、实验目的1.熟悉软件实验的基本步骤和汇编程序的调试方法;2.了解内存块的移动方法;3.了解将十六进制数转换成ASCII值的方法。

二、实验原理用MOV和MOVX指令可以进行数据的赋值和移动,用循环可以完成大量数据的复制。

三、实验内容及步骤1、软件设置为模拟调试状态,在所建的Project文件中添加例程1的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。

打开CPU窗口,观察CPU窗口各寄存器的变化。

打开View菜单中的Memory Window,可以观察内部RAM、外部RAM的数据和程序存储器中的程序。

在Address窗口输入X:8000H后回车,观察8000H-800FF起始的256个字节单元的内容。

2、新建一个Project文件,添加例程2的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。

打开View菜单中的Memory Window,在Address 窗口的Memory#1输入X:3000H后回车,点击运行按钮后, 在Memory#2输入X:4000H后回车,观察外部RAM3000H和4000H中的内容。

3、添加将片内30H-3FH单元的内容复制片外片外1030H~103FH中的源程序,编译运行,观察比较30-3FH单元中的内容和片外1030H-103FH中的内容。

4、添加将30H、31H单元中的十六进制数,转换成ASCII码,存放到40H开始的4个单元中的源程序,编译运行,观察结果。

5、添加求内部RAM 30H—37H单元中8个无符号数的算术和的源程序,8个无符号数设定为25H,36H,4AH,65H,7FH,82H,9BH,1DH,观察39H,38H中的数字是否分别为02H,C3H。

四、实验结果1.步骤1的结果为8000H-80FFH的内容都为1.2.步骤2的结果为3000H起始的256个字节存储块与4000H起始的256个字节存储块各单元内数据对应相同。

单片机原理及接口技术试题及答案

单片机原理及接口技术试题及答案

单片机试题带答案二、单项选择题(在每题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。

每题1分,共10分)1.MCS-51单片机复位操作的主要功能是把PC初始化为( )。

A.0100HB.2080HC.0000HD.8000H2.假设单片机的振荡频率为6MHz,设定时器工作在方式1需要定时1ms,那么定时器初值应为( )。

A.500B.1000C.216-500D.216-10003.定时器1工作在计数方式时,其外加的计数脉冲信号应连接到( )引脚。

A.P3.2B.P3.3C.P3.4D.P3.54.当外部中断请求的信号方式为脉冲方式时,要求中断请求信号的高电平状态和低电平状态都应至少维持( )。

A.1个机器周期B.2个机器周期C.4个机器周期D.10个晶振周期5.MCS-51单片机在同一优先级的中断源同时申请中断时,CPU首先响应( )。

A.外部中断0B.外部中断1C.定时器0中断D.定时器1中断6.定时器假设工作在循环定时或循环计数场合,应选用( )。

A.工作方式0B.工作方式1C.工作方式2D.工作方式37.MCS-51单片机的外部中断1的中断请求标志是( )。

A.ET1B.TF1C.IT1D.IE18.以下标号中,正确的标号是( )。

A.1BT:B.BEGIN:C.ADD:D.STAB31:9.串行口每一次传送( )字符。

A.1个B.1串C.1帧D.1波特10.要想把数字送入DAC0832的输入缓冲器,其控制信号应满足( )。

A.ILE=1,CS=1,WR1=0B.ILE=1, CS=0, WR1=0C.ILE=0, CS=1, WR1=0D.ILE=0,CS=0, WR1=0一、填空题(每空格1分,共10分)2.P1口通常用作_______,也可以作通用的I/O口使用。

3.假设由程序设定RS1、RS0=01,那么工作存放器R0~R7的直接地址为______。

4.8051的堆栈区一般开辟在_______。

精编新版《单片机与接口技术》完整题库158题(含参考答案)

精编新版《单片机与接口技术》完整题库158题(含参考答案)

2020年《单片机与接口技术》试题库158题(含参考答案)一、单选题1.单片机8051的XTAL1和XTAL2引脚是 D 引脚。

A.外接定时器B.外接串行口C.外接中断D.外接晶振2.MCS-51单片机CPU的主要组成部分为 A 。

A.运算器、控制器B.加法器、寄存器C.运算器、加法器D.运算器、译码器3.能将A按位取反的指令是 A 。

A.CPL AB.CLR AC.RL AD.SWAP A4.在MCS-51指令中,下列指令中 C 是无条件转移指令。

A.LCALL addr16B.DJNZ direct,relC.SJMP relD.ACALL addr115.MCS-51单片机定时器外部中断1和外部中断0的触发方式选择位是 C 。

A.TR1和TR0B.IE1和IE0C.IT1和IT0D.TF1和TF06.MCS-51寻址方式中,直接寻址的寻址空间是D。

A.工作寄存器R0~R7B.专用寄存器SFRC.程序存储器ROMD.数据存储器256字节范围7.8051单片机的V SS(20)引脚是 B 引脚。

A.主电源+5VB.接地C.备用电源D.访问片外存贮器8.MCS-51单片机的P1口的功能是 A 。

A.可作通用双向I/O口用C.可作地址/数据总线用9.寻址方式就是 C 的方式。

A.查找指令操作码B.查找指令C.查找指令操作数D.查找指令操作码和操作数10.对定时器控制寄存器TCON中的IT1和IT0位清0后,则外部中断请求信号方式为A 。

A.低电平有效B.高电平有效C.脉冲上跳沿有效D.脉冲负跳有效11.启动定时器1开始定时的指令是 D 。

A.CLR TR0B.CLR TR1C.SETB TR0D.SETB TR112.执行下列程序后,累加器A的内容为 B 。

ORG 0000HMOV A, #00HADD A, #02HMOV DPTR, #0050HMOVC A, @A+DPTRMOV @R0, ASJMP $ORG 0050HBAO: DB 00H,08H,0BH,6H,09H,0CHENDA.00HB.0BHC.06HD.0CH13.单片机上电复位后,PC的内容和SP的内容为 B 。

单片机课程设计

单片机课程设计

前言单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。

概括的讲:一块芯片就成了一台计算机。

它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。

同时,学习使用单片机是了解计算机原理与结构的最佳选择。

单片机是靠程序运行的,并且可以修改。

通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是其它器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。

一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板,但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别,因为单片机的通过编写的程序可以实现高智能,高效率,以及高可靠性。

单片机又称微控制器,以体积小、功能全、性价比高等诸多优点而独具特色,因此单片机技术已经普及到我们的生活、工作、科研等各个领域,本文主要介绍了一个基于AT89C51单片机的测温报警系统,描述了单片机的基本信息以及利用DS18B20数字温度传感器开发测温系统,对其外围硬件进行连接、软件编程等模块都进行了详细介绍。

该系统可以实现温度的采集和显示,并且可以根据需要设定温度的上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、功耗低等优点,非常适合日常生活的温度测量。

DS18B20与AT89C51结合实现最简单的温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有着广泛的应用前景。

1 概述1.1 数字温度计简介随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。

第4章 MCS-51单片机汇编语言程序设计(2)

第4章 MCS-51单片机汇编语言程序设计(2)
START:MOV DPTR,#TAB : MOV A,R7 ADD A,R7 MOV R3,A MOVC A,@A+DPTR
XCH A,R3 INC A MOVC A,@A+DPTR MOV DPL,A MOV DPH,R3 CLR A JMP @A+DPTR TAB DW DW A0 A1
…………. DW AN
INC
DPTR
MOVX A,@DPTR SUBB A,R7 JNC XCH BIG1 A,R7
BIG0:INC DPTR
实现程序如下: 实现程序如下
START:CLR C : MOV DPTR,#ST1 , MOVX A,@DPTR , MOV R7,A
MOVX @DPTR,A RET BIG1:MOVX A,@DPTR SJMP BIG0
实现程序如下: 实现程序如下 MOV 30H, 20H ANL 30H,#00011111B MOV A,21H SWAP A RL A ANL A,#11100000B ORL 30H,A
第4章 MCS-51单片机汇编语言程序设计
实现程序如下: 实现程序如下 例 A,@R1 ADDC4.3 做3个字节的 无符号的加法. 无符号的加法.设一个加 MOV R0,#52H , MOV @R0,A 数存放在内部RAM 50H、 RAM的 数存放在内部RAM的50H、 MOV R1,#55H , DEC R0 51H、52H单元中 单元中, 51H、52H单元中,另一 DEC R1 RAM的53H、 MOV A,@R0 个加数存放在RAM 个加数存放在RAM的53H、 MOV A,@R0 54H、55H单元中 单元中, 54H、55H单元中,相加 ADD A,@R1 结果存内部RAM的50H、 结果存内部RAM的50H、 RAM ADDC A,@R1 51H、52H单元 单元, 51H、52H单元,均从高 MOV @R0,A 字节开始存放, 字节开始存放,进位存放 MOV 00H,C 在位寻址区的00H位中。 00H位中 在位寻址区的00H位中。 MOV @R0,A DEC DEC R0 R1

(完整版)单片机原理及应用考试试题及答案

(完整版)单片机原理及应用考试试题及答案

单片机原理及应用试题一一、填空题(每空1分,共20分)1、计算机的系统总线有地址总线、控制总线和数据总线。

2、通常、单片机上电复位时PC= 0000H,SP= 07H;而工作寄存器则缺省采用第00 组,这组寄存器的地址范围是从00H~ 07H。

3、JZ e 的操作码地址为1000H,e=20H,它转移的目标地址为1022H。

4、汇编语言中可以使用伪指令,它们不是真正的指令,只是用来对汇编过程进行某种控制。

5、假定累加器A的内容30H,执行指令:1000H:MOVC A,@A+PC后,把程序存储器1031H单元的内容送累加器A中。

6、MCS-51单片机访问外部存储器时,利用ALE信号锁存来自P0口的低8位地址信号。

7、MCS-51单片机8031中有2个16位的定时/计数器,可以被设定的工作方式有四种。

8、MCS-51单片机有5个中断源,可分为 2 个中断优先级。

上电复位时外部中断0中断源的最高。

9、用串行口扩展并行口时,串行接口的工作方式应选为方式0。

10、半导体存储器的最重要的两个指标是存储容量和存储速度。

11、若某8位D/A转换器的输出满刻度电压为+5V,则D/A转换器的分辨率为5/255=0.0196V。

12、写8255A控制字时,需将A1、A0置为11。

二、选择题(从备选答案中选择一个正确答案,并将代号写在括号内。

每题1分,共10分)1、在CPU内部,反映程序运行状态或反映运算结果的一些特征寄存器是(B)(A)PC(B)PSW(C)A(D)SP2、要用传送指令访问MCS-51片外RAM,它的指令操作码助记符应是(B )(A)MOV(B)MOVX(C)MOVC(D)以上都是3、指令ALMP的跳转范围是(C)(A)256B(B)1KB(C)2KB(D)64KB4、要使MCS-51能够响应定时器T1中断,串行接口中断,它的中断允许寄存器IE的内容应是(A )(A)98H(B)84H(C)42H(D)22H5、各中断源发出的中断请求信号,都会记在MCS-51系统中的(B )(A)IE(B)IP(C)TCON(D)SCON6、CPU寻址外设端口地址的方法有两种,一种是统一编址,还有一种是(C)(A)混合编址(B)动态编址(C)独立编址(D)变址编址7、下列四条叙述中,有错误的一条是(A )(A)16根地址线的寻址空间可达1MB(B)内存储器的存储单元是按字节编址的(C)CPU中用于存放地址的寄存器称为地址寄存器(D)地址总线上传送的只能是地址信息8、MCS-51外扩一个8255时,需占用(D)个端口地址(A)1个(B)2个(C)3个(D)4个9、用MCS-51串行口扩展并行I/O口时,串行口工作方式应选择(A)(A)方式0(B)方式1(C)方式2 (D)方式310、某种存储器芯片是8KB*4/片,那么它的地址线根数是(C)(A)11根(B)12根(C)13根(D)14根三、问答题(每题5分,共20分)1、MCS-51单片机的时钟周期与振荡周期之间有什么关系?一个机器周期的时序如何划分?答:时钟周期是单片机最基本的时间单位。

PIC单片机运算子程序2,浮点数转换为定点整数,BCD码转换程序

PIC单片机运算子程序2,浮点数转换为定点整数,BCD码转换程序

4.2 3字节浮点数转换为定点整数子程序的转换结果将采用补码表示。

其转换数值范围:-32768~32767,入口条件和出口条件如下:入口条件:ACCBHI、ACCBLO、EXPB出口条件:ACCBHI、ACCBLO以下为子程序的清单。

由于程序所需调用的子程序和所需通用寄存器单元地址和定点数转换为浮点数子程序相同,在此省略。

使用时,将前面介绍的子程序拷入此处即可。

FtoD CLRF SIGN ;清结果符号寄存器MOVF ACCBHI,0BTFSS ACCBHI,7 ;被转换数是否为负?GOTO D1BSF SIGN,7 ;是,SIGN.7置1CALL NEG_B ;被转换数取补D1 BTFSS EXPB,7 ;被转换数为正,再判阶码为负否?GOTO D2CLRF ACCBHI ;为负,被转换数小于1,无法用定点数表示CLRF ACCBLORETLW 0D2 MOVLW .16 ;被转换数阶码减16(十进制数)SUBWF EXPB,0BTFSS STATUS,C ;阶码小于16?GOTO D3MOVLW 0XFF ;阶码大于等于16,置ACCB为最大,返回MOVWF ACCBHIMOVWF ACCBLORETLW 01D3 CALL FTOW3 ;调用子程序将浮点数转换为定点数BTFSC SIGN,7 ;定点数为负?CALL NEG_B ;是,取补RETLW 0 ;否,返回;****************************************FTOW3 MOVLW .15 ;EXPB=15(十进制数)?SUBWF EXPB,0BTFSC STA TUS,ZRETLW 0 ;是,返回BCF STATUS,C ;否,ACCB继续右移,EXPB加1RRF ACCBHIRRF ACCBLOINCF EXPBGOTO FTOW3 ;重新判断EXPB=15?【校验举例1】 19531(十进制)化为十六进制数:4C4B0FH结果:4C4BH【校验举例2】 2622(十进制)化为十六进制数:51F00CH结果:0A3EH【例程】MAIN MOVLW 0X4B ;被转换数4C4BH送ACCBMOVWF ACCBLOMOVLW 0X4CMOVWF ACCBHIMOVLW 0X0FMOVWF EXPBCALL FtoD ;调用定点数至浮点数转换子程序END5 码制转换程序设计5.1 双字节定点数至5位BCD码转换程序入口条件:ACCBHI、ACCBLO出口条件:ACCCHI低半字节、ACCCLO、ACCDHI以下为双字节定点数至5位BCD码转换程序清单。

BCD与二进制相互转换(含Verilog代码)(一)

BCD与二进制相互转换(含Verilog代码)(一)

BCD与二进制相互转换(含Verilog代码)(一)BCD码转二进制:所谓BCD码,就是用四位的二进制表示十进制,什么意思呢,举例说明。

1:00012:00103:00114:01005:01016:01107:01118:10009:1001123:0001 0010 0011(BCD码)123:0000 0111 1011(二进制码)一。

为什么要转换进制?我们可以用BCD码来表示十进制,比如157,123,用BCD码来表示分别是(0001 0101 0111)(0001 0010 0011),可是BCD码不能够直接进行运算,157+123=280,而括号里面的两个BCD码相加之和显然不是280的二进制。

所以就需要先将BCD码转换成二进制,经过换算之后再转换成BCD码。

(有些人会问,为什么要转来转去呢,因为计算机只识别二进制,而有时我们需要输出BCD码)二。

转换原理首先我们看二进制与十进制的转换,例1001(二进制),转换成十进制是1*2^3+0*2^2+0*2^1+1*2^0=9(十进制)。

n位的二进制转换过程为a(n-1)*2^(n-1)+a(n-2)*2^(n-2)+........+a(0)*2^0转换一下形式。

(((a(n-1)*2+a(n-2))*2+a(n-3))*2........+a(0)通过上面的形式发现,我们可以通过×2+b的方式来实现转换。

而×2在可以通过左移一位来实现,下面来谈谈这个b如上所述,BCD码用四位二进制表示0-9,而四位二进制可以表示数的范围为0-15,每进一位就会丢掉6,那么就要加上6/2=3(左移一位),那么在什么条件下左移呢?那就要看在什么情况下会进制,BCD码是二进制编码的十进制,那么就是逢十进一,10/2=5.因此得到条件,即判断每四位是否大于4,因为5-9进一位溢出。

我们来整理一下,二进制转BCD的方法是通过左移,然后每四位判断是否大于4,满足则加3.利用组合逻辑实现的代码如下:利用时序逻辑实现的代码如下:我们可以根据不同的情况选择不同的实现方式。

单片机实习报告3篇

单片机实习报告3篇

单片机实习报告单片机实习报告3篇随着人们自身素质提升,报告有着举足轻重的地位,报告具有成文事后性的特点。

相信很多朋友都对写报告感到非常苦恼吧,下面是小编帮大家整理的单片机实习报告3篇,希望对大家有所帮助。

单片机实习报告篇1一实习目的1. 通过对单片机小系统的设计、焊接、装配,掌握电路原理图及电子线路的基本焊接装配工艺、规范及注意事项;2. 通过对系统板的测试,了解系统板的工作原理及性能,掌握元器件及系统故障的排除方法;3. 掌握程序编制及调试方法,完成系统初始化、存储器操作、端口操作、键盘显示等程序的编制及调试(汇编语言、C语言均可);4. 通过单片机系统的组装,调试以及程序编制、调试及运行,与理论及实验的有机结合和指导教师的补充介绍,使学生掌握控制系统的工作原理、开发方法和操作方法。

5. 培养学生解决实际问题的能力,提高对理论知识的感性认识。

二实习意义通过本实习不但可以掌握单片机软、硬件的综合调试方法,而且可以熟练掌握电路原理图,激发对单片机智能性的探索精神,提高学生的综合素质,培养学生应用单片机实现对工业控制系统的设计、开发与调试的能力。

在制作学习过程中,不但可以掌握软、硬件的综合调试方法,而且可以使学生对单片机智能性产生强烈的欲望。

达到最大限度地掌握微机应用技术,软件及接口设计和数据采集与处理的技能,培养电综合实践素质的目的。

三系统基本组成及工作原理1 系统基本组成系统以单片机STC89C52作为控制核心,各部分基本组成框图如图1所示。

流水灯部分由单片机、键盘模块等组成;四位数码显示,编程实现30秒倒计时部分由单片机、键盘模块、液晶显示模块等组成;按键功能部分通过按键控制流水灯部分、四位数码显示部分;电子钟部分由单片机、键盘模块、液晶显示模块等组成;使用功能键实现相应的功能组合部分通过流水灯部分、30秒倒计时部分实现;模数转换部分由单片机、ADC0809转换模块、键盘模块、液晶显示模块等组成。

精品课件-单片机原理及应用系统设计-第4章

精品课件-单片机原理及应用系统设计-第4章

;
PUSH
DPL
;
保护现场, 将主程序中
; DPTR的低八位放入堆
MOV
DPTR, #TABLE
; 在子程
第四章 单片机程序设计语言
恢复现场,
MOVC A, @A+DPTR
POP
DPL
将主程序中DPTR
; ;
;的低八位从堆栈中弹出
POP 场, 将主程序中DPTR
DPH
; 恢复现
;的高八位从堆栈中弹出
图 4-8 循环程序的典型形式
第四章 单片机程序设计语言
【例 4-4】 冒泡程序。假设有N个数, 它们依次存放 于LIST地址开始的存储区域中, 将N个数比较大小后, 使它 们按照由小到大的顺序排列,
编写该程序的方法: 依次将相邻两个单元的内容作比较, 即第一个数和第二个数比较,第二个数和第三个数比 较, ……, 如果符合从小到大的顺序则不改变它们在内存 中的位置,否则交换它们之间的位置。如此反复比较, 直到 数列排序完成为止。
LJMP MAIN
;
MAIN: MOV A, X
XRL A, Y
; (X)与(Y)进行异或操作
JB ACC.7, NEXT1
; 累加器A的第7位
为1, 两个数
;符号不同, 转移到
第四章 单片机程序设计语言
MOV
CJNE
转移到NEQUAL
CLR
P1.0置0
S
MOV DXCE1COUNTER, #00H
; 将DXCE1COUNTER赋值为0
而如下的注释则给出了额外有用的信息:
JNZ PC Comm_Err
;
第四章 单片机程序设计语言
(2) 注释应与其描述的代码相近, 对单条语句的注释应 放在其上方或右方相邻位置, 不可放在下面, 如放于上方

51单片机实验-实验一 二进制到BCD转换

51单片机实验-实验一 二进制到BCD转换

实验一二进制到BCD转换一、实验内容将存放在R2中的一个单字节二进制数,转换成非压缩的二—十进制(BCD)码,并存放到R3R4R5中。

二、实验仪器和设备PC机、星研Star16L仿真器系统+仿真头PODPH51(DIP)、EL-Ⅱ型通用接口板实验电路。

三、实验过程及结果①使用星研仿真软件建立新工程文件1)进入星研仿真软件2)系统基本参数设置\辅助\仿真器\选择Star16L,且取消模拟调试器\辅助\通信\USB2)建立项目文件\项目\新建项目文件\输入项目文件名后,进入项目文件设置选项其中:仿真头选择:PODPH51(DIP);CPU选择:8051类;其它选项一般选择默认值。

(也可以在建立项目文件后,在\项目\设置项目文件\选项下修改仿真头和CPU的设置)3)新建源文件\文件\新建\新建文件\选择项目文件,然后设置文件后缀为.ASM(汇编语言)②基本程序ORG 0000H ;设置起始地址BCD1:MOV R2,# 00100000B ;给R2赋初值,二进制数0010 0000BMOV A,R2 ;将R2单元里的数值,也就是00100000B送入累加器A中MOV B,#100 ;100作为除数送入BDIV AB ;A单元中的数除以B单元中的数MOV R3,A ;百位数送R3,余数在B中MOV A,#10 ;分离十位和个位数XCH A,B ;余数送A,除数10留在B中DIV AB ;分离出十位在A, 个位在B中MOV R4,A ;十位送R4MOV A,BMOV R5,A ;个位送R5NOPSJMP $END运算结果:二进制数00100000B换算成非压缩BCD码应该为32,则R3单元里的数值应该为0,R4单元里的数值应该为3,R5单元里的数值应该为2。

运行结果:R3为0,R4中为3,R5中为2,与运算结果相同,实验程序正确。

③将基本程序进行修改,添加子程序后验证ORG 0000H ;设置初始地址START:MOV R2,#00100000B ;给R2赋初值00100000BLCALL BCD ;调用子程序BCDSJMP $BCD: ;子程序BCDMOV A,R2 ;将R2单元里的数值,也就是00100000B送入累加器A中MOV B,#100 ;100作为除数送入BDIV AB ;A单元中的数除以B单元中的数MOV R3,A ;百位数送R3,余数在B中MOV A,#10 ;分离十位和个位数XCH A,B ;余数送A,除数10留在B中DIV AB ;分离出十位在A, 个位在B中MOV R4,A ;十位送R4MOV A,BMOV R5,A ;个位送R5RET ;返回主程序END运行结果:R3为0,R4中为3,R5中为2,与上面基本程序的运行结果相同,所以改编后的实验程序是正确的。

《单片机原理及应用》试卷一

《单片机原理及应用》试卷一

《单片机原理及应用》试卷一一、填空题(16分,每题2分)1、单片机与普通计算机的不同之处在于其将()、()、I/O口(串口、并口等) 、ROM(程序存储器)集成于一块芯片上。

2、单片机工作方式除了正常的操作方式外,还具有掉电运行方式和()运行方式,其掉电运行方式唤醒方法为()。

3、当单片机复位时PSW=()H,SP=()。

4、串行口方式3发送的第9位数据要事先写入( )寄存器的()位。

5、MCS-51的并行I/O口信息有()和()二种读取方法,读-改-写操作是针对并行I/O口内的锁存器进行的。

6、(A)= 85H,(R0)=20H,(20H)=AFH,执行指令:ADD A,@R0 结果为: Cy=1,Ac=(),OV=1,P=()。

7、若(IP)=00010100B,则优先级最高者为(),最低者为()。

(IP:——— PS PT1 PX1 PT0 PX0)8、总线驱动器74LS244和74LS245经常用作三态数据缓冲器,()为单向三态数据缓冲器,而()为双向三态数据缓冲器。

二、判断对错,如对则在()中写“√”,如错则在()中写“×”。

(8分每题1分)1、MCS-51单片机可执行指令:MOV R2,@R1。

(错)2、MCS-51单片机可执行指令:MOVC A,@DPTR。

(对)3、多字节的指令不一定执行的指令周期长。

()4、当向堆栈压入一个字节的数据后,SP中的内容减1。

(错)5、特殊功能寄存器可以用间接寻址方式寻址。

()6、当P0口作为输出口使用时,必须外接上拉电阻才能有高电平输出。

()7、同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。

()8、区分外部程序存储器和数据存储器的最可靠的方法是看其是被WR还是被PSEN信号连接。

(对)1、 8051与8052的区别是:( D )(A)有无内部程序存储器(B)内部数据存储器的类型不同(C)内部程序存储器的类型不同(D)内部数据存储单元数目的不同2、在CPU内部,反映程序运行状态或反映运算结果的特征寄存器是(A )。

《单片机技术与应用》课程标准

《单片机技术与应用》课程标准

《单片机技术与应用》课程标准一、课程性质与任务本课程是中等职业教育电子技术应用专业必修的一门专业基础平台课程,是在《电子技术基础与技能》课程基础上开设的一门实践性较强的核心课程,其任务是培养学生具备单片机系统安装、调试、开发与应用能力,使学生能够掌握以MCS-51系列为主的单片机的基本结构、指令系统、存储系统及输入输出接口电路、中断系统、系统扩展等方面知识;了解单片机组成和工作原理,具备一定的汇编语言程序设计能力。

以及观察和分析问题、团队协助、沟通表达等能力和综合素质。

本课程的也是全面贯彻党的教育方针,落实立德树人根本任务,体现思政功能的“思政”课程;通过本课程学习,培养学生适应社会主义现代化建设德、智、体、美、劳全面发展的知识能力需要,了解单片机技术的特点、现状和未来发展趋势;理解单片机的工作原理;熟悉MCS-51单片机芯片的基本功能和典型应用实例,知道常用指令、寻址方式、接口的特点及用途,具有安全生产、节能环保和产品质量等职业意识和良好的工作方法、工作作风和职业道德的高素质劳动者。

二、本课程与其他课程的关系1.与前导课程的联系:学生在学习本课程前,具备基本电工基础、模拟电路、数字电路的分析基础,对计算机应用系统应具有一定的了解,通过本课程的学习,要求熟练掌握典型单片机系统的设计方法,能利用MCS-51单片机组成实际系统,具备一定的硬件编译能力。

2.与后续课程的联系:使学生通过本课程的学习,使学生掌握51系列单片机设计小型产品的设计能力,为后续《传感器技术》《Proteus仿真》等课程打下良好基础。

三、课程目标(一)思政目标1.坚定社会主义信念,坚持党的领导,自觉践行社会主义核心价值观;2.具有勤俭节约,科学用电,求实创新,合理消费的观念和意识;3.具有严谨求实,实事求是的科学精神,相信科学、热爱科学;4.具有良好安全意识,质量意识,树立安全第一、质量第一的职业意识;5.具有积极的学习和生活态度,自信、乐观,并积极进取,敢于面对挫折;6.建立为人民服务、为社会发展服务、为实现中华民族伟大复兴的努力奋斗的理想和信念。

bcd译码的多位数码管扫描显示实验总结

bcd译码的多位数码管扫描显示实验总结

bcd译码的多位数码管扫描显示实验总结
BCD译码的多位数码管扫描显示实验主要是通过将BCD码转换为数码管可以显示的数字,在多个数码管之间进行循环扫描,从而实现多位数码管的显示。

该实验涉及到数字电路、单片机编程和硬件电路设计等方面。

在该实验中,我们首先需要了解BCD码的概念以及其转换为数码管显示的方法。

BCD码是一种二进制编码方式,每个十进制数用4个二进制位表示,即0000~1001。

将BCD码转换为数码管显示的方法是通过BCD译码器将输入的BCD码转换为对应的七段数码管的控制信号,从而实现数码管的显示。

接下来,我们需要设计硬件电路,包括数码管的接口电路和BCD译码器的连接电路。

数码管的接口电路需要采用与门或非门的组合电路,将单片机的输出信号转换为七段数码管的控制信号。

BCD 译码器的连接电路需要根据具体的型号和引脚定义进行连接。

最后,我们需要编写单片机程序,实现BCD码的输入和输出,以及数码管的扫描显示。

程序需要完成以下功能:读取BCD码输入,将BCD码转换为对应的七段数码管的控制信号,控制多个数码管之间进行循环扫描,并在数码管上显示相应的数字。

总体来说,BCD译码的多位数码管扫描显示实验需要涉及到数字电路、单片机编程和硬件电路设计等多个方面。

通过该实验,可以深入理解数字电路和单片机原理,并掌握实际应用技能。

单片机实验4 子程序设计-- BCD码转换为二进制

单片机实验4 子程序设计-- BCD码转换为二进制

实验4. 子程序设计----BCD 码转换为二进制单字节可存放两位压缩BCD 码(0—99)为0—9)单字节BCD 码转换为二进制子程序入口:(R0)= 压缩BCD 码的地址出口:(A)= 转换结果DSFR::MOV A,@R0ANL A,#0F0H ;取十位数SWAP A ;变为标准BCD 码MOV B,#10MUL AB ;(A)=D1×10MOV R7,A ;D1×10暂存R7MOV A,@R0ANL A,#0FH ;取个位ADD A,R7 ;A=D1×10+D0RET1、实验内容:子程序设计要点:1) 子程序一般为多次返复使用的程序段,一般应说明入口条件,DSFR 子程序的入口条件是:被转换为二进制的单字节BCD 码为间接寻址,间接寻址寄存器为R0。

要调用DFSR 子程序必需先将压缩BCD 码的存放地址赋与R0。

而出口条件是指最后结果在哪儿存放。

本子程序转换结果在ACC 内。

2) 主程序调用子程序,在调试时一般要先调试子程序、再调试主程序。

2、实验步骤1)打开PV32编程序。

汇编正确进入调试界面。

否则修改程序重新汇编直到通过。

2)打开DATD窗口给20H、21H、R6、R7赋值3)单步调试DSFR子程序观察并记禄寄存器、内存的变化。

判断程序是否正确。

若发现问题重返编辑界面,修改、存盘、汇编。

返回调试界面调试通过。

4) 设断点调试主程序观察并记禄寄存器、内存的变化。

判断程序是否正确。

若发现问题重返编辑界面,修改、存盘、汇编。

返回调试界面调试通过。

3.实验报告1.写出主程序流程图、子程序流程图、程序清单2.根据记渌数据给程序加注解3.调试心得。

单片机双字节BCD码乘法知识讲解

单片机双字节BCD码乘法知识讲解

单片机双字节B C D码乘法集美大学计算机工程学院实验报告课程名称单片机应用技术实验名称双字节BCD码乘法以及数据排序实验实验类型设计型姓名学号日期地点成绩教师1. 实验目的与要求1.进一步熟悉51汇编指令,掌握汇编语言的设计和调试方法。

2.设计十进制乘法程序,了解如何调用系统提供的内置数码显示,键盘输入子程序。

3.熟悉如何高效方法对数据排序2. 实验设备STAR系列实验仪、PC机、星研集成软件环境3. 实验内容1.从键盘上输入4位被乘数,乘数,实现4位十进制数的乘法,结果显示在数码管上。

2.调试状态下借助星研集成软件直接修改RAM30H-3FH的单元,数值任意,然后对其排序,检查排序结果。

4. 实验硬件电路及接线E5区:A0——A3区:A0E5区:A、B、C、D——G5区:A、B、C、D5,程序流程图6,程序源代码EXTRN CODE(DISPLAY8,GETBCDKEY)BUFFER1 DATA 30H ;键盘输入缓冲区BUFFER2 DATA 40H ;8字节显示缓冲区BUFFER3 DATA 50H ;结果地址BUFFER4 DATA 60H ;栈缓冲区ORG 0000HLJMP MAINORG 0100HMAIN:CLR PSW.1MOV R0,#BUFFER1MOV A,#04HLCALL GetBCDKeyMOV R0,#BUFFER4+3MOV A,BUFFER1LCALL DECOMPDEC R0MOV A,BUFFER1+1LCALL DECOMPMOV R0,#BUFFER4+3LCALL BCD2BMOV R6,BUFFER3 ;BUFFER3为低4位MOV R7,BUFFER3+1 ;BUFFER3+1为高4位CLR PSW.1MOV R0,#BUFFER1MOV A,#04HLCALL GetBCDKeyMOV R0,#BUFFER4+3MOV A,BUFFER1LCALL DECOMPDEC R0MOV A,BUFFER1+1LCALL DECOMPMOV R0,#BUFFER4+3LCALL BCD2BMOV R5,BUFFER3+1MOV R4,BUFFER3MOV R0,#BUFFER3LCALL MLTYMOV R3,BUFFER3MOV R2,BUFFER3+1MOV R1,BUFFER3+2MOV R0,BUFFER3+3LCALL B2BCDMOV R0,#BUFFER2+7MOV A,R4LCALL DECOMPDEC R0MOV A,R5LCALL DECOMPDEC R0MOV A,R6LCALL DECOMPDEC R0MOV A,R7LCALL DECOMPMOV R0,#BUFFER2+7CLR CMOV A,@R0SUBB A,#00JNZ SHOWMOV BUFFER2+7,#10HSHOW: MOV R0,#BUFFER2LCALL DISPLAY8SJMP $DECOMP: ;A中压缩BCD码转化成非压缩BCD码,结果存放在R0结束的两个字节,高位放H位BCD低位放L位BCDPUSH ACCSWAP AANL A,#0FHMOV @R0,APOP ACCANL A,#0FHDEC R0MOV @R0,ARETBCD2B: ;R0结束的4位BCD码转化成二进制存在BUFFER3开始的两个字节MOV BUFFER3,#00HMOV BUFFER3+1,#00HMOV R3,#4 ;四个字节LOOP: CLR CMOV A,BUFFER3RLC AMOV BUFFER3,AMOV BUFFER3+2,AMOV A,BUFFER3+1RLC AMOV BUFFER3+1,A ;结果左移一位MOV BUFFER3+3,AMOV R2,#2LOOP1: CLR CMOV A,BUFFER3RLC AMOV BUFFER3,AMOV A,BUFFER3+1RLC AMOV BUFFER3+1,A ;结果左移一位DJNZ R2,LOOP1 ;整体左移2位CLR CMOV A,BUFFER3+2 ;取移一位的值 ADD A,BUFFER3MOV BUFFER3,AMOV A,BUFFER3+3ADDC A,BUFFER3+1MOV BUFFER3+1,A ;结果*10MOV A,@R0 ;先取12的1后取2 DEC R0CLR CADD A,BUFFER3MOV BUFFER3,AMOV A,#00HADDC A,BUFFER3+1MOV BUFFER3+1,A ;结果*10+1 DJNZ R3,LOOPRETMLTY:MOV A,R6MOV B,R4MUL ABMOV @R0,AMOV R3,BMOV A,R7MOV B,R4MUL ABADD A,R3MOV R3,AMOV A,BADDC A,#00HMOV R2,AMOV A,R6MOV B,R5MUL ABADD A,R3INC R0MOV @R0,AMOV A,R2ADDC A,BMOV R2,AMOV R1,#00HJNC NEXTINC R1NEXT:MOV A,R7MOV B,R5MUL ABADD A,R2INC R0MOV @R0,AMOV A,BADDC A,R1INC R0MOV @R0,ARET;字节二进制数转十进制数;R0R1R2R3为二进制数,R4R5R6R7为压缩BCD码B2BCD: CLR AMOV R4,AMOV R5,AMOV R6,AMOV R7,AMOV B,#32LOOPB2: CLR CMOV A,R3RLC AMOV R3,AMOV A,R2RLC AMOV R2,AMOV A,R1RLC AMOV R1,AMOV A,R0RLC AMOV R0,AMOV A,R7ADDC A,R7DA AMOV R7,AMOV A,R6ADDC A,R6DA AMOV R6,AMOV A,R5ADDC A,R5DA AMOV R5,AMOV A,R4ADDC A,R4DA AMOV R4,ADJNZ B,LOOPB2RETEND2.冒泡排序ORG 1000HBUBBLE: MOV R0,#30HMOV R2,#64CLR 7FHDEC R2BULOOP: MOV 20H,@R0MOV A,@R0INC R0MOV 21H,@R0CJNE A,21H,LOOPLOOP: JC BUNEXTMOV @R0,20HDEC R0MOV @R0,21HINC R0SETB 7FHBUNEXT: DJNZ R2, BULOOP JB 7FH,BUBBLESJMP $END。

单片机(C51)实验报告

单片机(C51)实验报告

实验一熟悉ADEK单片机教学实验系统一、实验目的1.熟悉 ADEK 单片机教学实验系统和仿真器的结构和功能。

2.了解如何安装 51MINI 仿真器驱动程序。

二、ADEK 单片机教学实验系统组成图 1-1 AEDK 单片机教学实验系统外观图如图 1-1 所示, ADEK-EAT598 单片机教学实验系统遵循了模块化的设计思路,有丰硕的接口,而且具有良好的扩展性,以下为组成模块和利用的要紧芯片。

1.步进电机2.直流电机3.温度操纵( DS18B20、热敏电阻 B3470)4.模数转换( ADC0809)5.串行实验区( EEPROM X25045、 AT24C08、时钟芯片 HT1380、数模转换 TLC5615、模数转换 TLC1543)6. RAM( HM62256)7. ROM( M27C512)8.地址译码( 74LS138)9.数模转换( DAC0832)10.仿真机通信口:原厂仿真器的串口通信口,这部份功能已不用。

11.串并转换( 74LS164)12.频率源( CD4020)213.扩展输出( 74LS273)14.扩展输入(74LS244)15.电源开关16.液晶显示(MSC-G12232DYEW-7N)17.语音录放(ISD1730)18.扩展通信口(D8251、HIN232)19.八位开关20.交通灯21.单脉冲(HD74LS240)22.继电器(946H-1C-5D)23.电辅音调(9012)24.蜂鸣器25.光耦(TLC521)26.电位器27.点阵显示28.PS2 接口29.并行接口(8255)30.键盘显示(8279)31.扩展实验区32.打印机接口33.单片机核心板(EAT598_31)34.带USB 接口的51MINI 仿真器三、实验内容1.熟悉整个实验箱的硬件资源。

2.利用51MINI仿真器连接电脑,在电脑的设备治理器中可找到以下图所示的COM口。

实验二Keil集成开发环境练习一、实验目的1.把握开发环境Keil的安装方式。

单片机实用子程序库大全

单片机实用子程序库大全

内容目前已有若干版本的子程序库公开发表,它们各有特色。

本程序库中的开平方算法为快速逼近算法,它能达到牛顿迭代法同样的精度,而速度加快二十倍左右,超过双字节定点除法的速度。

本子程序库对《单片机应用程序设计技术》一书附录中的子程序库作了重大修订:(1)按当前流行的以 IBM PC 为主机的开发系统对汇编语言的规定,读者不必再进行修改,便可直接使用。

(2)对浮点运算子程序库进行了进一步的测试和优化,对十进制浮点数和二进制浮点数的相互转换子程序进行了彻底改写,提高了运算精度和可靠性。

(3)新增添了若干个浮点子程序(传送、比较、清零、判零等),使编写数据处理程序的工作变得更简单直观。

在使用说明中开列了最主要的几项:标号、入口条件、出口信息、影响资源、堆栈需求,各项目的意义请参阅《单片机应用程序设计技术》第六章 6.3.7 节的内容。

程序清单中开列了四个栏目:标号、指令、操作数、注释。

为方便读者理解,注释尽力详细。

子程序库的使用方法如下:1.将子程序库全部内容链接在应用程序之后,统一编译即可。

优点是简单方便,缺点是程序太长,大量无关子程序也包含在其中。

2.仅将子程序库中的有关部分内容链接在应用程序之后,统一编译即可。

有些子程序需要调用一些低级子程序,这些低级子程序也应该包含在内。

优点是程序紧凑,缺点是需要对子程序库进行仔细删节。

(一)MCS-51定点运算子程序库及其使用说明定点运算子程序库文件名为DQ51.ASM,为便于使用,先将有关约定说明如下:1.多字节定点操作数:用[R0]或[R1]来表示存放在由R0或R1指示的连续单元中的数据。

地址小的单元存放数据的高字节。

例如:[R0]=123456H,若(R0)=30H,则(30H)=12H,(31H)=34H,(32H)=56H。

2.运算精度:单次定点运算精度为结果最低位的当量值。

3.工作区:数据工作区固定在PSW、A、B、R2~R7,用户只要不在工作区中存放无关的或非消耗性的信息,程序就具有较好的透明性。

两字节压缩BCD码转换为二进制数

两字节压缩BCD码转换为二进制数

两字节压缩BCD码转换为二进制数两字节压缩BCD码转换为二进制数设高8位(千位和百位即a3a2)放在R5中,低8位(十位和个位即a1a0)放在R4中A= a3×1000+a2×100+a1×10+a0 =(a3×10+a2)×100 +(a1×10+a0)公共项可用子程序实现方法一:ORG 0000HLJMP 0100HORG 0100HZHU: MOV A , R5ANL A , #0F0HSWAP AMOV R6 , A --把千位数放到R6的低四位MOV A , R5ANL A , #0FHXCH A , R5 --把百位数放到R5的低四位MOV A , R4ANL A , #0F0HSWAP AMOV R4 , A --把十位数放到R4的低四位MOV A , R4ANL A , #0FHXCH A , R3 --把个位数放到R3的低四位MOV A , R6MOV B , #10MUL ABADD A , R5MOV B , #100MUL AB --(千位数×10+百位数)×100MOV R5 , AMOV R6 , B --把(千位数×10+百位数)×100的高8位放到R6,低8位放到R5MOV A , R4MOV B , #10MUL ABADD A , R3 --(十位数×10+个位数),结果肯定小于255MOV R4, A --把(十位数×10+个位数)的结果放到R4MOV A , R5ADD A , R4MOV R4 , AMOV A, R6ADDC A , #00HMOV R6 , A --转换后的二进制数由高到低依次存放到R6、R5、R4 JIESHU: END方法二:求(ai×10+aj)子程序ZICHENG: MOV R2 , A -- 将待运算转换的数备份到R2ANL A , #0F0H -- 将低四位屏蔽掉SWAP AMOV B , #10MUL ABMOV R3 , AMOV A , R2ANL A , #0FHADD A , R3 --(ai×10+aj)的运算结果保存在A中RETORG 0000HLJMP 0100HORG 0100HZHU: MOV A , R5LCALL ZICHENGMOV B , #100MUL AB --(千位数×10+百位数)×100MOV R6 , B -- (千位数×10+百位数)×100高8位MOV R5 , A --(千位数×10+百位数)×100低8位MOV A , R4LCALL ZICHENG --(十位数×10+个位数)ADD A , R5MOV R5 , ACLR AADDC A , R6LJMP JIESHUORG 0200HZICHENG: MOV R2 , A -- 将待运算转换的数备份到R2 ANL A , #0F0H -- 将低四位屏蔽掉SWAP AMOV B , #10MUL ABMOV R3 , AMOV A , R2ANL A , #0FHADD A , R3 --(ai×10+aj)的运算结果保存在A中RETJIESHU:END。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验4. 子程序设计----BCD 码转换为二进制
单字节可存放两位压缩BCD 码(0—99)
为0
—9)
单字节BCD 码转换为二进制子程序
入口:(R0)= 压缩BCD 码的地址
出口:(A)= 转换结果
DSFR::MOV A,@R0
ANL A,#0F0H ;取十位数
SWAP A ;变为标准BCD 码
MOV B,#10
MUL AB ;(A)=D1×10
MOV R7,A ;D1×
10暂存
R7
MOV A,@R0
ANL A,#0FH ;取个位
ADD A,R7 ;A=D1×10+D0
RET
1、实验内容:
子程序设计要点:
1) 子程序一般为多次返复使用的程序段,一般应说明入口条件,DSFR 子程序的
入口条件是:被转换为二进制的单字节BCD 码为间接寻址,间接寻址寄存器为R0。

要调用DFSR 子程序必需先将压缩BCD 码的存放地址赋与R0。

而出口条件是指最后结果在哪儿存放。

本子程序转换结果在ACC 内。

2) 主程序调用子程序,在调试时一般要先调试子程序、再调试主程序。

2、实验步骤
1)打开PV32编程序。

汇编正确进入调试界面。

否则修改程序重新汇编直到通过。

2)打开DATD窗口给20H、21H、R6、R7赋值
3)单步调试DSFR子程序观察并记禄寄存器、内存的变化。

判断程序是否正确。

若发现
问题重返编辑界面,修改、存盘、汇编。

返回调试界面调试通过。

4) 设断点调试主程序观察并记禄寄存器、内存的变化。

判断程序是否正确。

若发现问
题重返编辑界面,修改、存盘、汇编。

返回调试界面调试通过。

3.实验报告
1.写出主程序流程图、子程序流程图、程序清单
2.根据记渌数据给程序加注解
3.调试心得。

相关文档
最新文档