自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 收藏
  • 关注

原创 PTA——换硬币

将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?

2024-01-11 02:30:00 827

原创 PTA——查验身份证

一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。

2024-01-10 02:45:00 2016 1

原创 PTA——闰年判断

输入一个年份,判断其是否为闰年,是闰年输出True,不是闰年输出False。闰年的判断条件:年号能被4整除,但不能被100整除;或者能被400整除。

2024-01-09 04:15:00 1337

原创 PTA——猴子吃桃问题

一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?

2024-01-08 10:43:18 1246

原创 PTA——循环嵌套

注意:这段代码没有处理可能的输入错误,例如用户输入的不是整数或者输入的整数小于1。在实际使用中,你可能需要添加额外的错误处理代码来处理这些情况。这段代码是用于计算从1到n(n为用户输入的整数)之间所有整数的累加和。在这里给出相应的输出。在输出行显示计算出的结果。在这里给出一组输入。输入在一行中给出n的值。

2024-01-08 03:45:00 489

原创 PTA——分支结构练习02 用if-else语句判断上课周和放假

本题需要用if-else语句判断上课周和放假:输入1-12范围的数字表示月份(month),若输入的月份是9-12和1时,输出“本学年上学期”;若输入的月份为2时,则输出“寒假!若输入的月份为3-6时,则输出“本学年下学期”;若输入的月份为7-8时,则输出“暑假!若输入的月份是其他数值或字符时,则输出“请输入1-12范围的整数!

2024-01-07 13:48:48 618

原创 Java程序设计——GUI设计

为"Query"按钮添加一个动作监听器,当点击该按钮时,调用queryStudentInfo()方法。:为"Save"按钮添加一个动作监听器,当点击该按钮时,调用saveStudentInfo()方法。4、定义三个私有方法:saveStudentInfo(), loadStudentInfo() 和 queryStudentInfo()。2、用户可以通过"Save"按钮保存输入的学生信息,"Load"按钮加载已保存的学生信息,"Query"按钮3、查询特定学生信息。

2024-01-04 15:46:03 1344

原创 PTA——逆序的三位数

程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

2023-12-31 16:41:08 470

原创 PTA——计算火车运行时间

本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。

2023-12-31 16:40:12 618

原创 PTA-感染人数

设某住宿区域是一个n×n的方阵,方阵中的每个小方格为一个房间,房间里可能住一个人,也可能空着。第一天,某些房间中住着的人得了一种高传染性的流感,以后每一天,得流感的人会使其邻居(住在其上、下、左、右方向存在的房间里面的人)传染上流感,请问:第m天总共有多少人得流感?

2023-12-28 22:34:04 495

原创 《PIC单片机应用》实验报告——车辆里程表(上)

按下0号键显示频率12.30Hz速度60km/h,按下1号键显示频率16.45Hz速度80km/h,按下2号键显示频率20.56Hz速度100km/h,按下3号键 显示频率24.67Hz速度120km/h, 按下4或5号测试信号键频率和速度均为0。:我学会了MPLAB集成开发环境的使用,并能利用该环境调试设计程序,学习PROTEUS软件画电路图的方法,应用该软件做电路仿真。遇到问题要学会逐一排查,比如刚开始电路图连接错误导致仿真不通过,经过我的逐一排查后确认了问题所在,经重新连接电路图后可以正常仿真。

2023-12-22 17:25:51 475 1

原创 《PIC单片机应用》实验报告——车辆里程表(下)

烧写完成,接下来上板实测:分别把信号源程序和里程表程序下载到两块实验板的单片机中,用一根杜邦线连接信号源实验板的RC0到里程表实验板的RB0,再用另一个杜邦线连接两块实验板的GND引脚进行共地,调整信号源频率观察实验结果,把里程表实验板断电后再通电,观察里程值的记忆功能是否正确。遇到问题要学会逐一排查,比如刚开始电路图连接错误导致仿真不通过,经过我的逐一排查后确认了问题所在,经重新连接电路图后可以正常仿真。速度越快,总公里数增加的也越快,蜂鸣器发声频率越高。:电路图连接错误导致仿真不通过。

2023-12-20 14:12:33 575 1

原创 数字逻辑——时序电路设计(Extra)

