单片机实验二、三 拆字程序、拼字程序 实验报告

合集下载

单片机实验3 拆字、拼字子程序设计

单片机实验3  拆字、拼字子程序设计

实验3 拆字、拼字子程序设计
1、实验内容
1)内部RAM 20H单元存放二位压缩的BCD码,
试将BCD码变成相应的ASCII码存放到以
40H单元为首地址的内部RAM单元
2)内部RAM 79H,7AH内存放着个位和十位两位
BCD码, 将它们变成压缩的BCD码存到R2内。

(以上程序要求取数、送数均用间接寻址)
3) 内部RAM 7AH,79H内存放两位BCD码高位在前,将它们拼成一个字节加1并进
行十进制凋整,然后再将个位送79H拾位送7AH。

要求伎用拼字、拆字子程完成。

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

汇编正确进入调试界面。

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

2)打开DATD窗口给加数、被加数赋值
3)单步调试观察并记禄寄存器、内存的变化。

判断程序是否正确。

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

返回调试界面调试通过。

4)设断点调试、记禄结果。

3、实验报告
1)折字子程序流程图及程序清单
2)拼字子程序流程图及程序清单
3)标准BCD码与压缩BCD码的相同点与不同点是什么?
4)*第3问的流程图及程序清单(选做)。

单片机实验二 拆字程序 实验报告

单片机实验二  拆字程序  实验报告
00H
ORG 30H
00H
00H
30H
MOV A,30H
00H
30H里的数
30H里的数
ANL A,#0FH
30H里的数
高四位清零,低四位不变
高四位清零,低四位不变
MOV 22H,A
22H里的数
A高四位清零,低四位不变
A高四位清零,低四位不变
MOV A,30H
A高四位清零,低四位不变
30H里的数
30H里的数
将累加器A内容送片内RAM的20H单元
赋值:A=30H
将累加器A的高低位互换
将互换高低位后的累加器A高四位清零,低四位不变
将累加器A内容送片内RAM的21H单元
结束
单步运行程序,填写下论分析值
实际运行结果值
ORG 00H
00H
00H
00H
LJMP STAR
00H
00H
SWAP A
30H里的数
30H里的数高低位数转换
30H里的数高低位数转换
ANL A,#0FH
30H里的数高低位数转换
高四位清零,低四位不变
高四位清零,低四位不变
MOV 21H,A
21H里的数
A里面的数
A里面的数
SJMP $
00H
00H
00H
END
00H
00H
00H
思考
如何用断点方式调试本程序。
把光标指向语句左边,然后单击,会出现一个符号。同样的方法对需要在结束语句左边做同样的事情,然后全速运行,按下停止按钮,程序就会在相应的位置停止。
佛山科学技术学院
实验报告
课程名称实验项目拆字程序
专业班级姓名学号

单片机拆字程序实验

单片机拆字程序实验

单片机拆字程序实验单片机拆字程序实验是一种通过单片机控制LED灯来实现拆字效果的实验。

通过该实验,可以学习单片机编程和数字电子技术知识,既能提高对硬件的理解,又能锻炼编程能力。

一、实验器材1. 单片机开发板2. 16x8 点阵 LED 模块3. 20P 配对排母头4. DC5V 2A 电源适配器5. 杜邦线、电阻等。

二、实验原理本实验通过单片机控制16x8点阵LED模块实现拆字效果,具体原理如下:1. 系统时钟为12M,通过定时器中断驱动点阵扫描显示,显示速度为50ms/帧。

2. 使用一个数组存储汉字的字模数据,每个汉字占据16字节,字节以二进制形式存储,通过给定的字模数据生成汉字的字形。

3. 利用按键调用拆字函数实现对汉字的拆分,如将“福”字拆分为“示”、“口”、“田”。

4. 利用移位运算实现汉字显示的左右滚动,通过控制移位幅度来实现滚动速度。

三、实验步骤1. 连接电路:将16x8点阵LED模块与单片机开发板相连,DC24V接DCIN,GND接GND, DIN接P2.0, CLK接P2.1, CS接P2.2。

2. 编写程序:在Keil C51编译器中编写程序,包括定义汉字数组、各个函数和中断程序等。

