当前位置:文档之家› 51汇编程序练习题1

51汇编程序练习题1

51汇编程序练习题1
51汇编程序练习题1

单片机汇编程序设计练习

一、存储器之间的数据传送

1、编程实现将单片机内部RAM60H开始的连续32个单元置为FFH。

2、编程实现将内部RAM30H开始的连续16个数传送到内部RAM50H开始的连续单元中。

3、编程实现将单片机外部RAM2000H为首地址的数据块传送到单片机内部RAM30H开始的单元中,数据块的长度为32个字节。

4、编程实现将单片机内部RAM30H为首地址的数据块传送到外部RAM2000H 开始的单元中,数据块的长度存放于内部RAM的20H单元。

5、编程实现将单片机外部RAM2000H为首地址的数据块传送到单片机内部RAM30H开始的单元中,直到数据内容为0DH时停止传送。

6、编程实现将ROM1000H地址的内容传送到内部RAM的25H单元。

7、编程实现将ROM2000H开始的连续10个地址的内容传送到内部RAM的25H 开始的单元。

8、编程实现将ROM1000H开始的连续100个地址的内容传送到外部RAM2000H 开始的连续单元中。

二、查表程序设计

1、编写查表程序,要查表的数据存放在R7中,其范围为0~9。编程查其平方值,并存放于40H。

2、编写查表程序,要查表的数据存放在R7中,其范围为0~9。编程查其立方值,并存放于R6。

3、单片机外部ROM TAB1地址开始存放一组ASCII码表,试用查表方法,将R2的内容(范围为0~F)转换为与其对应

的ASCII码,并从P1口输出。

4、使用8051的P1口作为段控驱动共阳

LED数码管,硬件连接如图。

编程实现将8051 R7单元内容(在

00H-09H之间)显示在数码管上。00H-09H

的共阳字形代码如下表所示。

04H 05H 06H 07H 08H 09H

三、多字节无符号数的加减法

1、编一个三字节无符号数的减法程序。被减数存放在内部RAM的30H开始的连续三个单元中(高位在高地址),减数存放在内部RAM的40H开始的连续三个单元中(高位在高地址),请将差存放在内部RAM的50H开始的连续三个单元中(高位在高地址),借位存放在01H位地址

2、编一个四字节无符号数的加法程序。被加数存放在内部RAM的25H开始的连续四个单元中(高位在高地址),加数存放在内部RAM的55H开始的连续四个单元中(高位在高地址),请将和存放在内部RAM的25H开始的连续四个单元中(高位在高地址),进位存放29H字节地址中。

3、编一个N字节无符号数的加法程序。被加数存放在内部RAM的符号地址AAA 开始的连续单元中(高位在低地址),加数存放在内部RAM的符号地址BBB开始的连续单元中(高位在低地址),请将和存放在内部RAM的AAA开始的连续单元中,进位存放符号地址JWEI字节。

四、多路散转

1、请编程实现根据A的值进行多路散转的程序。即当A=0时,调用PRO0子程序;当A=1时,调用PRO1子程序……,当A=10时,调用PRO10子程序。

2、请编程实现根据R7 的值进行128路散转的程序。即当(R7)=0时,调用CHULI0子程序;当(R7)=1时,调用CHULI1子程序……,当A=128时,调用CHULI128子程序。

五、软件定时程序设计

计算下面程序的延时时间:

1、MOV R6,#TIME

LOOP:NOP

NOP

DJNZ R6,LOOP

计算当TIME=0、1、2、255时的延时时间

2、MOV R7,#TIME1

LOOP0:MOV R6,#TIME2

LOOP1:NOP

NOP

DJNZ R6,LOOP1

DJNZ R7,LOOP0

六、数据检索程序设计

1、在内RAM20H~3FH地址的32个单元中,存放一批数据,试检索是否有与R0寄存器内容相等的数,若检索成功,将该数据地址存放在R1,否则将FFH 存放在R1中。

2、在内RAM20H~29H地址的10个单元中,存放一批数据,试检索是否含有立即数30H,若检索成功,将该数据地址存放在31H,否则将FFH存放在31H。

3、统计内RAM20H—4FH单元中内容为“0”的个数,并把结果存入50H单元。

七、极值查找

1、将内部RAM50H、51H单元两个无符号数中较大的数存入60H单元。

2、在内部RAM 40-4FH中存在16个无符号数,找出其中的最小数,存放到50H 单元。先画出程序框图,再编程。

3、内部RAM中有一个数据块,首地址为30H,长度存放在2BH单元,要求把其中的最大值找出,并放到以20H单元。、

4、内部RAM以30H为首地址的一个数据块,第一个数据为该数据长度。试求该数据的最大值,把结果放在内部RAM的70H单元中。画出程序流程图并编写程序。

*5、内部RAM20H开始存放一组有符号的数,数据个数存放在内部RAM1FH单元中,请编程统计其中大于0、等于0、小于0的数的个数,分别存放于70H、71H、72H。

*6、内部RAM20H开始存放一组有符号的数,数据个数存放在内部RAM1FH单元中,请编程将其中大于0、等于0、小于0的数分别存放于70H、60H、50H 开始的连续单元中。

51单片机实验报告94890

《单片机与接口技术》实验报告 信息工程学院 2016年9月

辽东学院信息技术学院 《单片机与接口技术》实验报告 姓名:王瑛 学号: 0913140319 班级: B1403 专业:网络工程 层次:本科 2016年9月

目录 实验题目:实验环境的初识、使用及调试方法(第一章) 实验题目:单片机工程初步实验(第二章) 实验题目:基本指令实验(第三章)4 实验题目:定时器/计数器实验(第五章)4 实验题目:中断实验(第六章)4 实验题目:输入接口实验(第八章)4 实验题目:I/O口扩展实验(第九章)4 实验题目:串行通信实验(第十一章)4 实验题目:A/D,D/A转换实验(第十七章)4

