太原理工大学单片机实验
实验报告太原理工

太原理工大学现代科技学院实验报告实验一:LED灯控制系统设计一、实验目的学习掌握LED灯控制系统的设计方法二、实验要求利用89C51单片机来控制实验板上的8个LED灯,让这8个LED灯分成两组(高4位与低4位)交替闪烁。
三、请画出硬件电路原理图根据实验要求和实验板现有电路画出LED灯控制系统的硬件电路原理图。
将硬件电路原理图画在下面的空白处,可手画,也可用软件画。
太原理工大学现代科技学院实验报告四、画出程序的流程图 五、按照流程图编写程序(C 语言) …………………………………装……………………………………订………………………………………线……………………………………………太原理工大学现代科技学院实验报告六、验证所设计的系统通过实验板验证所设计的系统是否达到要求1.所设计的硬件电路是否符合设计要求?2.所设计的程序是否符合设计要求?3.如果所设计的系统没有达到要求,存在的问题是什么?是如何改正的?七、你对本课程的实验有何好的建议?太原理工大学现代科技学院实验报告实验二:数码管显示控制系统设计一、实验目的1.了解按钮开关的原理;了解按钮开关输入电路的设计方法;掌握按钮开关的输入方法和编程方法。
2.了解七段数码管的原理;了解七段数码管输出电路的设计方法;二、实验原理1.按钮开关和按钮开关输入电路的原理按钮开关的特点就是具有自动恢复的功能:按下按钮,电路接通;松开按钮,恢复电路的切断状态当把按钮作为电路的输入器件时,一般是将其连接到电源或地,如图1所示。
图1 按钮开关输入电路设计按钮开关一般为开路状态,图(a)中按钮开关通过上拉电阻连接电源,使单片机的输入引脚保持高电平;若按下按钮,单片机的输入引脚将变成低电平,松开按钮单片机的输入引脚将恢复高电平,此操作可产生一个负脉冲信号。
反之,如图(b)所示,单片机的输入引脚保持为低电平。
若按下按钮,单片机的输入引脚变成高电平;松开按钮,单片机的输入引脚恢复低电平,此操作可产生一个正脉冲信号。
单片机实训报告

单片机实训报告一、实训目的本次单片机实训的目的在于通过实际操作和项目实践,深入理解单片机的工作原理和应用开发,提高自身的硬件设计能力、软件编程能力以及解决实际问题的能力。
同时,培养团队合作精神和创新思维,为今后从事相关领域的工作打下坚实的基础。
二、实训设备在本次实训中,我们使用了以下主要设备:1、单片机开发板:用于实验和项目的开发与调试。
2、计算机:安装相关的编程软件和开发工具。
3、示波器:用于观察电路中的信号波形。
4、万用表:用于测量电路中的电压、电流等参数。
三、实训内容1、单片机基础知识学习首先,我们对单片机的基本结构、工作原理、指令系统等进行了系统的学习。
了解了单片机的内部组成,包括中央处理器(CPU)、存储器、输入输出端口等。
通过学习指令系统,掌握了如何使用汇编语言或 C 语言对单片机进行编程控制。
2、硬件电路设计在硬件电路设计方面,我们学习了如何根据实际需求设计单片机的最小系统,包括电源电路、时钟电路、复位电路等。
同时,还掌握了如何扩展外部存储器、输入输出设备等。
通过实际绘制电路图和制作电路板,提高了我们的硬件设计能力和动手实践能力。
3、软件编程在软件编程方面,我们使用了汇编语言和 C 语言两种编程方式。
通过编写简单的程序,如点亮 LED 灯、控制数码管显示、实现按键输入等,逐渐熟悉了单片机的编程方法和技巧。
同时,还学习了如何使用中断、定时器、串口通信等功能,提高了程序的复杂程度和实用性。
4、项目实践在项目实践环节,我们分组完成了一个基于单片机的温度控制系统的设计与实现。
该系统通过温度传感器采集环境温度,经过单片机处理后,控制风扇的转速和加热装置的工作状态,从而实现对环境温度的自动控制。
在项目实践过程中,我们充分运用了所学的知识和技能,从系统方案设计、硬件电路搭建、软件编程调试到系统测试优化,每个环节都进行了精心的设计和认真的实施。
四、实训过程在实训开始阶段,我们首先进行了单片机基础知识的学习和实验。
(太原理工大学)基于msp430单片机的数字温度计的制