在f题基础之上,我们重新设计了一个8X10存储器并利用此设计了一个10X10的具有存储功能的显示屏。Logisim提供的存储单元(如封装好的D触发器、计数器、移位寄存器、存储器阵列)Logisim提供的运算器(如封装好的加法器和复用器)、带译码器的七段数码管。本实验采用Logisim电路仿真平台。在使用Logisim设计本实验。在设计8X10存储器时有部分障碍导下问题完美解决。各部分实验正常运行达到预期目标,实验圆满完成!要求的数字电路的时候,

2023-12-04 16:05:41 688

原创 数字逻辑——时序电路设计(下)

数字逻辑是一门涉及数字电路设计和逻辑原理的课程,主要研究如何应用数字电路实现数字系统的逻辑功能。数字系统是指由数字电路组成的系统,其逻辑功能通常由逻辑门、触发器等逻辑部件组成。在数字逻辑课程中,学生将学习数制和编码、逻辑代数基础、组合逻辑电路的分析与设计、同步时序逻辑电路分析、异步时序逻辑电路的分析与设计、可编程逻辑器件PLD、数字系统设计等内容。这些内容将帮助学生掌握数字电路的设计和分析方法,以及如何应用数字逻辑原理实现各种数字系统的逻辑功能。

2023-12-01 20:52:28 1289

原创 PTA-使用函数输出一个实心的字符矩形

其中length是矩阵的长度,width是矩阵的宽度,ch是输出的字符,要求函数按照如样例所示的格式,打印出行数为width、列数为length,由字符ch组成的实心矩形图案。这个函数生成一个由特定字符组成的矩阵。矩阵的大小由输入参数决定,其中asd是矩阵的行数,fgh是矩阵的列数。字符the则决定了矩阵的内容。这个函数可以用于生成艺术图案或者进行简单的矩阵操作。

2023-11-30 22:14:44 1262

原创 PTA-移动字母

其中char s[]是用户传入的字符串,题目保证其长度不小于3;函数Shift须将按照要求变换后的字符串仍然存在s[]里。这个函数实现了字符串的右移操作。如果输入的字符串长度大于3,那么该函数会使得字符串的开始部分被“覆盖”,因为前3个字符被移动到了字符串的尾部。这个方法虽然可以实现字符串的右移,但是不是最高效的方法。因为它涉及到多次复制和移动操作,会消耗更多的时间和计算资源。如果需要频繁地进行这种操作,可以考虑使用其他更高效的方法,例如使用循环和指针进行操作。

2023-11-30 22:10:58 1255

原创 数字逻辑——时序电路设计(上)

设置初始值9,利用比较器设定下限值为0,上面利用减法器依次减一,减为0 后又重复从9减至0。正常工作时,七段数码管上将显示循环9—8—7—6—5—4—3—2—1—0—9...当我们按下按钮时,恢复初始值9。通过复用器和按钮选择要亮的灯,然后将最后一个输出值一第一个复用器连接,使走马灯实现循环效果,让灯泡始终按照指定的位序循环位移发光。Logisim提供的存储单元(如封装好的D触发器、计数器、移位寄存器、存储器阵列)Logisim提供的运算器(如封装好的加法器和复用器)、带译码器的七段数码管。

2023-11-29 12:27:29 683

原创 PTA-点赞

这是一个简单的计数问题。通过数组a,我们可以快速地找出哪个数字出现的次数最多。在找出出现次数最多的数字后,再从后往前遍历数组a,可以更快地找到这个数字在数组中的位置,并输出这个数字及其出现次数。

2023-11-28 18:11:42 496 3

原创 PTA-数字加密

这段代码利用了模运算和整数除法的性质来处理和转换数字。通过这种方式,可以将一个四位整数转换成一个单个数字的数组,然后对数组中的每个数字进行右移操作。最后,它将结果逆序输出,得到加密后的数字。

2023-11-28 18:09:24 703

原创 PTA-出租

这段代码的核心思想是利用ASCII值和数组索引之间的映射关系。对于数字字符0-9,它们的ASCII值是连续的,所以我们可以将数字字符的ASCII值映射到数组索引上。这样,我们就可以在常数时间内访问和查找特定的数字字符。这是一种非常有用的数据结构技巧,特别是在处理字符串中的数字字符时。

2023-11-28 18:06:57 409

原创 PTA-猴子选大王