实验题目:实验环境的初识、使用及调试方法实验 实验类型:验证性实验课时: 1 时间:2016年10月24日 一、实验内容和要求 了解单片机的基础知识 了解51单片机的组成和工作方法 掌握项目工程的建立、编辑、编译和下载的过程方法 熟练单片机开发调试工具和方法 二、实验结果及分析 单片机最小系统的构成: Keil集成开发环境:

STC-ISP:

实验题目:单片机工程初步实验 实验类型:验证性实验课时: 1 时间:2016 年10 月24 日一、实验内容和要求 点亮一个LED小灯 程序下载到单片机中 二、实验结果及分析 1、点亮一个LED小灯 点亮LED小灯的程序: #include //包含特殊功能寄存器定义的头文件 sbit LED = P0^0; sbit ADDR0 = P1^0; //sbit必须小写,P必须大写 sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4; void main() { ENLED = 0; ADDR3 = 1; ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; LED = 0; //点亮小灯 while (1); //程序停止 } 2、程序下载 首先,我们要把硬件连接好,把板子插到我们的电脑上,打开设备管理器查看所使用的COM 口,如图所示:

51单片机20个实验-代码详细

第一章单片机系统板说明 一、概述 单片机实验开发系统是一种多功能、高配置、高品质的MCS-51单片机教学与开发设备。适用于大学本科单片机教学、课程设计和毕业设计以及电子设计比赛。 该系统采用模块化设计思想,减小了系统面积,同时增加了可靠性,使得单片机实验开发系统能满足从简单的数字电路实验到复杂的数字系统设计实验,并能一直延伸到综合电子设计等创新性实验项目。该系统采用集成稳压电源供电,使电源系统的稳定性大大提高,同时又具备完备的保护措施。为适应市场上多种单片机器件的应用,该系统采用“单片机板+外围扩展板”结构,通过更换不同外围扩展板,可实验不同的单片机功能,适应了各院校不同的教学需求。 二、单片机板简介 本实验系统因为自带了MCS-51单片机系统,因此没有配置其他单片机板,但可以根据教学需要随时配置。以单片机板为母板,并且有I/O接口引出,可以很方便的完成所有实验。因此构成单片机实验系统。 1、主要技术参数 (1)MSC-51单片机板 板上配有ATMEL公司的STC89C51芯片。 STC89C51资源:32个I/O口;封装DIP40。 STC89C51开发软件:KEIL C51。 2、MSC-51单片机结构 (1)单片机板中央放置一块可插拔的DIP封装的STC89C51芯片。 (2)单片机板左上侧有一个串口,用于下载程序。 (3)单片机板的四周是所有I/O引脚的插孔,旁边标有I/0引脚的脚引。 (4)单片机板与各个模块配合使用时,可形成—个完整的实验系统。 三、母板简介 主要技术参数 (1)实验系统电源 实验系统置了集成稳压电源,使整个电源具有短路保护、过流保护功能,提高了实验的稳定性。 主板的右上角为电源总开关,当把220V交流电源线插入主板后,打开电源开关,主板

51单片机实验课题集

51单片机实验课题设计要求 1.1课程设计的总体要求 本课程设计是在理论课程学习和软件设计的基础上,对51单片机硬件系统进行了解和研究,使学生更深入的掌握51单片机开发技术,培养学生面对实际课题,发现问题、分析问题和解决问题,提高学生的实验动手能力。设计根据实验大纲提供的题目要求,选择适当的课题,并通过课题资料收集、原理分析、理论计算、实际编程、系统调试、测试和故障排除,解决在实际设计中的问题,使设计系统能正常工作,有能力的同学可以超出题目要求任意发挥设计。 (1)基本要求: 根据课题要求,研究51单片机实验(如AT89S51_V1.4等)开发板或其它实验开发板的功能和实验样例,学习和掌握keil集成开发环境或Medwin集成开发环境,在此基础上仔细研究课题功能,重新设计实验所需要的电气原理图,编写相对应的应用程序,实现其功能,学生课题实验的优劣可以从以下几个标准衡量: 1.只会使用标准测试程序和资源实现课题部分功能; 2.使用标准测试程序及其他资源实现部分功能; 3.通过修改标准程序实验全部课题基本要求者; 4.完全自主编程实现全部课题基本要求者; 5.软硬件技术应用自如,超越课题要求者。 (2)发挥要求: 在完成本人选题的基本要求前题下,完成发挥部分要求,并具有新内容的自主 发挥和创新,并取得良好效果。 (3)分类标准: 1.完成了实验(1)的全部要求,并熟练运用开发工具。 2.在完成实验(2)的部分要求,并具有创新内容。 1.2分组和实验注意事项 本实验提供的实验课题根据教学要求组成设计小组,进行分工合作,实验工作要细心认真、防止意外,有问题及时向指导老师反映,同学间可以通过研讨、互相学习解决实验中的问题。 每组同学实验过程包括: (1)听课,了解实验方法 (2)调研和了解课题,进行课题的方案选择 (3)学习开发工具,包括实验板,编程软件,仿真软件等 (4)学习汇编语言以及C语言在51编程上的使用 (5)学习系统测试、调试和故障排除,功能实现 (6)自主实验,包括课题实现和相关资料整理提交 1.3报告要求 (3)基本要求:写明实验内容和方法,画出所用部分资源的原理图等。 (4)提高要求:说明选题依据,资源的选择和该资源在设计中的功能说明,原理图设计,程序结构框图和说明,操作使用说明。 (5)发挥部分:提出设计思想,设计原理图,提供源程序,说明创新点。提供程序

51单片机实验报告

51单片机实验报告