目的
通过数字温度计的制作,介绍msp430单片机系列内核msp430f413微处理器,了解一个典型的430单片机系统的实现过程,能够使用430的C语言集成开发环境,掌握产品的开发流程。
目标对象
高等院校对口专业(单片机软硬件、电子工程、自动化等)高年级学生。
特别是面临就业的毕业班学生。
课程设计
实习课程安排:
1、msp430flash型超低功耗16位单片机的硬件结构介绍及应用领域
2、430的汇编语言和c语言的编程结构简单介绍
3、430的c语言开发环境(IAR Embedded Workbench for MSP430)的应用
4、配合一些简单的实例练习软件的使用和软件仿真
5、数字温度计的原理及电路图分析
6、焊接数字温度计的电路板
7、调试数字温度计的电路板,硬件仿真、功能实现及如何解决所出现的问题。
太原理工大学单片机第3章 MCS-51单片机指令系统

addr16:表示16位地址。 addr16:表示16位地址。 addr11:表示11位地址。 addr11:表示11位地址。 rel:用补码形式表示的地址偏移量,取值范围为-128~ rel:用补码形式表示的地址偏移量,取值范围为-128~
11:55
张兴忠制作:zhangxingzhong@
3
3.1 指令系统简介
------指令系统 ------指令系统
指令系统 计算机所有指令的集合,称为该计算机的 指令系统,它是表征计算机性能的重要标 志。每种计算机都有它自己特有的指令系 统。指令是指计算机执行某种操作(如传 送数据、做算术运算等)的命令。
11:55
张兴忠制作:zhangxingzho----指令的两种格式 ------指令的两种格式
要让计算机工作,就得向计算机发出指令。
指令的格式是机器码指令格式 指令的格式是机器码指令格式,如75905B ,即数 机器码指令格式,如75905B 字格式。
11:55
张兴忠制作:zhangxingzhong@
13
3.1.3 指令中的常用符号
#date:表示8位立即数,即8位常数,取值范围为#00H~ #date:表示8位立即数,即8位常数,取值范围为#00H~
#0FFH。 #0FFH。
date16:表示16位立即数,即16位常数,取值范围为 date16:表示16位立即数,即16位常数,取值范围为
11:55
张兴忠制作:zhangxingzhong@
7
3.1.1 指令系统的分类
-----按指令所占存储空间分类 -----按指令所占存储空间分类
MCS-51单片机能够识别并执行的指令共有111条。按 MCS-51单片机能够识别并执行的指令共有111条。按 指令所占字节数、指令执行时间和指令功能进行分类。 1.按指令所占字节数分类 1) 单字节指令(49条) 单字节指令(49条) 2) 双字节指令(46条) 双字节指令(46条) 3) 三字节指令(16条) 三字节指令(16条)
太原理工单片机实验报告1

太原理工大学现代科技学院单片机原理与应用技术课程实验报告专业班级学号姓名指导教师实验名称双字节BCD加法同组人专业班级学号姓名成绩一、实验目的:1、通过常用指令的编辑练习,进一步理解并掌握MCS-51单片机的指令系统。
2、学习并掌握双字节BCD加法的程序设计3. 学习汇编语言的程序设计基本方法二、实验内容:将两个双字节十进制数机加,相加所得和个位放入R0中,十位放入R1中,若有进位则百位放入R2中。
三、实验设备:计算机一台应用软件:W AVE6000四、实验步骤:上机调试程序:ORG 0000HLJMP MAINORG 0100HMAIN: MOV R0,#12HMOV R1,#06HMOV R2,#08HMOV R3,#11HMOV A,R0ADD A,R2DA AMOV R2,AANL A,#0FHMOV R0,A ;将结果的个位放在R0中MOV A,R2ANL A,#0F0HSWAP AADD A,R1ADD A,R3DA AMOV R3,AANL A,#0FHMOV R1,A ;将结果的十位放在R1中MOV A,R3MOV R3,#0HANL A,#0F0HSWAP AMOV R2,A ;将结果的百位放在R2中RETEND五、实验心得与总结通过本次实验,我学到了很多知识,对我今后的学习有了很大的帮助,同时,在做实验的过程中,我遇到的一些问题也使我对思考问题的方法,有了新的认识,还让我深刻体会到实验前的理论知识准备的重要,并且在做实验时最好先预习一下实验内容,这样更有利于实验的操作。
太原理工大学单片机实验报告