这段代码接受一个正整数输入n,生成一个长度为n的递增序列,然后将其反转,并打印反转后的序列的第一个元素。

2023-11-28 13:49:53 485

原创 PTA-找鞍点

这是一个查找矩阵中最大元素及其位置的程序。在每一行中,它都会找到最大的元素,并检查是否有其他行的元素比它更大。如果没有,则打印该元素的位置并结束程序;否则,继续查找。如果遍历完所有行仍未找到最大元素,则打印"NONE"。

2023-11-28 13:33:09 650

原创 PTA-螺旋方阵

该代码接收一个整数n,然后生成一个n*n的二维数组,并按特定规则填充该数组。填充规则为:从左到右、从上到下、从右到左、从下到上,每次填充都递增一个整数值。最后,该代码将打印整个数组。

2023-11-28 13:30:27 776

原创 数字逻辑实验——有限状态机应用

其它字符编码“00”代表状态“S0”, 字符‘J’编码“01”代表状态“S1”,字符‘M’编码“10”代表状态“S2”,字符‘U’编码“11”代表状态“S3”。弹弹球游戏机:玩家通过转动摇杆来控制挡板的移动从而接住并反弹小球,每反弹成功一次计分一次,若玩家未接住将结束游戏并显示“输”。输出“J,M,U”和“其他无关变量”,将‘J’编码为01、‘M’编码为10、‘U’编码为11、其它字符编码为00。n =左墙 + n0!表 1 弹弹球inside。表 5碰撞分析机(挡板篇)表 6碰撞/落地检测器。

2023-11-28 13:02:09 823

原创 PTA-交换最小值和最大值

快速排序的基本思想是:通过一次排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

2023-11-28 11:02:48 1964

原创 PTA-统计字符出现次数

这段代码存在一个问题,它只读取了一个字符存入cnt数组,然后却试图访问cnt[1],这会导致数组越界的错误。。然后后面的比较操作只需要用就可以了。

2023-11-28 10:58:30 1523

原创 PTA-数列求和-加强版

这个程序使用了反向存储的方式来存储乘积,这样在输出时可以更方便地按照正常的顺序读取并打印每一位数字。这种做法在处理大数乘法时特别有用,因为它可以避免在内存中存储整个大数的字符串表示,而只需要存储它的每一位数字。

2023-11-28 10:54:17 727

原创 PTA-冒泡法排序

总体来说,这是一个简单的冒泡排序实现,可以对数组的部分元素进行排序,并在排序后打印出这些元素。

2023-11-28 10:43:17 1144

原创 PTA-选择法排序

这是一个简单而直观的选择排序算法实现。虽然代码可以进一步优化(例如,可以减少变量mark和t的使用),但总体上,它有效地实现了选择排序算法。

2023-11-28 10:41:24 2938

原创 PTA-方阵循环右移

这段代码的具体操作可能会因为实际需求的不同而有所不同,这里给出的解释是基于一般性的解读。具体的操作方法可能需要更详细的信息才能准确解释。

2023-11-27 17:57:09 1096

原创 PTA-输出鞍点的行列下标

这个程序的目的是在给定的6x6矩阵中寻找一个元素,这个元素是它所在行的最大值且是它所在列的最小值。如果找到这样的元素,就输出其行列号;如果没有找到,则输出"NONE"。

2023-11-27 16:17:48 545

原创 PTA-数组循环左移

需要注意的是,这里的数组索引是从0开始的,所以 s[k] 表示的是数组中第 k 个元素。另外,如果 n 大于等于 m,那么 k 的值将是 n 对 m 取余的结果,这保证了 k 的值总是在 0 到 m-1 的范围内,即保证了 k 可以用作数组的索引。

2023-11-26 13:07:11 476

原创 PTA-简化的插入排序

总体来说,这段代码实现了插入排序算法的核心思想,即将一个元素插入到已经排好序的列表中的合适位置,使得列表仍然保持有序。这个算法的时间复杂度是 O(n^2),在数据量较大时可能会出现性能问题。

2023-11-26 13:04:46 521

原创 PTA-删除重复字符

注意:这段代码使用gets()函数读取用户输入,这在现代C语言编程中是不推荐的,因为gets()函数可能导致缓冲区溢出。建议使用fgets()函数代替。同时,这段代码仅对大写字母进行排序,对小写字母和其他非字母字符不进行处理。如果输入的字符串中没有大写字母,那么输出将是空字符串。