实验一 点亮流水灯 实验现象 Led灯交替亮,间隔大约10ms。实验代码 #include void Delay10ms(unsigned int c); void main() { while(1) { P0 = 0x00; Delay10ms(50); P0 = 0xff; Delay10ms(50); } }

void Delay10ms(unsigned int c) { unsigned char a, b; for (;c>0;c--) { for (b=38;b>0;b--) { for (a=130;a>0;a--); } } } 实验原理 While(1)表示一直循环。 循环体首先将P0的所有位都置于零,然后延时约50*10=500ms,接着P0位全置于1,于是LED全亮了。接着循环,直至关掉电源。延迟函数是通过多个for循环实现的。 实验2 流水灯(不运用库函数) 实验现象 起初led只有最右面的那一个不亮,半秒之后从右数第二个led

也不亮了,直到最后一个也熄灭,然后led除最后一个都亮,接着上述过程 #include #include void Delay10ms(unsigned int c); main() { unsigned char LED; LED = 0xfe; while (1) { P0 = LED; Delay10ms(50); LED = LED << 1; if (P0 == 0x00) { LED = 0xfe; } } } void Delay10ms(unsigned int c)

51单片机20个实验-代码详细

51单片机20个实验-代码详细

第一章单片机系统板说明 一、概述 单片机实验开发系统是一种多功能、高配置、高品质的MCS-51单片机教学与开发设备。适用于大学本科单片机教学、课程设计和毕业设计以及电子设计比赛。 该系统采用模块化设计思想,减小了系统面积,同时增加了可靠性,使得单片机实验开发系统能满足从简单的数字电路实验到复杂的数字系统设计实验,并能一直延伸到综合电子设计等创新性实验项目。该系统采用集成稳压电源供电,使电源系统的稳定性大大提高,同时又具备完备的保护措施。为适应市场上多种单片机器件的应用,该系统采用“单片机板+外围扩展板”结构,通过更换不同外围扩展板,可实验不同的单片机功能,适应了各院校不同的教学需求。 二、单片机板简介 本实验系统因为自带了MCS-51单片机系统,因此没有配置其他单片机板,但可以根据教学需要随时配置。以单片机板为母板,并且有I/O 接口引出,可以很方便的完成所有实验。因此构

成单片机实验系统。 1、主要技术参数 (1)MSC-51单片机板 板上配有ATMEL公司的STC89C51芯片。 STC89C51资源:32个I/O口;封装DIP40。 STC89C51开发软件:KEIL C51。 2、MSC-51单片机结构 (1)单片机板中央放置一块可插拔的DIP封装的STC89C51芯片。 (2)单片机板左上侧有一个串口,用于下载程序。 (3)单片机板的四周是所有I/O引脚的插孔,旁边标有I/0引脚的脚引。 (4)单片机板与各个模块配合使用时,可形成—个完整的实验系统。 三、母板简介 主要技术参数 (1)实验系统电源 实验系统内置了集成稳压电源,使整个电源具有短路保护、过流保护功能,提高了实验的稳定性。

51单片机实验报告

实验一数据传送实验 实验内容: 将8031内部RAM 40H—4FH单元置初值A0H—AFH,然后将片内RAM 40H—4FH单元中的数据传送到片内RAM 50H—5FH单元。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。 源程序清单: ORG 0000H RESET:AJMP MAIN ORG 003FH MAIN:MOV R0,#40H MOV R2,#10H MOV A,#0A0H A1:MOV @R0,A INC R0 INC A DJNZ R2, A1 MOV R1,#40H MOV R0, #50H MOV R2, #10H A3: MOV A, @R1 MOV @R0, A INC R0 INC R1 DJNZ R2, A3 LJMP 0000H 思考题: 1. 按照实验内容补全程序。 2. CPU 对8031内部RAM存储器有哪些寻址方式? 直接寻址,立即寻址,寄存器寻址,寄存器间接寻址。 3. 执行程序后下列各单元的内容是什么? 内部RAM 40H~4FH ___0A0H~0AFH______________________ 内部RAM 50H~5FH___0A0H~0AFH_______________________ 实验二多字节十进制加法实验

实验内容: 多字节十进制加法。加数首地址由R0 指出,被加数和结果的存储单元首地址由R1指出,字节数由R2 指出。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。源程序清单:ORG 0000H RESET: AJMP MAIN ORG 0100H MAIN: MOV SP, #60H MOV R0, #31H MOV @R0, #22H DEC R0 MOV @R0, #33H MOV R1, #21H MOV @R1, #44H DEC R1 MOV @R1, #55H MOV R2, #02H ACALL DACN HERE: AJMP HERE DACN: CLR C DAL: MOV A, @R0 ADDC A, @R1 DA A MOV @R1, A INC R0 INC R1 DJNZ R2,DAL CLR A MOV ACC.0 , C RET 思考题: 1. 按照实验内容补全程序。 2. 加数单元、被加数单元和结果单元的地址和内容为? 3130H,2120H,6688H 3. 如何检查双字节相加的最高位溢出? 看psw.3 的溢出标志位ov=1 则溢出 4. 改变加数和被加数,测试程序的执行结果。 实验三数据排序实验

51系列单片机实验系统指导书

51系列单片机实验系统指导书 目录 前言 第1章下载式实验系统的使用方法 1.1 软件安装与启动 1.1.1 1.1.2 文件操作 1.1.3 建立工程项目(汇编) 1.1.4 调试程序 第2章软件实验 2.1 数据传送实验 2.2 清0实验 2.3 数据转换实验 2.4 拆字、拼字实验 2.5 散转程序实验 2.6 时钟实验 2.7 计数器实验 2.8 无符号十进制数加法实验 2.9 数据排序实验 2.10 单字节BCD码除法实验 2.11 查找相同个数实验 第3章硬件实验 3.1 P1口彩灯控制实验 3.2 数码管显示实验 3.3 顺序控制实验 3.4 8031和8155接口扩展与数码管显示实验 3.5 键盘、数码管显示综合实验 3.6 A/D转换实验 3.7 D/A转换实验 3.8 A/D与D/A转换综合实验 第4章89C51系列实验 4.1 顺序控制实验 4.2 数码管显示实验 4.3 键盘、数码管显示综合实验