3. 烧录程序:将编写好的程序烧录到单片机开发板中。

4. 调试程序:按键触发拆字函数,观察汉字的拆分和滚动效果是否正确。

五、实验注意事项1. 拆字函数必须考虑多种情况,比如汉字的结构、不同拆分方式的可行性等,以保证拆分的正确性。

2. 调试时需要注意数组赋值的顺序,尤其是大端小端问题,否则可能会导致汉字显示出错。

3. 单片机开发板的电源必须与点阵LED模块的电源匹配,以确保正常工作。

六、实验拓展1. 实现更多的汉字拆分和显示样式,比如上下滚动、闪烁等。

2. 利用串口通信实现汉字输入和显示。

3. 尝试利用其他芯片和硬件实现类似的效果。

拆字拼字

拆字拼字

拆字拼字单片机原理及应用实验报告姓名:学号班级:指导教师:单片机原理及应用实验报告实验项目名称:拆字、拼字实验实验日期:2014年12月7日实验成绩:实验评定标准:一、实验目的掌握汇编语言设计和调试方法,掌握拆字和拼字的程序编写方法。

二、实验器材Keil-uVision4软件三、实验内容把7000H的内容拆开,高位送7000H低位,低位送7002H低位,7001H、7002H 高位清零,把7000H、7001H的低位相拼后,送入7002H中。

单步运行到BP1,观察7000H 和A 单元中内容是否为68,单步运行到BP2,观察7001H 单元中内容是否为6,单步运行到BP3,观察7002H 单元中内容是否为8,若是,程序对,若不是,反复修改程序直到正确为止。

同样可调试拼字程序。

五、实验结果及分析(附上编写的程序、执行的截屏及分析)实验参考程序:拆字程序:ORG 30H ;程序入口地址OV DPTR,#7000HMOV A,#68HMOVX @DPTR, A ;给7000H赋初值MOVX A, @DPTR ;(7000H)送AANL A, #0F0H ;取(7000H)的高位送7001HSWAP AINC DPTRMOVX @DPTR, AMOV DPTR,#7000HMOVX A, @DPTR ;(7000H)送A ANL A, #0FH ;取(7000H)的高位送7001HMOV DPTR, #7002HMOVX @DPTR, A拼字实验:ORG 0000HLJMP MAINORG 0680HMAIN: MOV DPTR,#7000H;(7000H)送A,屏蔽高位MOV A,#06HMOVX @DPTR,AMOV DPTR,#7001HMOV A,#08HMOVX @DPTR,AMOV DPTR,#7000HMOVXA,@DPTR;交换高位,送A ANL A,#0FHSWAP AMOV R0,AINC DPTRMOVX A,@DPTRANL A,#0FHORL A,R0INC DPTRMOVX @DPTR,ASJMP $END实验图片:图1图2图3图4图5图6图7图8图9图10实验中主要的程序代码如上所示,该程序展示的是拆字的过程,在右下角的区域可以观察到先显示的是68,之后显示68 06,最后显示68 06 08,是首先将68送到7000H,再将7000H送到A中,接下来便要进行高低位的交换并屏蔽掉高位后送到7001H,最后屏蔽高位后送到7002H即完成了此次任务。

微机原理与接口技术-拆字程序

微机原理与接口技术-拆字程序

《微机原理与接口技术》课程实验报告
一、实验目的和要求
实验目的:掌握汇编语言设计和调试方式。

实验要求:通过本实验,掌握8051汇编程序设计以及仿真实验的流程及方法。

二、实验环境
DVCC单片机仿真实验系统独立工作以及连PC机。

三、实验内容及实施
【实验内容】把7000H的内容拆开,高位送7001H低位,低位送7002H低位。

7001H、7002H高位清零,一般本程序用于把数据送显示缓冲区使用。

【源程序】
【实验步骤】
(1)先用存储器读写方法将7000H单元置成34H。

(2)用单步、断点或连续执行程序的方法从起始地址0050H开始运行程序(输人0050H后按STEP为单步,按EXEC为连续)。

(3)按MON键或RESET键退出。

(4)检查7001H和7002H单元中的内容应为03H和04H
四、实验结果
五、实验讨论
用断点方式调试本程序的方法:把光标指向语句左边,然后单击,会出现一个符号。