2023-11-26 12:59:50 1191

原创 PTA-找出不是两个数组共有的元素

输出的结果就是两个数组中不在对方数组中的唯一元素,且不会有重复的数字。

2023-11-26 12:57:41 997

原创 PTA-房号的玄机

这个程序的输出形式为 "level=xxxx,room=yyyy",其中 "xxxx" 是字符串s的前k个字符,"yyyy" 是字符串s中从第k个字符到最后一个字符的部分。

2023-11-26 12:55:29 436

原创 PTA-最长对称子串

这段代码使用了一个不再建议使用的函数gets(),因为它可能导致缓冲区溢出。建议使用fgets()代替。同时,这段代码没有考虑字符是大写或小写的情况,所以可能会产生一些不精确的结果。如果要更精确的结果,可以转换为小写(或大写)并进行比较。

2023-11-26 12:51:09 570

原创 PTA-数列求和-加强版

这个程序使用的是竖式乘法的思路,从高位到低位依次计算每一位的值,然后再从低位到高位输出结果。

2023-11-26 12:49:05 534

原创 PTA-在数组中查找指定元素

在search函数中,通过一个循环遍历整个数组,查找与指定元素相等的元素。如果找到,则返回该元素的索引;否则返回-1。综上所述,这段代码实现了在一个数组中搜索指定元素的功能,并返回该元素的索引或-1(如果元素不存在)。

2023-11-26 12:47:20 1042

原创 PTA-有理数加法

该代码通过定义结构体来表示分数,使用数组存储输入的两个分数,使用循环对分母进行最大公约数运算,并根据最大公约数运算的结果计算最简分数形式。然后根据输入的分数和计算结果,判断应该进行的运算类型,并输出结果。

2023-11-26 12:42:49 532

OS操作系统实验-实现FAT12文件系统(报告含源码)

| | | | 否 | 否 | | | :--: | :--: | :--: | :--: | :--: | ---- | **实现了哪些功能(已实现,并且测试正确的打勾)** [√] 打印当前目录下所有文件和目录名,类似于ls简易版 [√] 打印文件/目录的文件控制块 [√] 打印整个文件分配表 [√] 切换目录,类似于cd功能 [√] 创建文件、删除文件 [√] 创建目录、删除文件 #### 2.ls简易版 ##### 2.1 实现思路及伪代码 实现思路:使用`opendir`函数打开指定的路径,如果路径无效或者无法访问,`opendir`会返回NULL,此时打印错误信息并结束函数。然后使用`readdir`函数循环读取目录中的每一个条目,`readdir`函数在读取到目录末尾时会返回NULL,因此可以用它来控制循环的结束。在读取条目的过程中,如果条目的名称不是".“或”…“,就将其打印出来,”.“和”…"在Unix系统中分别代表当前目录和父目录,通常在列出目录内容时会被忽略。 ``` 定义函数 ls(path: 字符串)

2024-07-19

JavaWeb数据库应用实践-人才招聘管理系统设计

1. 实验目的 (1)加深对数据库系统、程序设计语言的理论知识的理解和应用水平。 (2)通过设计实际的数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力。 2. 系统简介 招聘管理系统是一款基于Web的应用程序,旨在帮助企业和组织管理招聘流程和人员信息。该系统的主要功能包括岗位管理、应聘者管理、部门管理、密码修改和安全退出。系统采用Java语言开发后端,结合Servlet和JSP技术实现,使用MySQL作为后端数据库存储数据,确保系统的稳定性和安全性。 3. 系统需求分析 3.1 数据字典 应聘者表: 列名 描述 studentId 应聘者编号 name 应聘者姓名 sex 应聘者性别 dormBuildId 应聘者部门 dormName 应聘者岗位 tel 应聘者电话 age 应聘者年龄 education 应聘者学历 major 应聘者专业 employ 应聘者录取 部门表: 列名 描述 dormBuildId 部门编号 dormBuildName 部门名称 detail 部门简介 dorm_num 部门招聘人数 岗位表: 列名

2024-07-19

C语言课程设计-猜单词小游戏