4.4 A/D转换实验 4.5 D/A转换实验 前言 目前,51系列单片机在我国的各行各业得到了广泛应用,各大专院校、职业培训学校,均开设了单片机原理与应用方面的课程,这是一门技术性和实践性很强的学科,必须通过一系列的软硬件实验、理论联系实际,才能学好、学懂,取得较好的学习效果。为了适应这一学习上的要求,国外厂家开发了多种实验、开发系统,但普遍存在集成度高,严重脱离实际的情况。作者集多年理论教学、实验教学、产品开发的经验,完全摒弃了以前各种实验设备的那种思维模式,重新开发出一种实验、开发系统,专从产品开发角度出发,安排各种硬件实验,并且做到每一个实验就是一个小产品,每个实验就是一个产品开发的过程,从单片机最小系统开始,逐步扩展功能,从单一功能到功能多样,从小到大,从简单到复杂,自成系统给人一种完整的学习思路,让学习者概念清晰、直观明了、易学易懂,特别是加强了硬件故障排除方法的指导,解决了学习者中普遍对硬件故障排除难的问题;其次是加强了软件调试的指导,提供了一些软件调试方法和步骤,帮助初学者很快入门,帮助熟练者更加深化。 本实验系统采用模块式设计,为各学校单片机的课程设计、学生的毕业设计、提供了硬件设备,该模块可反复使用、任意组合、方便经济,解决了各单位研究与实验经费不足的问题。特别在开发产品中更加适用,一个产品谈妥后厂家往往要求几天之拿出产品样机,你可用此系统很快拼装成一个产品样机,供编程人员仿真,同时进行印制板设计。若出现问题,硬件可及时修改、添加,一切开发成功后,再作印制板,一次成功,减少经费损失,缩短了开发周期,为产品开发提供了方便。 本实验指导书分四章:第1章,下载式实验系统的使用;第2章,软件实验;第3章,硬件实验;第4章,89C51单片机实验,特别第4章完全讲解的是一个产品开发的全过程,力求使学习者获得更大的收益。

51单片机PWM实验

假如说,第一个灯肯定比第二个灯亮的话,可以直接把8个LED灯的限流电阻弄成不同阻值的。就像楼上说的那样。 但如果想随便变换不同的灯都能有不同的亮度话,硬件电路可以不变,限流电阻都一样。可以在程序里这样写: 首先,例如你要最亮的灯先点亮,隔几十微秒后点亮第二个灯,再相隔同样时间点亮第三个灯……依次类推间隔一定时间点亮八个灯。但间隔时间不要太大,超过十几毫秒就不行了。 然后再间隔相同的时间一次性把灯全关了,再间隔几十微秒回到上面的状态依次点亮灯。……一直这样循环。 这样的话因为人的视力有一定的滞回效果,只要间隔时间不大,你就能看到八个灯不是闪的,而是同时亮,但亮度又不一样。这是单片机设计中,PWM控制的思路。 LED PWM调光C程序 #include<> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 sbit LED1 = P2^0; sbit LED = P2^1; //定义LED灯,通过LED显示调光效果 sbit LED2 = P2^2; unsigned char CYCLE; //定义周期该数字X基准定时时间如果是10 则周期是10 x unsigned char PWM_ON ;//定义高电平时间 /******************************************************************/ /* 延时函数&nbs/******************************************************************/ void delay(unsigned int cnt) { while(--cnt); } /******************************************************************/ /* 主函数*/ /******************************************************************/

51单片机实验指导书

51系列单片机原理与应用实验

目录 实验一交通灯控制实验 (4) 实验二现实人体视觉暂留特性测试实验 (7) 实验三实施时钟制作实验 (9) 实验四简易电子琴制作实验 (10) 实验五EEPROM应用—数字密码锁 (13) 实验六综合实验:教学板自检程序设计 (15) 实验七数据采集—火灾报警装置的软硬件设计 (17) 附录一实验教学板 (17) 附录二实验用软件使用说明 (18)

