实验二 拆字程序、拼字程序设计
- 格式:doc
- 大小:51.00 KB
- 文档页数:4
实验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问的流程图及程序清单(选做)。
一、实验目的1. 了解汉字拆字的基本原理和方法;2. 掌握微机在汉字拆字中的应用;3. 熟悉汉字拆字程序的设计与实现。
二、实验原理汉字拆字是将一个汉字分解成若干个基本部件(称为笔画)的过程。
汉字拆字在汉字识别、汉字编码等领域有着广泛的应用。
微机拆字实验主要利用计算机的强大处理能力,实现对汉字的自动拆分。
三、实验内容1. 实验环境:Windows操作系统,Python编程语言,PyQt5图形界面库。
2. 实验步骤:(1)搭建实验环境,安装Python和PyQt5。
(2)编写汉字拆字程序,主要包括以下模块:① 汉字笔画识别模块:根据汉字笔画特征,识别汉字的各个笔画;② 汉字拆字模块:根据汉字笔画识别结果,将汉字拆分成基本部件;③ 汉字部件编码模块:将拆分后的汉字部件进行编码,便于存储和检索;④ 用户界面模块:实现用户输入汉字,展示拆分结果等功能。
(3)编写实验程序,实现以下功能:① 用户输入汉字,程序自动进行拆字;② 展示拆分结果,包括拆分后的汉字部件和编码;③ 用户可以调整拆分参数,如笔画识别阈值等。
3. 实验结果分析:(1)通过实验,成功实现了汉字的自动拆分,证明了程序的正确性。
(2)实验结果表明,汉字拆字程序具有较高的准确性和稳定性,能够满足实际应用需求。
四、实验总结1. 通过本次实验,掌握了汉字拆字的基本原理和方法,了解了微机在汉字拆字中的应用。
2. 在实验过程中,学习了Python编程语言和PyQt5图形界面库,提高了编程能力。
3. 通过对汉字拆字程序的设计与实现,锻炼了逻辑思维和问题解决能力。
4. 本次实验为后续相关研究奠定了基础,有助于进一步探索汉字拆字技术。
五、实验改进与展望1. 优化汉字笔画识别模块,提高识别准确率。
2. 丰富汉字部件编码方式,便于存储和检索。
3. 研究基于深度学习的汉字拆字方法,提高拆字效果。
4. 将汉字拆字技术应用于实际场景,如汉字识别、汉字编码等。
总之,本次微机拆字实验使我们对汉字拆字技术有了更深入的了解,为今后的学习和研究奠定了基础。
拆字拼字单片机原理及应用实验报告姓名:学号班级:指导教师:单片机原理及应用实验报告实验项目名称:拆字、拼字实验实验日期: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即完成了此次任务。
单片机实验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```在将汉字转换为二进制编码之后,我们需要编写一个循环程序来分解二进制编码,并将每个拼音对应的二进制代码显示在数码管上。
拆字游戏比赛活动方案策划一、活动背景拆字游戏是一种以发现和拼读汉字的音节为主要内容的趣味性游戏,能够充分调动参与者的想象力和思维能力,让学习汉字变得更加有趣。
为了增加学生对汉字学习的兴趣,提高汉字认知能力,本次活动策划了一场拆字游戏比赛活动。
二、活动目标1. 提高学生对汉字的学习兴趣,增加对汉字的认知度;2. 增强学生的思维能力和创造力;3. 培养学生的合作意识和团队精神。
三、活动规则1. 参赛人员:全校中学生,每个班级组织一支代表队参赛,每队共5名队员;2. 比赛形式:分为初赛和决赛两个阶段,初赛为校内比赛,决赛为校级比赛;3. 初赛环节:(1) 拆字速算:每支队伍派出一名队员,根据主持人念出的汉字,通过拆解字的方式计算出字的拆字数,并在规定时间内回答,答对字的拆字数最多的队伍晋级;(2) 情景拆字:每支队伍从一个给定的汉字中,选择其中的几个字拆出成新的汉字,根据所拆字的意义和调动,设计表演或者故事情节,进行表演;(3) 字形拆解:每支队伍从一组示意图中,根据示意图的线条和形状,猜测出所代表的汉字,并解释成合理的词语;(4) 拼字接龙:每支队伍从一个给定的字开始,根据主持人念出的字,拼接出合法的汉字,并解释词义,答错或者超时者淘汰。
4. 决赛环节:(1) 团队合作:每支队伍派出所有队员,进行团队合作拆字活动,根据主持人念出的词语,队员们迅速拆解出所听到的字词,并进行合理的组合;(2) 主题创造:每支队伍根据指定的主题,进行汉字创作,可以使用给出的字或者自选字,创作出符合主题和意义的汉字,进行展示和解释;(3) 口吐莲花:每支队伍派出一名队员,通过拆解字的方式,将给出的成语逐字拆解,并解释成简明的意思;(4) 拼音拆字:每支队伍从一组全拼音的字中,根据所念出的音节,拼接出所代表的汉字,并解释成合理的词语;(5) 决胜环节:两支队伍以团队合作的方式进行PK,进行特殊答题,根据主持人提问,迅速拆解出指定汉字,并解释词义。
《单片机原理与应用》课程实验指导书电子、机电及电气项目与自动化专业适用吴茂屈莉莉王飞编佛山科学技术学院二00 九年十月前言以往我校的单片机实验教案通常是使用启东DAIS 系列单片机微机仿真实验系统进行单片机实验教案的,DAIS 系统可以做二十多项实验,系统机构十分复杂,功能非常强大,但是在使用过程中也发现了一些不足的地方那个: 厂家为了技术保密,把核心电路都屏蔽了,我们不能了解实验系统的工作原理,另外系统庞大,不方便学生带回宿舍实验,不方便学生课外学习。
根据我校学生对单片机课程学习的需求, 我们在参考其他公司的产品的基础上,结合课程的实际情况,开发了适合学生入门学习的单片机学习板,FD-51 学习板,该学习板设置了包括LED数码管、LCD1602液晶、AD\DA转换器件等单元电路,可以做几十个单片机实验,而且本实验板我们是以配件的形式提供给学生,让学生自己焊接调试线路板。
学生不但可以学习软件编程技术,还可以学习硬件焊接及调试技术,可以更好地锻炼学生的动手操作能力。
目录系统介绍 (2)软件实验:实验一清零程序............. (4)实验二拆字程序.................... .. (5)实验三拼字程序.................... .. (5)实验四数据区传送子程序 (6)实验五查找相同数个数 (6)硬件实验:实验A 工业顺顺序控制 (7)实验B 简单IO口扩展实验 (8)实验一P1 口输出流水灯实验 (11)实验二P1 口输出交通灯实验 (11)实验三八段数码管显示实验 (12)实验四键盘实验.................. . (12)实验五遥控解码实验 ............. .. (12)实验六计数器实验..................... .. (13)实验七继电器控制实验 .................... (13)实验八定时器实验 (14)实验九单片机串行口通讯实验 (14)实验十电子时钟 (14)实验十一外部中断实验<急救车与交通灯) (15)实验十二AT24C02读写实验...... .......... . (15)实验十三93C46读写实验....... ........... (16)实验十四LCD1602字符型液晶控制显示实验 (16)实验十五LCD12864点阵型液晶控制显示实验 (17)实验十六A/D转换(数字电压表>实验 (17)实验十七D/A转换(波形发生器>实验 (18)实验十八计算机温度数据采集与处理 ............... . (19)系统介绍一、FD-51单片机学习板简介为了适应我校单片机课程教案的需要,我们在参考其他厂家学习板的基础上,再根据我校单片机课程教案大纲的要求,基于简单、使用的原则,开发了FD-51 单片机实验板。
单片机拆字程序单片机是一种集成电路,也是现代电子技术中常用的控制器件。
拆字程序是一种针对单片机的特定功能程序,用于将输入的文字进行拆分和显示。
在现代社会中,信息交流已经成为人们生活中不可或缺的一部分。
而文字作为最基本的信息表达方式,扮演着至关重要的角色。
然而,在某些场景下,我们可能需要对文字进行一些特殊的处理,比如拆分成单个的字母或汉字。
这时,单片机拆字程序就能发挥作用了。
单片机拆字程序的实现过程主要分为三个步骤:输入、处理和输出。
我们需要将待拆分的文字输入到单片机中。
这可以通过多种方式实现,比如通过键盘输入、通过串口接收等。
在输入过程中,我们需要保证输入的文字是有效的,即不能包含非法字符或符号。
接下来,单片机需要对输入的文字进行处理。
处理的方式可以根据具体需求而定。
对于英文字母,可以直接将每个字母分开显示;对于汉字,可以根据拼音或笔画将其拆分成单个的字母或汉字,并按照一定的顺序进行显示。
处理过程中需要注意的是避免重复输出相同的内容,确保每个字母或汉字只显示一次。
处理完成后的结果需要通过合适的输出方式进行显示。
单片机可以连接到液晶显示屏、数码管、LED灯等输出设备,将拆分后的字母或汉字按照预定的格式进行显示。
显示的方式可以是逐个显示,也可以是同时显示所有拆分后的字母或汉字。
除了基本的拆字功能,单片机拆字程序还可以扩展其他功能,比如添加字体库,使得显示的文字更加丰富多样;可以根据输入的文字进行动画效果的显示,增加视觉效果;还可以与其他设备进行联动,实现更复杂的应用场景。
总结起来,单片机拆字程序是一种针对文字拆分和显示的特定功能程序。
通过输入、处理和输出三个步骤,单片机可以将输入的文字按照一定的方式进行拆分和显示,提供更加个性化和丰富的信息交流方式。
随着技术的不断进步,单片机拆字程序在各个领域都有广泛的应用,为人们带来更多的便利和乐趣。
太原工业学院计算机工程系成绩:单片机原理及接口技术课程实验报告课程:单片机原理及接口技术姓名:张成专业:计算机科学与技术学号:132054116日期:2016年6月太工计算机工程系计算机原理实验室实验一:拆字程序实验实验环境 V 系列仿真器集成调试软件实验日期2016.4.22一.实验内容1.熟悉51仿真系统2.设计并单步调试实现将R5中一字节数拆分成两位独立的数据分别存于R6,R7中3.将R6,R7中的一位HEX 数据转换为输出ASCII 编码二.理论分析或算法分析 1. 将一个数存放在R5中2. 通过A 寄存器将R5中的高4位和第四位存放在R6与R7中(将高位和0f0做与操作,低四位和0f 做与操作)3. 清零CY ,通过SUBB 让高四位和低四位与0A 做差,判断操作数的大小4. 通过JC 判断如果操作数大于9,则加37H ,否则加30H5. 将结果送回R5,R6中开始将一个数存入R5中拆分R5,将高位存入R6,低位存入R7清零CY ,高位低位分别与0A 做SUBB 操作,JC 判断大于等于则加37H小于加30H将结果存入R6,R7中结束三.实现方法org 2000hmov r5,#2AH mov a,r5anl a,#0f0h ;高swap amov r6,amov a,r5anl a,#0fh ;低mov r7,aclr cmov a,r6subb a,#0ahjc l1sjmp l2l0:clr cmov a,r7subb a,#0ahjc l3sjmp l4 l1:mov a,r6 add a,#30h mov r6,a sjmp l0l2:mov a,r7 add a,#37h mov r6,a sjmp l0l3:mov a,r7 add a,#30h mov r7,a jmp l5l4:mov a,r7 add a,#37h mov r7,al5:nopsjmp $ END四.实验结果分析输入的操作数是2AR6中存放高位ASCII码32,R7中存放低位ASCII码41五.结论完成了本次实验要求的设计并单步调试实现将R5中一字节数拆分成两位独立的数据分别存于R6,R7中将R6,R7中的一位HEX数据转换为输出ASCII编码实验内容。
拼字游戏编程实现游戏是人们娱乐和休闲的重要方式,而拼字游戏作为一种常见的益智游戏,受到了广大玩家的喜爱。
为了满足玩家对拼字游戏的需求,编写一个拼字游戏的程序是一个有趣且实用的项目。
在本文中,将讨论如何实现一个拼字游戏的程序,并分享一些编程的技巧和方法。
一、游戏规则拼字游戏的基本规则是根据给定的字母组合,在规定的时间内尽量组成更多的正确单词。
玩家可以通过键盘输入字母,并在屏幕上显示已找到的单词列表。
二、编程实现1. 字母的生成在程序中,首先需要生成一组随机的字母组合。
可以通过使用随机函数来实现这一功能。
在生成字母组合时,可以限制字母的范围,比如只包含小写字母或者只包含辅音字母,以增加游戏的难度。
2. 单词字典为了判断玩家输入的单词是否正确,需要准备一个单词字典。
可以使用现有的字典文件,或者自己编写一个简单的字典。
在判断单词是否正确时,可以使用简单的查找算法,遍历字典中的单词并进行比较。
3. 输入和验证在程序中,需要提供给玩家一个输入框,让玩家输入单词。
在玩家输入完毕后,程序需要验证该单词是否正确。
如果正确,则将该单词添加到已找到的单词列表中并显示在屏幕上,否则提示玩家重新输入。
4. 时间限制为了增加游戏的挑战性,可以在程序中设置一个时间限制。
玩家需要在规定的时间内尽可能多地找到正确的单词。
可以使用计时器函数来实现时间限制的功能,并在时间结束后停止游戏。
5. 分数和排名为了增加游戏的趣味性,可以给每个正确的单词设置一个分数,并在游戏结束后根据玩家的得分进行排名。
可以使用变量来记录玩家的分数,并根据分数进行排序。
三、编程技巧和方法1. 使用合适的数据结构在编写程序时,可以使用合适的数据结构来存储生成的字母组合、单词字典和已找到的单词列表。
比如,可以使用数组来存储字母组合和已找到的单词,使用链表来存储单词字典。
2. 设计良好的界面在程序中,界面设计是非常重要的,可以使用合适的图形界面库或者控制台界面来实现。
计算机原理实验室实验报告课程名称:单片微型计算机原理及应用姓名学号28 成绩设备名称及软件环境MedWin v2.39 模拟仿真实验名称拆字程序实验日期一.实验内容将B寄存器中的一个十六进制数的高四位和低四位拆分,分别存放到R6和R7寄存器中,并转换成相应的ASCII码。
二.理论分析或算法分析十六进制数转换为ASCII码的算法:凡大于等于10的十六进制数加37H,凡小于10的十六进制数加30H,便可得到相应的ASCII码。
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)MOV A, #5AHMOV B, AANL A, #0FHMOV R6, AMOV A, BSWAP AANL A,#0FHMOV R7, AMOV A, R6ADD A,#0F6HMOV A, R6JNC ADD1ADD A, #07HADD1: ADD A, #30HMOV R6, AMOV A, R7ADD A,#0F6HMOV A, R7JNC ADD2ADD A, #07HADD2: ADD A, #30HMOV R7, ARET四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)运行前内部数据区、特殊功能寄存器、寄存器的状态如下:运行后内部数据区、寄存器、特殊功能寄存器状态如下:五.结论通过本次实验,熟悉了MedWin仿真环境的使用。
掌握了内部数据存储器间的传送、数据交换指令SWAP的使用以及十进制数到十六进制转换的实现方法。
报告提交日期(注意:内容写不下时允许表格添加新行。
A4纸张(全班要求统一)边距上下左右2厘米,表格要求满页,字体宋体5号,固定单倍行距,文字部分用汉字排版格式,左对齐)(本备注允许删除)。
读取RAM区2000H中的值, 并放在累加器A中将A的值高四位过滤,保留低四位将A的值进行高低四位进行交换将A的值备份到B寄存器中DPTR值增一,取RAM区2001H处数据,并放到A中将A过滤到高四位后与备份到B中的数据进行或操作,实现两个半字节的拼接将拼接后的字符放到2002H单元中五、程序清单(sw03.asm)ORG 0000H ;程序在ROM中0000H地址单元处开始编码LJMP START ;长跳转跳到ROM中0680H处执行ORG 0680H ;程序在ROM中0680H地址单元处开始编码 START: MOV DPTR, #2000H ;修改DPTR值MOV A, #0AAH ;设置A的值MOVX @DPTR, A ;设置RAM中2000H地址单元的值为AAHINC DPTR ;调整DPTR值为2001HMOV A, #055H ;设置A的值MOVX @DPTR, A ;设置RAM中2001H地址单元的值为55HMOV DPTR, #2000H ;调整DPTR值为2000HMOVX A, @DPTR ;取出RAM中2000H地址单元的值并放在A中ANL A, #0FH ;将A的值高四位过滤,保留低四位SWAP A ;将A的值进行高低四位进行交换MOV B, A ;将A的值备份到B寄存器中INC DPTR ;调整DPTR值MOVX A, @DPTR ;取出RAM中2001H地址单元的值并放在A中ANL A, #0FH ;将A的值高四位过滤,保留低四位ORL A, B ;将RAM中2000H地址单元的值的低四位作为高位与RAM中2000H地址单元的值的低四位进行合并INC DPTR ;调整DPTR值,使其增一MOVX @DPTR, A ;将合并后的新值放到RAM中2002H地址单元中SJMP $ ;反复循环跳自已END ;程序编码结束一、实验小结:解:通过本次实验,对单片机外部RAM操作有了更清楚的操作思路,同时对汇编指令的使用更加娴熟,对汇编指令中循环语句的写法更加熟练。
实验报告--拆字微机原理实验报告一.实验内容拆字实验。
把片外7000H单元的内容拆开,高位送7001H单元的低位,低位送7002H 单元的低位。
7001H、7002H高位清零。
在实际应用中,本程序一般用于把数据送显示缓冲区时使用。
二.实验时间2014年12月9日三.实验过程(1)画程序框图(2)根据程序框图写实验程序试验程序如下:ORG 0050HMOV DPTR,#7000H;MOVX A,@DPTR;MOV B,A;SWAP A;ANL A,#0FH;INC DPTR;MOVX @DPTR,A;MOV A,B;INC DPTR;ANL A,#0FH;MOVX @DPTR,A;END(3)调试操作1.在试验机上按下复位,PCDBG键。
2.在DVCC试验系统上点击联接,调试,解决程序中出现的错误。
3.在试验机上按下复位,输入地址7000H,按下MEM,输入数据34H,再按MEM进行保存。
4.根据提示点击动态调试里的连续单步运行程序5.在试验机上或在窗口里的显示外部数据来检查7001H和7002H中是否分别为03H和04H。
四.附录(程序中出现的错误及改错方法)1.开始程序如下:ORG 0050H;MOV DPTR,#7000H;MOVX A,@DPTR;SWAP A;ANL A,#0FH;INC DPTR;MOVX @DPTR,A;DEC DPTR;MOVX A,@DPTR;INC DPTR;INC DPTR;ANL A,#0FH;MOV @DPTR,A;END开始时想通过DPTR的移动来实现取存不同的数据,但红色部分出现‘syntax error’;查算术运算指令表知,并不存在DEC DPTR指令,故修改,将放在A里面存放的#7000H先复制在B中进行保存,程序如三.(2)所示。
2.调试三.(2)时在END指令行出现“beyond body”错误,在英文状态下重新输入END 错误消失。
五.实验分工1.编写程序:丁娜2.程序调试:潘丽伊3.撰写报告:丁娜、潘丽伊。
第二步:获取2000H中的高四位放到2001H中第二步:获取2000H中的低四位放到2002H中五、思考1、如何用断点方式调试本程序。
2、将程序中的汇编语言中每条单步执行的指令阐述出来。
ORG 0000H ;程序从ROM区地址为0000H处开始放置LJMP SE02 ;长跳转到SE02程序段ORG 0660H ;程序从ROM区地址为0660H处开始放置 SE02: MOV DPTR, #2000H ;调整DPTRMOV A, #0A5H ;A5H放置至A中MOVX @DPTR, A ;A5H放置至RAM区地址为2000H的存储单元MOVX A, @DPTR ;取出RAM区地址为2000H的存储单元中的数据放置A中MOV B, A ;A中的数据备份到B中SWAP A ;A中的数据进行高低四位交换ANL A, #0FH ;将A中的高四位过滤,保留低四位INC DPTR ;DPTR值增一MOVX @DPTR, A ;将RAM区2000H中数据的高四位存放到RAM区地址为2001H的存储单元INC DPTR ;DPTR值增一MOV A, B ;恢复A中的值ANL A, #0FH ;将A中的高四位过滤,保留低四位MOVX @DPTR, A ;将RAM区2000H中数据的低四位存放到RAM区地址为2002H的存储单元LOOP: SJMP LOOP ;循环等待END ;程序编码结束六、程序清单 (sw02.asm)ORG 0000HLJMP SE02ORG 0660HSE02: MOV DPTR, #2000HMOV A, #0A5HMOVX @DPTR, AMOVX A, @DPTRMOV B, ASWAP AANL A, #0FHINC DPTRMOVX @DPTR, AINC DPTRMOV A, BANL A, #0FHMOVX @DPTR, ALOOP: SJMP LOOPEND七、实验小结解:通过本实验,对单片机的RAM与ROM的使用有了更加透彻的理解,为以后基于汇编的单片机程序开发打下坚实的基础。
第一章DVCC-52196JH单片机仿真实验系统简介第一节DVCC系列单片机仿真实验系统性能§ 1 . 1 系统性能指标1.仿真、实验相结合。
2.实验模块化结构,互不影响,通过连线又可将各模块有机结合。
3.实验内容设置丰富、合理,满足教学大纲要求。
4.每项实验连线方便,既能满足学生动手能力愿望,又能充分发挥学生的创新能力,提高教学实验的质量和效率。
5.自带集成调试环境,Win9X/NT软件平台,含:源程序库、芯片资料库、原理图库、元器件位置图库、实验说明、动态调试工具库。
6.提供源程序编辑、汇编、链接。
7.电路具有过压保护,确保系统安全、可靠工作。
8.整机采用热风整平工艺基板、波峰焊接,实验连接接口采用圆孔插座,整机可靠性好。
9.自带EPROM写入器,可对27128、2764EPROM进行写入。
10.自带键盘显示器,进口键座,专用彩色键帽,决无按键不可靠现象。
11.系统用串行口、用户用串行口相互独立,在通过RS232与上位机联机状态下,同样可以调试用户串行口程序。
12.系统带有示波器功能,通过RS232口,可将测得的信号显示在上位机的屏幕上。
该系统通过RS232口可连各种上位机,在Win9X/NT软件平台进行仿真开发和实验。
同时系统自带键盘显示器,无须任何外设也能独立工作,支持因陋就简建立单片机实验室。
系统提供实验程序库,均放在系统光盘上,可直接使用。
同时全部实验程序机器码已固化在EPROM中,作为用户程序。
在进入实验前,需将该EPROM中的程序(在固化区)传送到仿真RAM区,以便以单步、断点、连续等方式运行程序。
§ 1.2 系统提供的主要实验项目如下:一、MCS—51部分软件实验1、清零程序实验 6、字符串查找并统计相同字符串个数2、拆字程序实验 7、双字节乘法程序3、拼字程序实验 8、多分支程序设计4、数据块传送实验 9、定时/计数器实验5、数据排序实验 10、电脑时钟实验二、MCS—51部分硬件实验1、8031单片机P3、P1口应用 11、步进电机控制2、工业顺序控制 12、直流电机控制3、并行I/O口8255应用 13、电子音响4、简单I/O口输入、输出扩展 14、继电器控制5、A/D转换0809应用 15、数据存贮器扩展和程序存贮器扩展6、D/A转换0832应用 16、8031串行口应用实验(一)—双机通信实验7、串并转换实验 17、8031串行口应用实验(二)—与PC机通信8、定时计数器8253A应用 18、温度测量实验(5G14433应用)9、可编程键盘显示8279A应用 19、压力测量实验10、打印机接口应用对DVCC—××JH+机型增加下列四个扩展实验一、128×64液晶显示实验二、16×16LED点阵显示实验三、语音录放实验四、IC卡读写实验§ 1.3 实验系统主要机型如下:DVCC—52JH(JH+) 51实验、仿真DVCC—52196JH(JH+) 51、196实验、仿真DVCC—5286JH(JH+) 51实验、仿真,8088实验DVCC—598JH(JH+) 51、196实验、仿真,8088实验第二节 MCS—51实验系统安装与启动§ 2.1 MCS51实验系统安装与启动1. DVCC系列实验系统在出厂时均为51状态对DVCC—52196JH机型:SK1位1—5置ON位置,位6—10置OFF对DVCC—5286JH和DVCC—598JH机型:a.SK1位1—5置ON,位6—10置OFF;b.SK2位1—2置ON;c.SK3置ON;d.SK4置OFFe.卧式KBB置51、96位置,立式KBB1开关置51、88位置(只对DVCC—598JH/JH+);f.DL1—DL4连1、22. 如果系统用于仿真外接用户系统,将40芯仿真电缆一头插入系统中J6插座,另一头插入用户系统的8051CPU位置,注意插入方向,仿真头上小红点表示第一脚,对应用户8051CPU 第一脚。
单片机仿真实验系统MCS-51实验指导书南昌大学本实验指导是为适应单片机原理与应用方面的课程需做大量软硬件实验的需要而编写的,供学生编程用。
完成本实验指导中的实验,可使学生基本掌握MCS-51单片机的结构原理、接口技术、程序设计技巧。
实验指导书中详细叙述了各实验的目的、内容,列出了接线图、程序框图和实验步骤。
单片机实验注意事项:1:主CPU为8032,需要扩充一片6264作为数据区,连接6264的读写信号到CPU的读写信号,连接CS1到A15;连接数据线,连接地址高低线;2:实验仪上的波段开关必须选择9600波特率,和51系统;3:接线和拔线时必须断电, PC微机必须与本实验系统保持联机状态,即软件界面右上角有编译进度条,确定连机状态才可调试程序;4:通过RS232通信接口,利用上位机实现用户程序的编辑、编译和调试运行。
在软件的设置栏内,点击仿真模式,选择系统、系统;注意:上位机的存盘文件名只能用英文字母和数字组合,长度不能超过8位且存盘路径必须在默认的C 盘DAIS目录下;5:系统接口实验电路为单元电路方式,数据总线以8芯扁平线形式引出,硬件学生连线为电路图上粗实线。
部分机器硬件介绍可参考微机原理实验指导书。
目录软件实验部分:实验一清零程序实验二拆字程序实验三拼字程序实验四数据区传送子程序实验五数据排序实验实验六查找相同数个数实验七无符号双字节快速乘法子程序实验八多分支程序实验九脉冲计数(定时/计数器实验)实验十电脑时钟(定时器、中断综合实验)硬件实验部分:实验一 P1口亮灯实验实验二 P1口转弯灯实验实验三 P3.3口输入,P1口输出实验四工业顺序控制实验五继电器控制实验六 8255控制交通灯实验七 LED16×16点阵显示实验实验八串并转换实验实验九 A/D转换实验实验十 D/A转换实验十一电子音响实验十二步进电机控制实验十三 8032串行口应用实验㈠——双机通信实验十四小直流电机调速实验软件实验部分本节共编了十个软件实验,通过这些实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。
实验二:拆字程序、拼字程序设计
院(系):电子工程学院 课程名称:单片机原理及应用 日期:
班级 学号 实验室
专业 姓名 计算机号
实验名称
实验仪器 教师签名
实验操作 实验分析 实验成绩
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 0000H
AJMP MAIN
ORG 0100H
MAIN: MOV R0,#30H
MOV 30H,#78H
MOV 31H,#0AFH
MOV A,@R0
INC R0
XCHD A,@R0
SJMP $
运行结果为: A = , R0 = ,
(30H) = , (31H) = ,
4. 输入并编译以下程序,在Keil中运行,记录运行结果。
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: MOV A,#79H
ANL 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, ;外部存储器地址送DPTR
A,@DPTR ;读取数据
ANL A, ;屏蔽累加器低4位
A ;累加器高低4位交换
ANL P1,#0FH ;屏蔽P1低4位
ORL A,P1 ;A和P1相或
MOV P1, ;结果输出至P1
6. 补全程序以完成程序功能。
程序功能:将累加器A中的单字节二进制数转换为BCD码,百位、十位、
个位分别存放在R5、R4、R3中。
MOV B,
DIV AB ;除以100
MOV R5, ;百位→R5
MOV A,#10
XCH A,
DIV AB ;除以10
MOV R4, ;十位→R4
MOV R3, ;个位→R3
4.2.5 实验任务
1. 编写程序,将内部存储器(31H)单元的内容拆成两部分,高四位送给
(21H),低四位送给(20H),如(31H)=75H,则执行完程序后(21H)=07H,
(20H)=05H。
2. 编写程序,提取内部存储器(21H)单元的低四位作为高4位,(20H)单元
的低四位作为低四位组成新数据,存储到(31H)单元。如(21H)=78H,(20H)=9BH,
则执行完程序后(31H)=8BH。
4.2.6 实验步骤
1.使用Keil C51软件建立工程,编辑、编译程序,程序代码如下:
实验项目1:
实验项目2:
3.用Keil软件运行程序,并查看内部数据存储器的状态。
4.运行程序,排除程序错误。
5.记录实验结果并分析。