进入主菜单:输出菜单,用于显示若干个可选的功能选项。根据客户输入的选项来运行不同的功能,运行不同的函数   进入游戏功能:用户进行游戏。系统随机提取单词,并提示玩家输入字母进行猜测,并匹配单词是否正确,若正确,输出正确对应的单词,否则提示错误,若游戏结束,显示游戏统计信息   增,删,改功能:根据玩家输入的英文单词和对应的中文意思在数据库中进行增,删,改  查看功能:进入查看选项,可查看历史玩家记录排名   退出功能:退出游戏 进入主菜单:输出菜单,用于显示若干个可选的功能选项。根据客户输入的选项来运行不同的功能,运行不同的函数   进入游戏功能:用户进行游戏。系统随机提取单词,并提示玩家输入字母进行猜测,并匹配单词是否正确,若正确,输出正确对应的单词,否则提示错误,若游戏结束,显示游戏统计信息   增,删,改功能:根据玩家输入的英文单词和对应的中文意思在数据库中进行增,删,改  查看功能:进入查看选项,可查看历史玩家记录排名   退出功能:退出游戏  进入主菜单:输出菜单,用于显示若干个可选的功能选项。根据客户输入的选项来运行不同的功能,运行不同的函 

2024-06-28

数据结构课程设计(含源码)-停车场管理系统+家谱管理系统

1. 引言 数据结构课程设计不仅可以加深对课程内容的理解,并且可以通过实践进一步掌握程序设计的技能与方法,学会数据的组织方法和现实世界问题在计算机内部的表示方法,并针对问题的应用背景分析,选择最佳的数据结构和算法。立题的理论或实践依据可能是对学生所学知识的综合运用和实践能力的考察。设计一个停车场管理系统,能够实现车辆的到达、离开、排队等功能,并根据车辆停留时间计算应缴纳的停车费用。通过创新的设计和算法,提高系统的功能性和效率,使得停车场管理更加智能化和便捷化。通过设计一个家族关系管理系统的项目,可以让学生运用数据结构、算法和编程技巧等知识,实现一个具有一定复杂度和实用性的应用程序。拟创新点可能在于设计一个家族关系管理系统,该系统能够根据输入的信息自动计算成员的辈分、查找成员的兄弟和后代等功能。通过创新的设计和算法,提高了系统的功能和效率。总体而言,这个课程设计通过设计一个停车场管理系统的项目,旨在提供一个实践平台,让学生能够将所学的知识应用于实际项目中,锻炼解决问题的能力,并通过创新设计和实现提升综合素质。【问题描述】 汽车在停车场内按车辆到达时间的先后顺序依次由南向北排列(大门在最

2024-06-28

Java程序设计课程设计(含源码)-项目管理系统

1. 实验目的 设计并实现一个项目管理系统包含以下功能: a) 用户注册、登录;b) 项目信息的浏览、查找与增删改维护。其他说明:要求采用JDBC连接数据库界面可以选用Swing GUI技术或JSP技术。 设计并实现一个基于Java Swing的项目管理系统界面,其中包含了表格、按钮和数据库交互功能。通过该系统,用户可以进行项目的增加、删除、修改和查询操作。同时,界面采用了背景图片的显示,提升用户体验。通过该实验,掌握了Swing组件的使用、表格模型的构建、事件处理和与数据库的交互,为后续开发更复杂的图形界面应用奠定基础。 图形用户界面设计: 通过继承JFrame类,使用Swing组件构建了一个用户友好的图形界面,提供了直观的操作界面,使用户能够轻松进行项目管理操作。 事件处理与监听器: 通过为按钮添加事件监听器,实现了对用户操作的响应。例如,通过“增加”按钮触发的事件实现了项目的添加功能,通过“删除”按钮触发的事件实现了项目的删除功能。 数据库交互: 利用JDBC连接数据库,实现了从数据库加载所有项目数据的功能。此外,通过“增加”、“删除”和“修改”功能,对数据库进行了相应的更新操作

2024-06-28

汇编语言与接口技术实践课设(含源码)-秒表

