单片机实验4 子程序设计-- BCD码转换为二进制
- 格式:doc
- 大小:30.00 KB
- 文档页数:2
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的堆栈区一般开辟在_______。
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 数字温度计简介随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。
单片机原理及应用试题一一、填空题(每空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单片机的时钟周期与振荡周期之间有什么关系?一个机器周期的时序如何划分?答:时钟周期是单片机最基本的时间单位。
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码转二进制:所谓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篇,希望对大家有所帮助。
单片机实习报告篇1一实习目的1. 通过对单片机小系统的设计、焊接、装配,掌握电路原理图及电子线路的基本焊接装配工艺、规范及注意事项;2. 通过对系统板的测试,了解系统板的工作原理及性能,掌握元器件及系统故障的排除方法;3. 掌握程序编制及调试方法,完成系统初始化、存储器操作、端口操作、键盘显示等程序的编制及调试(汇编语言、C语言均可);4. 通过单片机系统的组装,调试以及程序编制、调试及运行,与理论及实验的有机结合和指导教师的补充介绍,使学生掌握控制系统的工作原理、开发方法和操作方法。
5. 培养学生解决实际问题的能力,提高对理论知识的感性认识。
二实习意义通过本实习不但可以掌握单片机软、硬件的综合调试方法,而且可以熟练掌握电路原理图,激发对单片机智能性的探索精神,提高学生的综合素质,培养学生应用单片机实现对工业控制系统的设计、开发与调试的能力。
在制作学习过程中,不但可以掌握软、硬件的综合调试方法,而且可以使学生对单片机智能性产生强烈的欲望。
达到最大限度地掌握微机应用技术,软件及接口设计和数据采集与处理的技能,培养电综合实践素质的目的。
三系统基本组成及工作原理1 系统基本组成系统以单片机STC89C52作为控制核心,各部分基本组成框图如图1所示。
流水灯部分由单片机、键盘模块等组成;四位数码显示,编程实现30秒倒计时部分由单片机、键盘模块、液晶显示模块等组成;按键功能部分通过按键控制流水灯部分、四位数码显示部分;电子钟部分由单片机、键盘模块、液晶显示模块等组成;使用功能键实现相应的功能组合部分通过流水灯部分、30秒倒计时部分实现;模数转换部分由单片机、ADC0809转换模块、键盘模块、液晶显示模块等组成。
实验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.调试心得。