查看开发板电路图,如下所示:我们检测I/O 的电压高低来控制相应的小灯亮灭。
3.1程序流程图3.2代码分析(1)获取按键的值uchar KeyScan(void){if(K1 == 0) //低电平有效{Delay(100); //检测到按键if(K1 == 0){ while(!K1); //直到松开按键return(1); }}if(K2 == 0){ Delay(100);if(K2 == 0){ while(!K2);return(2); }}return(0);}该函数实现了识别到底是哪个按键被按下的功能,首先检测K1 是否等于0,如果一旦检测到等于0,说明有相应的按键被按下,延时一段时间,又来判断(if(K1 == 0))这个判断是为了防止按键抖动。
同理检测按键K2是否被按下。
(2)主函数功能主函数实现了一按键被按下后,使相应的小灯点亮,同时清除标志位。
本实验主要用到的寄存器:五、实验结果2.6实验现象LED1灯先闪烁隔一会熄灭,一会儿LED2灯闪烁,隔一会也熄灭。
3.3实验现象按下K1键,LED1灯亮,按下K2键,LED2灯亮六、讨论、心得1. 实验内容:外部中断发生,控制灯的亮灭。
开发板上已把S1 按键与P0.1 相连,本实验想要达到的效果就是,通过按键S1 触发P0.1的中断,进而在中断服务子程序中控制LED1的亮/灭。
2.实验流程图3. 实验涉及的主要寄存器初始化LED:设置P1为通用I/O口,设置P1.0 ~ P1.1 方向为输出,然后关闭2 个LED 灯。
再来配置外部中断的相关SFR 寄存器,开启各级中断使能,涉及3 个SFR:EA、IEN1、PICTL(各SFR详细介绍请查阅《CC2530中文手册》):}P0IFG = 0; //清中断标志}(1) 中断服务程序什么意思呢?简单来说中断来了,你想要干什么。
(2) CC2530中断格式格式如下:#pragma vector = P0INT_VECTOR__interrupt void P0_ISR(void)a)P0INT_VECTOR——设定的中断向量名本实验主要用到的寄存器:实验现象:按键S1可以控制LED1灯亮灭1.实验内容:CC2530 共有4个定时器,可分3类:定时器1、定时器2、定时器3/4(3与4的用法一致)。
单片机原理及应用实验报告2

单片机原理及应用实验报告2单片机原理及应用实验报告2实验报告:单片机原理及应用实验一、实验目的1、了解单片机的基本工作原理;2、掌握单片机的编程方法和编写汇编语言程序的能力;3、学习单片机的应用实验。
二、实验原理单片机是一种集成电路,内部包含了中央处理器、存储器和各种输入输出端口。
单片机的工作原理是通过对输入信号的处理和对输出信号的控制来实现各种功能。
单片机的编程方法一般采用汇编语言编写程序。
汇编语言是一种低级语言,可以直接对单片机进行操作。
通过编写汇编语言程序,可以实现各种功能,如控制LED灯的亮灭、控制电机的转动等。
本次实验主要通过控制LED灯的亮灭来演示单片机的应用。
在实验中,我们将使用汇编语言编写程序,通过编程来控制LED灯的亮灭。
三、实验步骤2、编写汇编语言程序:打开编程软件,进入编程界面,编写程序代码;3、编译程序:将编写好的程序进行编译,生成机器码;4、烧录程序:用编程工具将编译好的机器码烧录到单片机中;5、连接电路:使用面包板将单片机与LED灯连接起来;6、测试程序:将单片机的电源接通,观察LED灯的亮灭情况。
四、实验结果与分析经过以上步骤,我们成功地编写了汇编语言程序,并将程序烧录到了单片机中。
在实验中,我们观察到LED灯根据程序的控制产生了相应的亮灭效果。
实验结果表明,通过编程可以实现对单片机的控制,从而实现各种功能。
单片机在嵌入式系统、自动控制系统、家电等方面有着广泛的应用。
五、应用实例1、家居智能化控制:通过编程控制单片机,可以实现对家电的智能化控制。
例如,可以根据日出日落时间控制窗帘的开闭,根据室内温度控制空调的开关等。
2、工业自动化:在工业生产中,单片机可以用来控制各种设备和机械,实现生产线的自动化控制。
例如,可以根据产品的规格和数量,自动调整机械的工作速度和工作时间。
3、智能交通系统:在交通领域,单片机可以用来控制信号灯、道闸等设备,实现交通流量的控制。
例如,可以根据道路的拥堵程度和车辆的行驶速度,调整信号灯的红绿灯时间,从而达到交通畅通的目的。
单片机拆字程序实验