1. 设计要求 基于 51 开发板,利用键盘作为按键输入,将数码管作为显示输出,实现电子秒表。 功能要求: (1)计时精度达到百分之一秒; (2)能按键记录下5次时间并通过按键回看 (3)设置时间,实现倒计时,时间到,数码管闪烁 10 次,并激发蜂鸣器,可通过按键解除。 2. 设计思路 实现过程: 代码实现了一个简单的单片机程序,其中包含了数字显示、按键检测、正/反倒计时、数据存储、按键判断、复位功能、显示控制和延时等基础功能。通过设置程序结构、定义变量和寄存器、使用标签以及相关指令,实现了LED灯阵列的数字显示、按键状态的检测、倒计时功能、数据存储、按键判断和跳转、系统复位、LED灯的显示控制以及延时等功能。整体而言,该代码是一个综合性的单片机程序,展现了在嵌入式系统中常见的基础操作和功能。 程序结构: ORG 0000H: 设置程序的起始地址为0000H。 LJMP MAIN: 无条件跳转到MAIN标签,即程序的主入口。 ORG 0100H: 设置程序的代码段起始地址为0100H。 主要变量和寄存器说明: R0, R1, R2, R3, R4, R5, R6, R7: 寄存器

2024-06-28

汇编语言与接口技术实验报告(含源码)-算术运算程序设计

一、 实验要求 实验目的: (1)熟练掌握算术运算汇编指令的使用 (2)理解有符号数和无符号数运算 (3)熟练掌握简单程序设计的基本方法 (4)熟练掌握程序的调试方法 实验内容: 1.编程实现两个数:#998877H 和 #778899H 的加法运算。 2.编程实现两个数:#998877H 和 #778899H 的减法运算。 二、 实验设计 1.整体思路 ※ 两个数的加法是先从后俩位加法开始计算,逐渐向前计算,同时产生的进位Cy也要一起参与下俩位的加法。 ※ 两个数的减法同加法一样,只是公式ADDC换成SUBB。 ※ 总体设计思路是分别从NUM1和NUM2中取出数据,进行多次加法操作,并将结果存储在R0、R1、R2中。1、定义数据: 在地址NUM1处定义一个2字节的数据,值为9988H。 在地址NUM1处定义一个1字节的数据,值为77H。 在地址NUM2处定义一个3字节的数据,值分别为77H、88H、99H。 2、加法操作: 使用MOV指令将NUM2的地址传给DPTR寄存器,准备从NUM2中取数据。 使用MOV指令将立即数02H传给累加器A,表示接下来要取两个字节的数

2024-06-28

汇编语言与接口技术实验报告(含源码)-子程序设计

一、 实验要求 实验目的: (1)熟练掌握算术运算汇编指令的使用 (2)熟练掌握子程序设计的基本方法 (3)熟练掌握程序的调试方法 实验内容: 1.编程实现两个数:#8888H 和 #79H 的乘除运算。 2.结合实验1的代码,将加减乘除四则运算写成四个子程序,注意现场保护。 二、 实验设计 1.整体思路 ※ 乘法:将被乘数循环累加至乘数次,就是结果。 ※ 除法:将被除数循环累减至除数次,就是结果 用户注释和标签: 在代码中包括了注释和标签,这有助于提高代码的可读性,帮助其他开发人员理解代码的作用。 数据初始化: 使用NUM1和NUM2标签来初始化数据,包括字、字节和一组字节。这些数据将在后续的计算中使用。 模块化设计: 代码被分成多个子例程(ADD_、SUB_、MUL_、DIV_),每个子例程执行不同的数学运算。这种模块化设计提高了代码的可维护性和可读性。 寄存器使用: 使用寄存器(R0、R1、R2、R3、R6、R7)来暂存和处理数据。这有助于进行运算、存储中间结果和控制流程。 循环控制: 代码使用DJNZ指令来控制循环。这是一种有效的方式来重复执行一段代码,

2024-06-28

汇编语言与接口技术实验报告(含源码)-循环程序设计

一、 实验要求 实验目的: (1)熟练掌握循环程序设计的基本方法。 (2)熟练掌握单片机外部存储空间的访问方法。 实验内容: (1)向起始地址为 SRC 的片内存储中,顺序写入 NUM 个单字节数(数值不限)并以$字符(ASCII码)结尾。 (2)从 SRC 中,向起始地址为 DEST 的片外存储中,逆序拷贝之前存储的 UM 个单字节数并以$字符结尾。 (3)将上述两个操作写成两个子程序。 二、 实验设计 1.整体思路 该段代码是一个简单的程序,主要目的是将数据从片内RAM存储空间(由SRC指针定义)复制到片外RAM存储空间(由DEST指针定义)。 程序流程如下: 1、程序开始执行,从地址0000H处开始执行代码。 2、跳转到Main程序段,定义了SRC、DEST和NUM三个变量。SRC是一个数据指针,指向片内RAM中的数据源;DEST是一个外部数据指针,指向片外RAM中的目标存储位置;NUM是一个数据变量,存储要复制的数据的字节数。 3、清空累加器A,为数据复制做准备。 4、将DEST的地址存入数据指针DPTR,以便将数据复制到外部RAM。 5、将SRC的地址存入寄存器R0,以便从