实验须知 一、预习要求 1.实验前认真阅读实验指导书的相关内容,明确实验目的和实验任务。 2.实验前应做好预习报告,在报告中,要求画出所设计的实验电路原理图、程序流程图,编写好程序,并对程序加以注释,还要拟订好实验步骤。 二、实验要求 1.按实验中心安排的时间到指定实验室上实验课,不要迟到、缺席。有特殊原因不能在原安排时间来实验时,须提前一天通知实验中心负责教师。 2.认真完成每次实验的各项任务,实验结果要请指导教师检查。教师对实验内容提问,并对完成者进行记录。 3.爱护设备,保持清洁,不得在实验室内大声喧哗,不要将食物带入实验室,不擅自更换设备。 4.在实验箱(板)通电状态下,不要用手随意触摸电路板上除按键和开关以外的芯片等其它元器件。,严禁带电操作,即所有接线、改线和拆线操作均应在不带电的状态下进行。 5.实验中若发生异常情况应立即切断电源,并向指导教师报告,检查原因,避免再次发生类似情况。 6.实验完毕,请整理好实验设备后再离开实验室。 三、实验报告要求 实验报告必须使用实验报告专用纸,书写要工整、清楚,并在下一次实验时交给指导教师。实验报告应包括以下内容: 1.实验名称、实验人姓名、学号、班级、同组人姓名。 2.实验目的、任务(内容)。 3.各任务程序流程图、自编程序清单,对程序须给出适量注释(例如:变量和

51单片机课程设计实验报告

51单片机课程设计报告 学院: 专业班级: 姓名: 指导教师: 设计时间:

51单片机课程设计 一、设计任务与要求 1.任务:制作并调试51单片机学习板 2.要求: (1)了解并能识别学习板上的各种元器件,会读元器件标示; (2)会看电路原理图; (3)制作51单片机学习板; (4)学会使用Keil C软件下载调试程序; 用调试程序将51单片机学习板调试成功。 二、总原理图及元器件清单 1.总原理图 2.元件清单 三、模块电路分析 1. 最小系统: 单片机最小系统电路分为振荡电路和复位电路, 振荡电路选用12MHz 高精度晶振, 振荡电容选用22p和30p 独石电容;

图 1 图 2 复位电路使用RC 电路,使用普通的电解电容与金属膜电阻即可; 图 3 当单片机上电瞬间由于电容电压不能突变会使电容两边的电位相同,此时RST 为高电平,之后随着时间推移电源负极通过电阻对电容放电,放完电时RST 为低电平。正常工作为低电平,高电平复位。 2. 显示模块: 分析发光二极管显示电路: 图 4 发光二极管显示电路分析:它是半导体二极管的一种,可以把电能转化成光能,常简写为

LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,产生自发辐射的荧光。图中一共有五个发光二极管 其中一个为电源指示灯,当学习板通电时会发光以指示状态。其余四个为功能状态指示灯,实际作用与学习板有关 分析数码管显示电路 图 5 数码管显示电路分析:数码管按段数分为七段数码管和八段数码管,图中所用为八段数码管(比七段管多了一个小数点显示位),按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管.共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。数码管主要用来显示经电路板处理后的程序的运行结果。图中使用了八个八段数码管,可以显示八个0-15的数字。使用数码管可以直观的得到程序运行所显示的结果.也可以显示预置在学习板上的程序,主要通过16个开关来控制。 四、硬件调试 1、是否短路 用万用表检查P2两端是短路。电阻为0,则短路,电阻为一适值,电路正常。 2、焊接顺序 焊接的顺序很重要,按功能划分的器件进行焊接,顺序是功能部件的焊接--调试--另一功能部件的焊接,这样容易找到问题的所在。 3、器件功能 1)检查原理图连接是否正确 2)检查原理图与PCB图是否一致 3)检查原理图与器件的DA TASHEET上引脚是否一致 4)用万用表检查是否有虚焊,引脚短路现象 5)查询器件的DA TASHEET,分析一下时序是否一致,同时分析一下命令字是否正确 6)通过示波器对芯片各个引脚进行检查,检查地址线是否有信号的 7)飞线。用别的的口线进行控制,看看能不能对其进行正常操作,多试验,

51单片机实验指导书

实验一、80C51存储器数据传输实验: 1、实验目的: 1)熟悉嵌入式交叉开发环境,结合简单的应用实例,完成工程的建立、应用程序的编写,并进行编译、调试,观察相关寄存器及存储空间的使用情况。 2)熟悉51单片机的开发环境Keil C51,掌握80C51单片机内部数据存储器、外部数据存储器的数据传送特点和应用。 2、实验内容: 第三章思考与练习(p87),从12、14、15、16中任选2题进行实验验证 要求:回答题目中问题,并列写出程序执行完后所涉及的各寄存器的值。 实验二、80C51汇编语言编程实验: 1、实验目的: 1)熟悉80C51单片微机汇编语言设计及编程技巧。 2)掌握逻辑运算程序的设计方法。 3)掌握多字节无符号十进制数加、减法程序的设计。 2、实验内容: 1)逻辑运算 设:A=63H ,B=82H ,C=C5H ,D=36H ,根据下列逻辑运算式,编写程序计算运算结果。 Y =A?B ?C ????????????????D +A ???????? 2)十进制加、减运算 286729 + 652430 -752196 = ? 在8051片内数据存储器的20H~22H 中放入3字节被加数(低位在先)、23H~25H 放入加数(低位在先)、26~28H 放入减数,结果存入29H~2BH 单元(低位在先)。 附:实验二参考例程 1)逻辑运算: ORG 0000H AJMP MAIN ORG 0080H MAIN: M OV A, #63H ;将A 值给累加器A MOV R0, #36H ;将D 值给R0 ORL A, R0 ;将A 与D 逻辑或,即A+D 存入累加器A CPL A ;求A +D ???????? MOV R1, A ;将A +D ????????存入R1 MOV A, #82H ;将B 值给累加器A MOV R0, #0C5H ;将C 值给R0 ANL A, R0 ;B 与C 逻辑与,结果存入累加器A CPL A ;求反,即B ?C ?????? MOV R0, #63H ;将A 值存入RO XRL A, R0 ;A?B ?C ??????,存入累加器A CPL A ;A?B ?C ??????????????? ANL A, R1 ;A?B ?C ????????????????D +A ???????? END

51单片机实验-实验二 P1口输入、输出实验

实验二 P1口输入、输出实验 一、实验目的 学习Pl口的使用方法。 学习延时子程序的编写和使用。 进一步熟悉星研Star16L仿真器系统的操作,和EL-Ⅱ型通用接口板实验电路结构,学习使用PROTEUS仿真软件实现单片机的虚拟仿真。掌握虚拟仿真与实际系统仿真的有机衔接。 二、实验仪器和设备 PC机、星研Star16L仿真器系统+仿真头PODPH51(DIP)、EL-Ⅱ型通用接口板实验电路,PROTEUS仿真软件。 三、实验内容 1)P1口做输出口,经过74LS04反相器接八只发光二极管,编写程序,使发光二极管循环点亮。 2)(选作)P1口既做输入又做输出,在P1.0~P1.3口接四个平推开关,通过开关的不同位置向P1.0~P1.3输入不同的状态,然后利用输入指令读取所设开关状态,为验证输入结果的正确与否,将它们输出到P1.4~P1.7,经过74LS04反相器驱动发光二极管。四、实验结果 1)循环点亮八只发光二极管。取P1.0口接出第一个二极管,以此类推,第八个接P1.7口。Proteus 仿真图 ①循环左移,即从第一个二极管开始点亮到第八个二极管 实验程序:

ORG 0000H START:MOV R2,#8 MOV A,#01H ;先让第一个发光二极管点亮 LOOP: MOV P1,A ;从P1口输出到发光二极管 LCALL DELAY RL A ;循环左移(从第一个发光二极管开始一直往下一个二极管)DJNZ R2,LOOP ;判断移动是否超过8位,未超过则继续循环 LJMP START ;循环发光 DELAY:MOV R5,#5 ;延时0.5秒子程序 DEL1: MOV R6,#200 DEL2: MOV R7,#126 DEL3: DJNZ R7,DEL3 DJNZ R6,DEL2 DJNZ R5,DEL1 RET END 仿真结果:发光二极管从D1开始发光,依次往下到D8,然后循环这一过程。 实验结果:发光二极管从第一个开始发光,依次往左到第八个,然后循环这一过程。 ②循环右移,即从第八个二极管开始放光,依次到第一个。 实验程序: ORG 0000H START:MOV R2,#8 MOV A,#80H ;先让第八个发光二极管点亮 LOOP: MOV P1,A ;从P1口输出到发光二极管 LCALL DELAY RR A ;循环右移(从第八个发光二极管开始一直往前一个二极管) DJNZ R2,LOOP ;判断移动是否超过8位,未超过则继续循环 LJMP START ;循环发光 DELAY:MOV R5,#5 ;延时0.5秒子程序 DEL1: MOV R6,#200 DEL2: MOV R7,#126 DEL3: DJNZ R7,DEL3 DJNZ R6,DEL2 DJNZ R5,DEL1 RET END 仿真结果:发光二极管从D8开始发光,依次往上到D1,然后循环这一过程。 实验结果:发光二极管从第八个开始发光,依次往右到第一个,然后循环这一过程。

51单片机实验

1、LED灯闪烁实验 2、LED流水灯实验 3、无源蜂鸣器实验 4、继电器控制实验 5、数码管显示实验 6、独立按键实验 1、LED灯闪烁实验 #include void Delay(unsigned int i) //延时程序,i是形式参数,i为1 时延时约1MS { unsigned int j; for(;i>0;i--) //变量i由实际参数传入一个值,因此i 不能赋初值 for(j=0;j<125;j++) //j由0自增到125 所用的时间大约 是1MS {;} } void main() //主函数 { P0=0xff; //初始化端口全部置1高电平LED熄灭 P1=0xff; //初始化端口全部置1 高电平LED熄灭while(1) //无限循环一直执行以下程序 { P0=0x00; //灯亮 P1=0x00; //灯亮 Delay(500); // 将实际参数500传递给形式参数i,延时500ms 也就是0.5S P0=0xff; //灯灭 P1=0xff; //灯灭 Delay(500); //将实际参数500传递给形式参数i,延时500ms 也就是0.5S } } 2、LED流水灯实验 #include 函数功能:延时一段时间 void Delay(unsigned int i) //延时程序,i是形式参数,i为1 时延时约1MS { unsigned int j; for(;i>0;i--) //变量i由实际参数传入一个值,因此i 不能赋初值 for(j=0;j<125;j++) {;} } void main(void) { P0=0xff; P1=0xff; while(1) //无限循环执行程序 { P0=0xfe; //P0第一个灯亮 P1=0xfe; //P1第一个灯亮 Delay(200); //调用延时函数 P0=0xfd; //P0第二个灯亮 P1=0xfd; //P1第二个灯亮 Delay(200); //调用延时函数 P0=0xfb; //P0第三个灯亮 P1=0xfb; //P1第三个灯亮 Delay(200); //调用延时函数 P0=0xf7; //P0第四个灯亮 P1=0xf7; //P1第四个灯亮 Delay(200); //调用延时函数 P0=0xef; //P0第五个灯亮 P1=0xef; //P1第五个灯亮 Delay(200); //调用延时函数 P0=0xdf; //P0第六个灯亮 P1=0xdf; //P1第六个灯亮 Delay(200); //调用延时函数 P0=0xbf; //P0第七个灯亮 P1=0xbf; //P1第七个灯亮 Delay(200); //调用延时函数 P0=0x7f; //P0第八个灯亮 P1=0x7f; //P1第八个灯亮 Delay(200); //调用延时函数 } }

51单片机实验指导书

《 MCS-51单 片 机 原 理 及 应 用 》 实 验 指 导 书 福建师范大学物理与光电信息科技学院 2012年03月

目录 实验一指令和汇编语言 (1) 实验二汇编程序设计初步 (1) 实验三汇编程序设计-进阶 (1) 实验四简单的单片机C语言程序 (2) 实验五内部定时器0/1应用 (3) 实验六中断及服务程序设计 (4)

实验一指令和汇编语言 一、实验目的 1、熟悉51单片机的指令系统,掌握汇编语言程序的设计方法,掌握开发的调试方法。 二、实验仪器 1、PC机 1台 三、实验内容 1、初步认识仿真器软件(以Wave为例)的软件界面及使用; 2、了解asm、lst等文件; 3、简单程序编写、调试 (1)传送指令 (2)数据交互指令 (3)堆栈操作指令 (4)算术运算指令(加、减、乘、除) (5)逻辑操作指令 (6)清零和求反指令 (7)循环移位指令 (8)控制转移指令 (9)子程序调用及返回 四、预习要求 1、读懂各程序; 2、预先给出运算结果,以便和实验结果比较; 3、回忆“跟踪”、“单步”和“断点”调试方式的特点。 五、思考题 1、为什么程序结束用“STOP:SJMP STOP”指令?用没有其他的停止方式? 51单片机启动后,是否一直不断地在执行指令? 2、比较“跟踪”、“单步”和“断点”调试方式的特点。