同样的方法对需要在结束语句左边做同样的事情,然后全速运行,按下停止按钮,程序就会在相应的位置停止。

通过本次实验,对单片机的RAM和ROM的使用有了更加透彻的理解,熟悉了仿真实验系统的键盘操作以及基本仿真软件的使用,并且逐步掌握汇编语言设计和调试方式。

单片机实验3 拆字、拼字子程序设计

单片机实验3 拆字、拼字子程序设计

单片机实验3 拆字、拼字子程序设计拆字和拼字是人类阅读、语言学习和表达中的基本技能。

在这个实验中,我们将设计一个单片机程序,通过拆字和拼字的子程序来练习和提高汉字的识别和组词能力。

一、实验目的1. 加深对单片机中汇编语言的理解和掌握。

2. 熟悉单片机的输入、输出、延时等基本指令。

3. 实现汉字的拆字和拼字的子程序,提高汉字识别和组词能力。

二、实验器材1. 单片机开发板(AT89C52)2. 八位数码管3. 九键键盘4. 连接线5. 电脑、Keil C51集成开发环境三、实验内容A.数码管显示编写一个数码管驱动程序,通过按键输入一个数字,将其显示在数码管上。

数码管由8个LED组成,每个LED对应一个二进制位。

因此,我们需要将输入的数字转换为二进制数,并控制相应的LED显示。

B.拆字子程序编写一个拆字子程序,将输入的汉字拆成单个的汉字拼音。

汉字的拼音有一个对应的二进制编码,可参考GB2312中的表格。

在程序中,我们需要首先读取键盘输入的汉字,然后将汉字转换为相应的二进制代码,并将其存储在单片机中。

接着,我们需要将二进制代码分解成单个的拼音,并依次显示在数码管上。

四、程序设计在程序中,我们首先需要定义数码管所对应的输出端口和数码管的位数。

```;定义IO端口和数码管位数MOV P0,#0MOV P2,#0x01MOV DPTR,#TABLEMOVX A,DPTRMOV P2,#0x00MOV R0,#0x00MOV R1,#0x01MOV R2,#0x00MOV R3,#0x00MOV R4,#0x00MOV R5,#0x00MOV R6,#0x00MOV R7,#0x00```在键盘输入数字后,我们需要将其转换为二进制数,并存储在单片机的寄存器中。

对于一个单独的数字,我们可以用以下程序将其转换为二进制码:```;循环显示DISPLAY:MOV P0,#0xFFCLR CJNB R0,SKIP1MOV P0,#0xFESKIP1:RRC AJNB R1,SKIP2MOV P0,#0xFDSKIP2:RRC AJNB R2,SKIP3MOV P0,#0xFBSKIP3:RRC AJNB R3,SKIP4MOV P0,#0xF7SKIP4:RRC ADJNZ R5,DISPLAY```在将汉字转换为二进制编码之后,我们需要编写一个循环程序来分解二进制编码,并将每个拼音对应的二进制代码显示在数码管上。

实验二 拆字程序、拼字程序设计

实验二:拆字程序、拼字程序设计院(系):电子工程学院课程名称:单片机原理及应用日期:4.2.1 实验目的1. 掌握汇编语言指令的使用规范。

2. 掌握汇编语言程序设计方法。

3. 掌握MCS-51单片机的存储器结构。

4. 掌握单片机中数据存储形式。

4.2.2 实验预习1.熟悉Keil集成编译环境的使用方法。

2. 复习单片机指令系统。

3. 复习利用Keil集成编译环境查看单片机存储器状态的方法。

4.2.3 实验原理计算机中数据都是以字节为单位存储的二进制数,完成本实验需熟练掌握二进制的数据结构和原码,补码等数据编码方法以及单片机各指令对数据的影响。

4.2.4 预作实验任务1. 简介用Keil集成编译环境编辑、编译、调试程序的过程。

2. 简介用Keil调试程序时查看内部数据存储器和内部程序存储器状态的方法。