2024-06-28

汇编语言与接口技术实验报告(含源码)-冒泡排序算法的实现

一、 实验要求 实验目的: (1)学习使用汇编语言实现算法设计。 (2)熟练掌握单片机外部存储空间的访问方法。 实验内容: (1)用汇编实现冒泡排序算法。 (2)在实验三的代码基础上,利用冒泡排序将 DEST 中数据从小到大重新排序。 (3)将冒泡排序算法写成子程序。 二、 实验设计 1.整体思路 1、程序开始时,将数据存储器DEST的数据复制到Buffer数据区,然后调用SORT子程序进行排序。 2、SORT子程序使用冒泡排序算法,通过多次比较和交换相邻元素的位置,将数据按照从小到大的顺序排列。 3、排序完成后,程序返回主程序,然后再次调用SORT子程序,将数据按照从大到小的顺序排列。 4、最终,程序停留在排序后的数据上,等待观察排序结果。3.主要模块设计思路及分析 排序子程序(SORT): SORT子程序使用冒泡排序算法对数据进行排序。这种算法通过多次比较和交换相邻元素的位置,将数据按照从小到大的顺序排列。在每一次比较中,程序会比较两个相邻元素的大小,如果前一个元素大于后一个元素,则会将它们的位置进行交换。这个过程会重复进行,直到所有元素都按照从小到大的顺序排列好。 在具体的实现

2024-06-28

汇编语言与接口技术实验报告(含源码)-跑马灯

一、 实验要求 实验目的: (1)掌握定时器中断的使用 (2)熟悉单片机开发板的使用 实验内容: 1.在单片机开发板的LED灯D1~D8上实现跑马灯。LED与单片机引脚连线电路如下图: 2.单片机芯片选择AT89C51,晶振频率设为12MHz,操作参考单片机开发板使用说明。 3.跑马灯点亮的时间间隔为1秒。 4.分别用定时器的模式1和模式2实现。 二、 实验设计 1.整体思路 ①方法1: 1、初始化: 设置起始地址为0000H。 将A寄存器的值设为00000000B,并将其移动到P0端口。 将A寄存器的值设为11111110B,并将其移动到R1寄存器。 2、主循环: 定义一个标签RESET,并在RESET处跳转到标签MAIN。 设置一个标签MAIN,然后进行一些初始化工作: 将TMOD寄存器的值设为01H。 调用一个子程序PT0M0,该子程序用于配置定时器0。 3、定时器0中断子程序PT0M0: 将TL0寄存器的值设为0F0H。 将TH0寄存器的值设为0D8H。 设置ET0和EA寄存器。 启动定时器TR0。 返回到主程序。 4、中断服务程序ITOP: 将TL0寄存器的

2024-06-28

汇编语言与接口技术实验报告(含源码)-电子计数器

一、 实验要求 实验目的: (1)、掌握数码管显示方法 (2)、掌握软件延时方法 (3)、掌握键盘扫描及去抖动方法 实验内容: 1、在单片机开发板上实现电子计数器。在 CL3641AH 数码管上显示当前计数,用按键 K1K2控制数字增减。 2、参考实验五附件中的电路图,实现数码管的片选和点亮、按键的轮询。 3、要求使用三个数码管 LED1、LED2、LED3 分别显示计数的个、十、百位。 4、按下 K1,计数器加 1,按下 K2,计数器减 1。长按则连续加减。 二、 实验设计 1.整体思路 首先,初始化寄存器R0、R1和R2为0,它们分别代表了百位、十位和个位。然后,通过DPTR指针访问一个预设的查找表(TABLE),查找表中存储的是0-9每个数字对应的7段LED显示器的编码。接下来,通过一个循环,分别将R0、R1和R2的值作为索引去查找表,得到对应的LED编码,然后通过P0口将编码输出到7段LED显示器上,实现数字的显示。在显示完一个数字后,程序会延迟5ms,然后清空P0和P2口,为下一次显示做准备。程序会检测P3口的值,如果P3.1或P3.0发生变化,会调用增加或减少函数。增加