太原工业学院计算机工程系成绩:单片机原理及接口技术课程实验报告课程:单片机原理及接口技术姓名:张成专业:计算机科学与技术学号: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、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
太原理工大学单片机实验太原理工大学现代科技学院单片机原理与接口技术课程实验报告专业班级通信12-2学号2012101702姓名徐义申指导教师温景国实验名称 双字节BCD 加法实验 专业班级 通信12-2 学号 2012101702 姓名 徐义申 成绩 一、实验目的: 1. 熟悉并掌握MC-51指令系统及程序设计方法。
2. 掌握双字节BCD 加法的程序算法。
二、实验设备: PC 机 1. 操作系统:Windows XP / 7 2. 程序环境:Wave 6000 三、实验内容: 完成有进位位的双字节BCD 的加法实验,两个加数分别放于 40H~41H 和45H~46H ,结果存于50H~52H 中。
(两个加数为9388H 和7287H )。
四、实验原理: BCD 码因其十进制的表示方式,在直接做二进制加法,发生进位时,结果可能会出现偏差,需人为校准。
五、实验源程序: ORG 0000H MOV 40H,#88H ; 88H →(40H) MOV 41H,#93H ; 93H →(41H)MOV 45H,#87H ; 87H →(45H) ……………………………………装………………………………………订…………………………………………线………………………………………MOV 46H,#72H ; 72H →(46H) MOV R0,#40H ; 40H →R0 MOV R1,#45H ; 45H →R1 START: MOV A,@R0 ; ((R0))→A ADD A,@R1 ; ((R1))+A →A MOV 50H,A ; A →(50H) INC R0 ; (R0)+1→(R0) INC R1 ; (R1)+1→(R1) CLR A ; A 清0ADDC A,@R0 ; ((R0))+A+Cy →A ADD A,@R1 ; ((R1))+A →A MOV 51H,A ; A →(51H) CLR A ; A 清0 ADDC A,#0H ; 0H+A+Cy →A MOV 52H,A ; A →(52H) SJMP $ ; 循环 END ……………………………………装…………订…………………………………………线……………………………订………………………本程序进行了两个双字节BCD数的加法,中途出现两次进位,每次进位参与下一次的进位加法计算。
六、实验结果与分析:通过两次进位加法计算,两个双字节BCD数加法的结果变为三字节BCD数,并存于50H~52H单元中,其中52H单元中存结果的最高位1。
七、实验心得:通过本次实验,我更加直观的感受到BCD加法过程中的问题,并通过编程和仿真,动态观看了数据在单片机内部的存储状况。
实验名称 数据排序程序 专业班级 通信12-2 学号 2012101702 姓名 徐义申 成绩 一、实验目的: 1. 熟悉并掌握MCS-51指令系统和程序设计方法。
2. 掌握排序程序算法。
3. 掌握用循环程序实现数据排序的方法。
二、实验设备: PC 机 1. 操作系统:Windows XP/ 7 2. 仿真软件:Wave 6000 三、实验内容: 编写一个通用排序子程序并调试,其功能为将RAM 的40H~4FH 单元16个字节无符号二进制整数按从小到大顺序排序,将排序后的数据存放在50H~5FH 缓冲区中。
四、实验原理: 从40H 单元的第一个数开始依次和相邻单元的另一个……………………………………装……………………………订…………………………………………线………………………数比较,如果顺序正确,则不作任何操作;如果顺序错误,则将这两个数位置对换。
这样,在完成第一遍n-1次比较后,最小的数到了最后,所以第二遍比较只需要比较n-2次,最多作n-1遍比较就可完成排序。
在比较中设立一个标志位flag 清零,在循环结束时,若flag=1说明排序未完成,进入外循环;若flag=0,说明排序完成,程序结束。
五、实验源程序: ORG 0000H MOV R7,#10H MOV R0,#40H MOV R1,#20H START: MOV A,R1 MOV @R0,A INC R0 DEC R1 DJNZ R7,START MOV R7,#0FH LP0: MOV R0,#40H MOV A,R7 …………………订…………………CLR 7FH LP1: MOV A,@R0 MOV 20H,@R0 INC R0 MOV 21H,@R0 CLR C SUBB A,21H JC LP2 SETB 7FH MOV @R0,20H DEC R0 MOV @R0,21H INC R0 LP2: DJNZ R6,LP1 JNB 7FH,LP3 DJNZ R7,LP0 LP3: MOV R7,#10H MOV R0,#40H MOV R1,#50H LP4: MOV A,@R0 MOV @R1,AINC R0 DJNZ R7,LP4SJMP $ END 六、实验结果与分析: ……………………………………装……………………………………订…………………………………………线………………………………(排序前:) ……………………………………装……………订…………………………………………线………(40H) 20 1F 1E 1D 1C 1B 1A 19 (48H) 18 17 16 15 14 13 12 11 (排序后):由小到大48排序后,数值由小到大,从(40H )→(50H ),……………订………………(48H)→(58H)七、实验心得:通过实验让我深刻体会到实验前的理论知识准备的重要,如果自己没有一些基础知识,那也是很难做下去的。
同时对我的后续课程的学习提出了更高的要求。
实验名称 子程序调用 专业班级 通信12-2 学号 2012101702 姓名 徐义申 成绩 一、实验目的: 掌握MCS51单片机I/O 口的基本输入与输出功能。
学习子程序的调用和程序设计。
掌握子程序调用过程中保护现场与恢复现场以及调用程序与被调用程序之间的参数传递。
二、实验设备: PC 机 操作系统:Windows XP/ 7 仿真软件:WAVE 6000 三、实验内容: 编写程序,计算Y=∑=2^ai y .a1,a2,…;…,a10……………………………………装………………………订…………………………………………线……………………存放在内部RAM 的20H 开始的存储区内,计算所得结果放入R2和R3中。
四、实验源程序: ORG 0000H MAIN: MOV R0,#20H MOV R7,#10 MOV R3,#0 MOV R2,#0 LOOP: MOV A,@R0 ACALL SORT ADD A,R2 MOV R2,A CLR A ADDC A,R3 MOV R3,A INC R0 DJNZ R7,LOOP SJMP $ SORT: MOV DPTR,#TAB MOV A,@A+DPTR RET ………………………………订………………………………TAB: DB 0,1,4,9,16 DB 25,36,49,64,81 EN: NOP END 五、实验结果与分析:子程序调用不必重复编写同样的程序,有利于提高编码效率,缩短源程序与目标程序的长度,节省程序存储的空间,使程序模块化,通用化,便于阅读,交流。
六、实验心得:通过这次实验我深刻体会到了对中断方式认识的不足以及对汇编语言的不熟悉,程序不断出错,有关中断的以前没有做过实验,上课学的没有在实际中运用过,我意识到实践的重要性,虽然上课都能跟上老师的思维,但下来做实验时,才发现只靠课堂上学的知识还远远不够,通过这次实验,我对中断有了更深的了解。
实验名称定时/计数器应用设计专业班级通信12-2学号2012101702姓名徐义申成绩一、实验目的:(1)深刻理解对MCS-51单片机定时/计数器内部结构、工作原理和工作方式。
(2)掌握定时/计数器工作在定时和计数两种状态下的编程方法。
(3)掌握中断服务程序设计方法。
二、实验设备:PC机操作系统:Windows XP/ 7 仿真软件:WAVE 6000 三、实验内容:在使用12MHz晶振的条件下,用T1产生1ms的定时,两个7段LED数码管从00开始显示,每1秒加1,到达59后,再从00开始,完成60秒定时功能。
四、实验原理: MCS —51单片机内部包括T0和T1两个定时计数器。
每个定时,计数器有4种工作方式。
设加1计数器计数的最大值为M ,计数值为N ,计数初值为Count ,则Count的计算方法如下。
Count=M —定时时间/T=M-50000/1=65536-50000=15536=3CB0H五、实验源程序:1. 定时器: ORG 0000H AJMP START ORG 001BH AJMP TIME1 ORG 0030H START: MOV SP,#60H MOV TMOD,#10H SETB EA SETB ET1 MOV R3,#60 MOV R0,#0 MOV R1,#0 ……………………订………………………MOV TL1,#0B0H SETB TR1 AJMP $ TIME1: PUSH ACC PUSH PSW INC R0 MOV A,R0 CJNE A,#20,T_LP2 MOV A,R1 MOV B,#10 DIV AB SWAP A ADD A,B MOV P1,A INC R1 CJNE R1,#60,LP0 MOV R1,#00H LP0: MOV R0,#00H T_LP2: MOV TH1,#3CH MOV TL1,#0B0H POP PSWRETI END 2. 计时器:ORG 0000H MOV TMOD,#02H MOV TH0,#251 MOV TL0,#251 SETB TR0 START: MOV P0,#0FFH JNB TF0,$ CLR TF0 MOV P0,#00H JNB TF0,$ CLR TF0 AJMP START END 七、实验心得: 通过这次实验,使我学到了不少实用的知识,更重要的是,做实验的过程,思考问题的方法,通过我们讨论有了更深的认识。
在做计时器时,因不明白06H 所代表……………………………………装………………………………………订…………………………………………线……………………………………太原理工大学现代科技学院实验报告的含义,程序一直无法调通。
最后更换成02H方使程序运行通过。