3. 输入并编译以下程序,在Keil中运行ORG 0000HAJMP MAINORG 0100HMAIN: MOV R0,#30HMOV 30H,#78HMOV 31H,#0AFHMOV A,@R0INC R0XCHD A,@R0SJMP $运行结果为: A = , R0 = , (30H) = , (31H) = ,4. 输入并编译以下程序,在Keil中运行,记录运行结果。

ORG 0000HAJMP MAINORG 0100HMAIN: MOV A,#79HANL A,#0FH ;A=ORL A,#0A3H ;A=XRL A,#0F0H ;A=CPL A ;A=SWAP A ;A=CLR A ;A=SJMP $5. 补全程序以完成程序功能。

程序功能:读取外部数据存储器2000H单元内容,并将其高四位送至P1端口的低四位,P1端口高4位不变。

MOV DPTR, ;外部存储器地址送DPTRA,@DPTR ;读取数据ANL A, ;屏蔽累加器低4位A ;累加器高低4位交换ANL P1,#0FH ;屏蔽P1低4位ORL A,P1 ;A和P1相或MOV P1, ;结果输出至P16. 补全程序以完成程序功能。

单片机拆字拼字实验报告

二.实验目的:
1、掌握基本的51汇编程序书写、编译
2、熟悉51指令的运用
3、掌握内RAM,外RAM区域数据操作
三.程序与流程图
程序一:
ROG 0000H
SJMP MAIN
ORG 0030H
MAIN:MOV A,20H
ANL A,OFH
CJNE A,#10,NEXT1
NEXT1:JNC NEXT2
ADD A,#30H
单片机实验报告单片机综合实验报告单片机实验板单片机实验箱单片机实验单片机实验心得单片机实验板原理图单片机实验软件单片机实验室单片机实验da
单片机原理及其接口技术实验报告
实验二0H单元的二进制代码转化为ASCII码,保存在21H,22H单元中;将7030H,7031H中的二进制代码压缩后存放于7032H中
END
程序二:
ORG 0700H
MAIN: MOV DPTR,#7030H
MOVX A,@DPTR
ANL A,#0FH
SWAP A
MOV B,A
INC DPTR
MOVX A,@DPTR
ANL A,#0FH
ORL A,B
INC DPTR
MOVX @DPTR,A
SJMP $
END
四.实验感受:
我的感受是:1更加了解了汇编语言
SJMP DONE
NEXT2: ADD A,#37H
DONE:MOV 21H,A
MOV A,20H
ANL A,#0H0H
SWAP A
CJNE A,#10,NEXT3
NEXT3:JNC NEXT4
ADD A,#30H
SJMP DONE1
NEXT4: ADD A,#37H

单片机实验指导书

单片机实验指导书实验一拆字程序实验一、实验目的:掌握汇编语言程序设计方法。

二、实验内容:把8000H地址的内容拆开,高位送8001H地址的低位,低位送8002H地址的低位,8001H、8002H地址的高位清0。

本程序通常把数据送显示缓冲区时使用。

三、实验器材:计算机1台。

四、实验步骤:1、按流程图编写程序,以下是通过计算机交叉汇编得到的LST文件清单,供参考。

2、文件编译连接、装载,用鼠标点击[项目/重建所有目标文件],系统自动进行编译,并弹出信息窗口,若有错误则重新修改再编译;若无错误,点击[调试/启动/停止调试]后进入调试状态。

3、设置观察窗口:(1)用鼠标点击[视图/存储器窗口],在地址栏中输入:[x:0x8000];(2)在8000H写入任意数据:在地址栏内选定任意数据,[如:0x008000:00 00 00 00……](注:初始数据均为“00”)。

右键点击一初始数据“00”,在出现的对话框中点击“修改位于X:0x008000的内存”,在新弹出的对话框:[输入字节于X:0x008000]内输入任意数据,确定即完成数据的写入。

(3)单步执行观察寄存器8000H-8002H的变化。

六、实验程序:(51ASM\A8051.asm);把指定字节的高低位拆开分别存放,多用于显示字程序ORG 0000HMOV DPTR,#8000H ;指定的字节MOVX A,@DPTRMOV B,A ;暂存SW AP A ;交换ANL A,#0FH ;屏蔽高位INC DPTRMOVX @DPTR,AINC DPTRMOV A,BANL A,#0FH ;指定字节的内容屏蔽高位MOVX @DPTR,ALOOP: SJMP LOOPEND ;结束汇编实验二拼字程序实验一、实验目的:1、进一步掌握汇编语言设计。