2024-06-28

汇编语言与接口技术实验报告(含源码)-矩阵按键

一、 实验要求 实验目的: (1)掌握数码.管显示方法 (2)掌握.软件延时方法 (3)掌握键盘扫描及.去抖动方法 实验内容: (1)利用单片机.开发板的矩阵键盘实现个人学号后 8 位的输入和显示。 (2)利用.矩阵键盘S1~S10 输入数字 1~0。 (3)利用数码管 LED8~LED1 从左到.右显示8位学号 二、 实验设计 1.整体思路 通过按键扫描,判断按.下的按键所在行和列,然后根据按下的行和列来控制LED点阵的亮灭。首先进行初始化,将各个寄存器和IO口设置初始状态,并将A寄存器初始化为0AH。然后进入主循环,依次.扫描各个按键,如果检测到按键按下,则根据按下的行.和列来点亮对应的LED。如果按键释放,则熄灭对应的LED。同时,程序还加入了去抖动和延时等功能,以提高程序的可靠.性和稳定性。初始化模块:将各个寄存器和IO口设置初始状态,并将A寄存器初始化为0AH。 LED控制模块:根据按键扫.描的结果来控制LED点阵的亮灭。每次按键按下后,程序会根据按下的行和列来点亮对应的LED。 按键扫描模块:程序会先清空所有的按键标志位,然后依次将各个按键电平设置为低电平,检测是否有

2024-06-28

汇编语言与单片机设计课设报告(含源码)-单总线温度采集

一、 实验要求 实验目的: (1)掌握数码管的使用方式 (2)掌握DS18B20温度传感器的工作原理 (3)掌握单总线通信方式实现MCU与DS18B20数据传输 实验内容: (1) 学习DS18B20温度传感器的单总线传输机制,通过单片机MCU的I/O实现温度采集,并将数据显示在数码管上。 二、 实验设计 1.整体思路 该程序主要实现的功能是读取温度传感器的温度值,并在数码管上显示。首先,需要将温度传感器正确地插入到温度传感器接口处。然后,通过单片机读取温度传感器的数据,经过处理后将结果显示在数码管上。3.主要模块设计思路及分析 延时函数(delay):此函数用于实现延时功能,输入参数为延时时间,单位为毫秒。通过while循环实现延时。 数据处理函数(datapros):此函数用于读取温度值并转换为适合在数码管上显示的数字。首先判断温度值的正负,然后根据正负情况对数据进行处理,最后将数据显示在数码管上。 数码管显示函数(DisplayData):此函数用于控制数码管的显示。通过定义一个字符数组,将处理后的温度值存储在数组中,然后通过调用相关的显示函数将数据显示在数码管上。

2024-06-28

汇编语言与单片机设计课设报告(含源码)-AD转换及PWM控制

汇编语言与单片机设计课设——AD转换及PWM控制 实验目的: (1)掌握SPI总线的使用方式 (2)掌握xpt2046 AD转换芯片的工作原理 (3)掌握SPI总线方式实现基于xpt2046的AD转换 (4)掌握PWM控制功率的方式 实验内容: 学习xpt2046 AD转换芯片的工作原理,利用SPI总线实现基于该芯片的AD转换,调节滑动变阻器将AD转换的结果显示在数码管上,同时利用PWM控制方式实现LED灯的亮度联动,当AD结果增大时,亮度增加,反之,亮度减小。 1.整体思路 初始化: 定义相关的IO口和数据类型。 SPI通信: 实现SPI协议的写和读操作,用于与XPT2046通信。 读取AD数据: 通过SPI通信,发送命令并读取XPT2046返回的AD转换数据。 显示数据: 将读取到的数据显示到数码管上。 一、SPI_Write函数: 通过循环将8位数据一位一位地发送到DIN线上。 利用CLK的上升沿将数据放置到DIN上。 二、SPI_Read函数: 通过循环从DOUT线上一位一位地读取12位数据。 利用CLK的下降沿将数据从DOUT读取进来。 三、Read_AD_Data函数

2024-06-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除