实验二汇编程序设计初步 一、实验目的 1、熟悉51单片机的指令系统,掌握汇编语言程序的设计方法,掌握开发的调试方法。 二、实验仪器 1、PC机 1台 三、实验内容 (1)多字节加法 (2)多字节减法 (3)多字节乘法 (4)多字节除法 四、预习要求 1、读懂课堂PPT各程序; 2、预先给出运算结果,以便和实验结果比较; 3、回忆“跟踪”、“单步”和“断点”调试方式的特点。 五、思考题 1、比较“跟踪”、“单步”和“断点”调试方式的特点。

51单片机工程师必须经历的十八个实验

走向“单片机开发工程师”的十八步 杨荣国/文 为短期、高效成就单片机开发工程师之梦,达到就业或商业项目开发能力,以下十八步是必须要经历和完成的。 汇集了武汉三维电子主讲老师杨荣国三年来单片机技术培训和项目开发的思想。对于有一定基础的同学们,可以通过以下文字的描述轻松给自己打分,若有些学员,感觉打分不标准,可以根据我们提供的具体考核要求来打分。共18项,每项是10分。 一、考核要求 1、三维一级单片机工程师要求 第一步:熟练掌握PROTEUS 仿真开发软件、KEIL单片机程序开发软件的熟练应用,用汇编编程实现单片机控制8个LED走马灯效果。 第二步:在面包板搭建单片机最小电路,给任意一款STC单片机上下载程序实现单片机控制一个LED任意闪烁。 第三步:掌握C语言的IF WILE FOR 几大语句的应用,在PROTEUS仿真开发软件上编程实现四个LED任意闪烁。 第四步:在万能板上设计一个20引脚单片机,8个LED,一个蜂鸣器组成的声光报警电路,要求用裸导线焊接电路,并编程实现至少3种工作效果。 2、三维二级单片机工程师要求 第五步:测试指定的单片机控制板,并绘制电路原理图,根据控制板上各种器件的使用提示,编程实现相应的控制。 第六步:掌握四位数码管、按键的电路设计及编程,在控制板上设计篮球计分器的效果。 第七步:掌握继电器的电路设计、51内核单片机内部定时器结构和编程,在控制板上设计家用定时器控制器。 第八步:掌握51内核单片机外部中断的结构和编程,在控制板上设计数字抽奖器。 第九步:掌握51内核单片机串口通讯的结构和编程,在控制板上设计PC有线数据监测器。

第十步:掌握51内核单片机模数转换的结构和编程,在控制板上设计NTC温度检测器。 3、三维三级单片机工程师要求 第十一步:掌握51内核单片机数据记忆存储结构和编程,在控制板上设计多点NTC温度采集器。 第十二步:通过网络查找资料,灵活控制液晶屏LCD1602实现特定数字和字符的显示。 第十三步:通过网络查找资料,灵活控制温度计DS18B20实现特定温度显示。 4、三维优秀学员要求 第十四步:掌握A VR ARM单片机的平台搭建,设计基于这两款单片机按键声光报警器。 第十五步:理解红外通讯的编码解码原理,在控制板上设计红外遥控篮球计分器。 第十六步:根据项目合同要求及自身的掌握情况开发红外恒温控制器PC远程监控器多点数据采集器。 第十七步:熟练掌握NRF905无线串口模块的使用,实现电脑远程智能小车控制,掌握NRF905模块的编程,实现数据无线传输。 第十八步:根据自己所爱好的领域,参与商业项目开发,与客户直接沟通,在规定的时间完成规定的效果。 二、考核规则 单片机一级工程师考核 考核时间:3个小时 考核项目:万能板电路按键声光报警器 基本功能:不同的按键按下,有不同的声光报警效果 材料器件:20引脚单片机,蜂鸣器、LED、按键、5V电源、其他材料若干 考核规则: 第一步:设计仿真效果20分 第二步:提供设计文档方案20分 第三步:电路焊接10分 第四步:程序编写20分 第五步:总体调试30分

基于C51单片机步进电机综合控制实验

重庆工商大学计算机与信息工程学院学院《单片机原理及应用》课程实验报告 实验名称:步进电机综合控制实验 实验班级:2010级自动化专业 班级:2010级自动化三班 指导老师:文远熔 组员:陶园2010133330 王路2010133344江洋2010133335

陈娅2010133326张琴芳2010133317张丹2010133320(组长) 一、摘要:本实验利用8051单片机达到控制步进电机的启动、停止、正转、反转、点动、转过指定角度、状态显示和数据指示的目的,使步进电机控制更加灵活。步进电机驱动芯片采用ULN2003,ULN2003具有大电流、高电压,外电路简单等优点。利用ZLG7290模块驱动LED数码管显示速度设定值。通过这个单片机控制系统的设计来掌握步进电机的工作原理和驱动过程以及LED显示原理和ZLG7290模块的使用方法,用LED数码管显示实验要求的状态结果,设计电路的硬件接线图和实现上述要求的程序。 关键词:51单片机步进电机ZLG7290 ULN2003 二、设计内容与要求: 1、任务介绍:实现步进电机按规定的速度正转、反转,转过指定的角度,要有点动功能。所有命令通过键盘输入,步进电机在运行过程中要有状态和数据指示。 2、每套设计文档应包括:系统原理说明、程序框图、电路原理图和程序清单。 三、实验器件介绍及原理: 本实验采用单片机来控制步进电机,实现了软件与硬件相结合的控制方法。在单片机环境下,用ULN2003驱动芯片驱动步进电机,用ZLG7290芯片作用下的按键控制步进电机的运行,从而达到实验要求。其控制框图(图一)为:

图一:控制框图 1、系统硬件介绍 1.1步进电机 1.1.1相关的技术指标: a、相数:指电机内部的线圈组数,目前常用的有二相、三相、四相、五相步进电 机,本实验用的是四相步进电机。电机相数不同,其步距角也不同。 b、步距角:表示控制系统每发一个步进脉冲信号,电机所转动的角度。本实验程 序运行前要先测量步进电机的步距角。 c、拍数:完成一个磁场周期性变化所需脉冲数或导电状态,或指电机转过一个步 距角所需脉冲数。本实验用四相八拍运行方式,为A-AB-B-BC-C-CD-D-DA-A 1.1.2工作原理: 步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的,可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负

51单片机实验程序

用查表方式编写y=x13+x23+x33。(x为0~9的整数) #include void main() { int code a[10]={0,1,8,27,64,125,216,343,512,729};//将0~9对应的每位数字的三次方的值存入code中,code为程序存储器,当所存的值在0~255或-128~+127之间的话就用char,而现在的值明显超过这个范围,用int较合适。int的范围是0~65535或-32768~32767。 int y,x1,x2,x3;//此处定义根据习惯,也可写成char x1,x2,x3但是变量y一定要用int 来定义。 x1=2; x2=4; x3=9;//x1,x2,x3三个的值是自定的,只要是0~9当中的数值皆可,也可重复。 y=a[x1]+a[x2]+a[x3]; while(1);//单片机的程序不能停,这步就相当于无限循环的指令,循环的内容为空白。} //结果的查询在Keilvision软件内部,在仿真界面点击右下角(一般初始位置是右下角)的watch的框架内双击“double-click or F2 to add”文字输入y后按回车,右侧会显示其16进制数值如0x34,鼠标右键该十六进制,选择第一行的decimal,可查看对应的10进制数。 1、有10个8位二进制数据,要求对这些数据进行奇偶校验,凡是满足偶校验 的数据(1的个数为偶数)都要存到内RAM50H开始的数据区中。试编写有关程序。 #include void main() { int a[10]={0,1,5,20,24,54,64,88,101,105};//将所要处理的值存入RAM中,这些可以根据个人随意设定,但建议不要超过0~255的范围。 char i; //定义一个变量 char *q=0x50; //定义一个指针*q指向内部0x50这个地址。 for(i=9;i>=0;i--)//9~0循环,共十次,也可以用for(i=0;i<10;i++) { ACC=a[i];//将a[i]的值赋给累加器ACC if (P==0)//PSW0位上的奇偶校验位,如果累加器ACC内数值1的个数为偶数那么P为0,若为奇数,P为1。这里的P是大写的。 { *q=a[i]; q++;//每赋一个值,指针挪一个位置指向下一个。 } }

51单片机实验1-4 (1)

实验一 Keil C51 集成开发环境的使用练习 一.实验目的 熟悉Keil C51 集成开发环境的使用方法 二.实验设备及器件 IBM PC 机一台 三.实验内容 按照本书的第2 章的2.1 节到2.4 节内容进行Keil C51 集成开发环境的安装和使用练习。然后按照以下内容建立文件并编译产生HEX文件。 ORG 0000H LJMP Main ORG 00F0H Main: MOV R7, #0 Loop: MOV R6, #0 DJNZ R6, $ DJNZ R6, $ DJNZ R6, $ DJNZ R6, $ DJNZ R7, Loop ;延时 CPL P1.0 ; P 1 .0 取反 CPL P1.1 ; P 1 .1 取反 CPL P1.2 ; P 1 .2 取反 CPL P1.3 ; P 1 .3 取反 CPL P1.4 ; P 1 .4 取反 CPL P1.5 ; P 1 .5 取反 CPL P1.6 ; P 1 .6 取反 CPL P1.7 ; P 1 .7 取反 SJMP Main ; END 四.实验要求 熟练掌握Keil C51 集成开发环境的工程建立、编辑与编译功能。 五.实验预习要求 认真阅读本书的第2 章的2.1 节到2.4 节内容,还有时间,可以把本书的第2 章的2.5 节内容也看一下。 六.实验思考题 (1)试写一条把片内 RAM 50H~59H单元清零的程序。

(2)试写一条把片内 RAM 50H~59H单元写入01H的程序。 实验二基于Keil C51 集成开发环境的仿真与调试 一.实验目的 熟悉Keil C51 集成开发环境调试功能的使用和DP-51PROC 单片机综合仿真实 验仪的使用。 二.实验设备及器件 IBM PC 机一台 DP-51PROC 单片机综合仿真实验仪一台 三.实验内容 按照本书的第2 章的2.5 节内容进行Keil C51 集成开发环境的仿真调试练习。 然后按照以下内容建立文件并编译仿真调试。 ORG 8000H LJMP Main ORG 80F0H Main: MOV R7, #0 Loop: MOV R6, #0 DJNZ R6, $ DJNZ R6, $ DJNZ R6, $ DJNZ R6, $ DJNZ R7, Loop ;延时 CPL P1.0 ; P 1 .0 取反 CPL P1.1 ; P 1 .1 取反 CPL P1.2 ; P 1 .2 取反 CPL P1.3 ; P 1 .3 取反 CPL P1.4 ; P 1 .4 取反 CPL P1.5 ; P 1 .5 取反 CPL P1.6 ; P 1 .6 取反 CPL P1.7 ; P 1 .7 取反 SJMP Main ; END 四.实验要求 熟练掌握结合DP-51PROC 单片机综合仿真实验仪和Keil C51 集成开发环境进 行仿真调试。如果还有时间,可以把本书的第2 章的2.6 节、2.7 节内容也看一下。

相关主题
文本预览
相关文档 最新文档