2、熟悉软件调试方法。

二、实验内容:把8000H、8001H两个字节的低位分别送入8002H的高位和低位。

本程序一般用于把显示缓冲区数据取出拼装成一个字节。

单片机实验报告

学校单片机实验报告姓名:东方古国学号:200906大范甘迪教师:股份实验1:置数、拆字及拼字实验人员:丁云智指导老师:刘易实验地点:6C701 实验时间:2012年3月29日一、实验要求置数1、掌握汇编语设计和调试方法,熟悉键盘操作2、熟悉使用keil软件3、分别将70H~8FH、2000H~20FFH置数拆字程序1、掌握汇编语言设计和调试方法2、学会运用交换指令SWAP和逻辑运算指令ANL等指令3、把2000H的内容拆开,高位送2001H低四位,低四位送2002H低四位,2001H、2002H高四位清零4、熟悉使用keil软件拼字1、熟悉指令的运用2、把2000H、2001H的低四位分别送入2002H高四位和低四位二、实验原理置数拆字拼字三、程序设计置数:Org 00HAJMP MAINORG 30HMAIN:MOV R0,#70HMOV R1,#00H LOOP:MOV @R0,#0FFHINC R0INC R1CJNE R1,#20H,LOOPEND拆字:MOV DPTR,#2000H MOV A,#12H MOVX @DPTR,A SWAP AANL A,#0FHMOV DPTR,#2001H MOVX @DPTR,A MOV DPTR,#2000H MOVX A,@DPTRANL A,#0FHMOV DPTR,#2002H MOVX @DPTR,AEND拼字:ORG 00HAJMP MAINORG 30HMAIN:MOV DPTR,#2000HMOV A,#12HMOVX @DPTR,AINCDPTRMOV A,#34HMOVX @DPTR,ALOOP:MOV DPTR,#2000HMOVX A,@DPTRANL A,#0FHSWAP AMOVB,AINCDPTRMOVX A,@DPTRANL A,#0FHORLA,BINCDPTRMOVX @DPTR,AEND四、现象及结果置数:(1)在地址框内输入"d:0x0070",按回车,显示16个“FF”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、程序框图
四、实验步骤
用连续或单步方式运行程序,检查20—22H中内容变化情况。
五、思考
如何用断点方式调试本程序。
整体运行程序,如果最终结果与理论结果不一致,采用断点方式调试程序,把光标移到断点处,点击“菜单”→“执行”→“执行到光标处”。逐步检查每步所得结果,观察其与推算结果是否一致,逐步排除错误,直至程序调试成功。
3、拆字程序内容
org 00h
ljmp star
org 30h
star: mov a,20h
swap a
anl a,#0fh
mov 21h,a
mov a,20h
anl a,#0fh
mov 22h,a
sjmp $
end
2、把20H的内容拆开,高位送21H低位,低位送22H低位
由图可知,程序把20h内容拆开,高位送21H低位,低位送22H低位
拼字程序实验
一、实验目的
进—步掌握汇编语言设计和调试方法。
二、实验内容
把20H、21H的低位分别送入22H高低位,一般本程序用于把显示缓冲区的数据取出拼装成—个字节。
三、程序框图
四、实验步骤
单步或用断点方式运行程序,检查22H内容变化情况。
程序内容
org 00h
ljmp star
org 30h
star: a,20h
anl a,#0fh
swap a
mov b,a
mov a,21h
anl a,#0fh
orl a,b
mov 22h,a
sjmp $
end
2、把20H、21H的低位分别送入22H高低位
由图可看出:把20H、21H的低位分别送入22H高低位。
佛山科学技术学院
实验报告
课程名称单片机原理与应用实验项目拆字程序,拼字程序实验
专业班级姓名学号
指导教师成绩日期201 1年月日
实验二拆字程序
一、实验目的
掌握汇编语言设计和调试方法。
二、实验内容
把20H的内容拆开,高位送21H低位,低位送22H低位,21H、22H高位清零,一般本程序用于把数据送显示缓冲区时用。
相关文档
最新文档