单片机实验二
[整理]单片机6个必做实验
![[整理]单片机6个必做实验](https://img.taocdn.com/s3/m/1361a0cf7e192279168884868762caaedd33bac0.png)
第一部分软件实验实验一二进制到BCD码转换一、实验目的1、掌握简单的数值转换算法2、基本了解数值的各种表达方法二、实验说明单片机中的数值有各种表达方式,这是单片机的基础。
掌握各种数制之间的转换是一种基本功。
我们将给定的一个二进制数,转换成二十进制(BCD)码。
将累加器A的值拆为三个BCD码,并存入RESULT开始的三个单元,例程A赋值#123。
三、实验内容及步骤1、启动计算机,打开伟福仿真软件,进入仿真环境。
首先进行仿真器的设置,选择使用伟福软件模拟器。
2、打开TH2.ASM源程序进行编译,编译无误后,全速运行程序,打开数据窗口(DATA),点击暂停按钮,观察地址30H、31H、32H的数据变化,30H更新为01,31H更新为02,32H更新为03。
用键盘输入改变地址30H、31H、32H的值,点击复位按钮后,可再次运行程序,观察其实验效果。
修改源程序中给累加器A的赋值,重复实验,观察实验效果。
3、打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。
四、流程图及源程序1.源程序RESULT EQU 30HORG 0000HLJMP STARTBINTOBCD:MOV B,#100DIV ABMOV RESULT,A ;除以100得百位数MOV A,BMOV B,#10DIV ABMOV RESULT+1,A ;余数除以10得十位数MOV RESULT+2,B ;余数为个位数RETSTART:MOV SP,#40HMOV A,#123CALL BINTOBCDLJMP $END2.流程图实验四程序跳转表一、实验目的1、了解程序的多分支结构2、掌握多分支结构程序的编程方法二、实验说明多分支结构是程序中常见的结构,在多分支结构的程序中,能够按调用号执行相应的功能,完成指定操作。
若给出调用号来调用子程序,一般用查表方法,查到子程序的地址,转到相应子程序。
单片机实验之定时器计数器应用实验二

、实验目的1 、掌握定时器/计数器计数功能的使用方法。
2 、掌握定时器/计数器的中断、查询使用方法。
3 、掌握Proteus 软件与Keil 软件的使用方法。
4、掌握单片机系统的硬件和软件设计方法。
、设计要求1 、用Proteus 软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满 100个脉冲,则取反P1.0 口线状态,在P 1.0 口线上接示波器观察波形。
2、用Proteus 软件画出电路原理图,单片机的定时器/计数器以中断方式工 作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满 200个脉冲, 则取反P1.0 口线状态,在P 1.0 口线上接示波器观察波形。
通过本实验弄清楚了定时/计数器计数功能的初始化设定(TMOD 初值的计 算,被计数信号的输入点等等),掌握了查询和中断工作方式的应用。
七、思考题1、利用定时器0,在P1.0 口线上产生周期为200微秒的连续方波,利用定 时器1,对P1.0 口线上波形进行计数,满50个,则取反P1.1 口线状态,在P 1.1 口线上接示波器观察波形。
tJI-JTTALlRSTIPO 1 Z^Cil POiPD 3/jfiD3 IPCLW/MH FD-5/^CB”血P2 O/jtS PNUMa P 2 .2/AJOPI F3JD/RKDP1 且1门池F1 2P1 .3P3^/|NT1 卩11 .4P3.4Z1D P1.5 P3 .5fT1 尸1P3.0AA/RP1I.7 P3.?/RD17三、电路原理图 18HQAT69C52P 2 .4/A12P2 5/A13 P2P2 .7XA1«5蝕丘2Q 37答:程序见程序清单四、实验程序流程框图和程序清单1、定时器/计数器以查询方式工作,对外部连续周期性脉冲信号进行计数,MAIN: MOV IE, #00HMOV TMOD, #60H MOV TH1, #9CH MOV TL1, #9CH SETB TR1LOOP: JNB TF1, LOOP CLRTF1 CPL P1.0 AJMP LOOP ENDC 语言程序:#in elude <reg52.h> sbit Y=P1A0; void mai n() {EA=0; ET1=0; TMOD=0x60;TH1=0x9C;计数数值初始化中断断 艙化!l[启动 =时器1 器一、r动 启N箱 * 1溢断清计数溢出标志—1 ~ P1.(口线取反TL 仁 0x9C; while(1) { TR1=1; while(!TF1); TF1=0; Y=!Y; } }2、定时器/计数器以中断方式工作,对外部连续周期性脉冲信号进行计数, 每计满200个脉冲,则取反P1.0 口线状态。
单片机实验 实验二 P 口输入 输出实验

实验二 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 0000HSTART:MOV R2,#8MOV A,#01H ;先让第一个发光二极管点亮LOOP: MOV P1,A ;从P1口输出到发光二极管LCALL DELAYRL A ;循环左移(从第一个发光二极管开始一直往下一个二极管)DJNZ R2,LOOP ;判断移动是否超过8位,未超过则继续循环LJMP START ;循环发光DELAY:MOV R5,#5 ;延时0.5秒子程序DEL1: MOV R6,#200DEL2: MOV R7,#126DEL3: DJNZ R7,DEL3DJNZ R6,DEL2DJNZ R5,DEL1RETEND仿真结果:发光二极管从D1开始发光,依次往下到D8,然后循环这一过程。
实验结果:发光二极管从第一个开始发光,依次往左到第八个,然后循环这一过程。
单片机实验——指示灯开关控制器

中国石油大学(北京)实验报告实验课程:单片机原理及应用实验名称:实验二——指示灯/开关控制器一、实验目的学习汇编语言指令系统的编程与调试方法二、实验内容1、参照教材图达成实验二电路原理图的绘制;2、依据图的程序流程图编写汇编语言程序;3、利用 ISIS的汇编工具查找并修正程序的语法错误和逻辑错误;4、察看仿真结果,达成实验报告。
三、实验要求1、电路原理图P1 口读取开关状态的工作原理:经过 P1 的读引脚功能来实现,因为 P1 口内设上拉电阻,在开封闭合前读取高电平,经过三态门在输出高电平。
当开封闭合时,因为与地面相连,P1读取低电平,经过三态门在输出低电平。
P1 口输出工作原理:单片机履行写P1,#data 时,数据 data 经过内部总线送入锁存器储藏。
当数据为,则该位锁存器输出Q=1,则非 Q 为 0 ,场效应管截止,进而在引脚上输出高电平;反之,假如数据为0,则 Q=1,非 Q 为 0,场效应管导通,引脚上输出低电平。
P2 口控制 LED 灯的原理也是经过P2 口的输出原理实现的,程序不停把P1 的内容传达给 P2。
当给 P1 口赋初值 0 或开封闭合时,输出 0,P2 口读取 0,在引脚上输出低电平,由原理图中 LED的摆放方式知 LED灯低电平导通。
同应当给 P1 口赋初值 #FFH或开关断开时,输出 1,P2 口读取 1,在引脚上输出高电平, LED灯截止,灯灭。
图 1 实验原理电路图2、汇编源程序图 2 汇编源程序3、程序调试过程1.源文件创立与编译( 1)成立新的程序言件单击菜单栏“源代码”—“增加/ 删除源文件”选项,弹出“增加/ 移除源代码”对话框。
在“代码生成工具”下拉框内部选择“ASEM51”选项。
单击“新建”按钮,在适合文件目录下输入待成立程序的文件名(如 text ),核实文件种类为 *ASM 。
单击“翻开”按钮,回应创立新文件提示后,系统弹出确认对话框。
单击“确认”按钮,在菜单“源代码”下可看到近似“的文件名,单击该文件名后可翻开一个空白的文本文件。
单片机实验2P1口转弯灯

电子信息学院实验报告书课程名:《单片机原理及应用实验》题目:实验二P1口转弯灯实验硬件实验实验类别:【设计】班级:学号:姓名:评语:(1)电路连接调试:□正确□基本正确□不正确(2)实验程序编写:□正确□基本正确□不正确(3)数据测量分析:□准确□基本准确□不准确成绩:□A □B □C □D ,指导教师:批阅时间:年月日1、实验内容或题目题目:P1口转弯灯实验实验内容:通过51单片机的引脚,用开关控制LED灯。
2、实验目的与要求实验目的:(1)熟悉51单片机的引脚及功能;(2)掌握C语言程序设计和调试方法实验要求:P1.0 接开关5V,右转弯灯闪亮,P1.1接开关5V时左转弯灯闪亮,P1.0,P1.1同时接5V或接地时,转弯灯均不闪亮。
3、实验仪器(1)DJ-598K三合一单片机微机试验仪1块(2)PC微机1台4、实验程序框图(供参考)6、实验程序(实验程序清单作为附件放在最后)7、实验步骤P1.0 接K1,P1.1接K2,P1.4~P1.7接L1、L4、L7、L10,如实验接线图所示,连续运行本程序。
8、实验数据L1 L2 L3 L41 P1.0 接开关5V灭灭闪亮闪亮2 P1.1接开关5V时闪亮闪亮灭灭3 P1.0,P1.1同时接5V或接地灭灭灭灭<附件> 实验程序清单ORG 0000HLJMP PX00ORG 0C30HPX00: MOV P1,#0FFH ;初始化PX03: MOV A,P1MOV B,AANL A,#03HCJNE A,#01H,PX01 ;满足只是P1.0为高条件?JB 00H,PX04 ;闪烁标志位CLR P1.4CLR P1.5 ;开右灯SETB P1.6SETB P1.7 ;关左灯MOV R2,#20HLCALL DELY ;延时SETB 00H ;置标志位LJMP PX03 ;继续查找状态PX04: SETB P1.4SETB P1.5SETB P1.6 ;关灯SETB P1.7MOV R2,#20HL CALL DELY ;延时CLR 00H ;清标志位AJMP PX03 ;继续查找状态PX01: CJNE A,#02H,PX02 ;满足只是P1.1为高条件吗?JB 01H,PX05 ;判标志位SETB P1.4SETB P1.5 ;开左灯CLR P1.6CLR P1.7 ;关右灯MOV R2,#20HLCALL DELY ;延时SETB 01H ;置标志位LJMP PX03 ;继续查找PX05: SETB P1.4SETB P1.5SETB P1.6 ;关灯SETB P1.7MOV R2,#20HLCALL DELY ;延时CLR 01H ;清标志位LJMP PX03 ;继续查找状态PX02: SETB P1.4SETB P1.5SETB P1.6 ;关灯SETB P1.7LJMP PX03 ;继续DELY: PUSH 02HDEL2: PUSH 02HDEL3: PUSH 02H ;延时DEL4: DJNZ R2,DEL4POP 02HDJNZ R2,DEL3POP 02HDJNZ R2,DEL2POP 02HDJNZ R2,DELYRETEND。
单片机定时器及外部中断实验报告

单片机实验报告(二)实验名称:定时器及外部中断*名:**学号:*********班级:通信2班时间:2013.11南京理工大学紫金学院电光系一、实验目的1、学习定时/计数器的应用;2、学习外部中断技术的基本使用方法;3、学习中断处理程序的编程方法。
二、实验原理(1)以P1口作为输出口,定时器实现1s定时,实现显示数的1s加1,外部中断0键盘外接BUTTON,实现对显示数快速加1的控制。
(2)系统板上硬件连线把“单片机系统”A2区的J61接口的P1.0~P1.6端口与D1区的J52接口相连。
把“单片机系统”A2区的INT0端口用导线连接到D1区的KEY1端口上;三、实验内容利用定时器中断控制1s的输出,使用外部中断0使得显示的数加1. 程序如下:#include<reg51.h>#define uchar unsigned char#define uint unsigned intvoid delay(){uint x,y;for(x=100;x>0;x--)for(y=110;y>0;y--);}uchar m,flag;void main(){uchar a,b;TMOD=0x01;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EX0=1; EX1=1; PX1=1; ET0=1; EA=1; 中断开启TR0=1;m=0; P1=0;while(1){while(flag==0); flag=0;if(m==100) m=0;m++;a=m/10;b=m+a*6;P1=b;}}void timer0() interrupt 1 using 0{uchar t;TH1=(65536-50000)/256;TL1=(65536-50000)%256;if(t<20) t++;else { flag=1; t=0; }}void exter0() interrupt 0 using 1{if(INT0==0) delay();if(INT0==0) flag=1;}void exter1() interrupt 2 using 2{if(INT1==0) delay();if(INT1==0) m=0;}将编译好的程序下载到仿真电路中四、小结与体会通过本次定时器中断实验,我对定时器的工作原理有了更加深入的理解,这也是建立在向同学请教的基础上。
单片机软件实验双字节BCD码加法

实验二双字节BCD码(十进制数)加法一、实验目的熟悉8086汇编指令,学会使用星研集成环境软件,能自己编写简单的程序,熟悉BCD 码,了解如何调用系统提供的子程序。
二、实验内容从键盘上输入4位被加数、加数,实现双字节BCD码(四位数)的加法,结果显示在数码管上;熟悉使用断点、单步进入、单步、运行到光标处、修改PC指针、全速运行等各种调试手段;熟悉查看特殊功能寄存器、CS段、DS段存贮器的各种方法。
三、实验框图双字节BCD码加法程序框图四、实验步骤1、连线说明:2、在F4区的键盘上输入4位被加数、加数3、结果显示在F4区的数码管上五、程序清单.MODEL TINYEXTRN Display8:NEAR,GetBCDKey:NEAREXTRN F1:BYTE.STACK100.DATABUFFER DB8 DUP(?)augend DB 2 DUP(?);被加数addend DB 2 DUP(?);加数.CODESTART:MOV AX,@DATAMOV DS,AXMOV ES,AXNOPMOV F1,0 ;先清除显示,再接收键输入START1:LEA DI,augendMOV CX,4 ;按键次数CALL GetBCDKey;得到双字节十进制数(被加数)MOV F1,1;接收到第一个键,才清除显示LEA DI,addendMOV CX,4 ;按键次数CALL GetBCDKey;得到双字节十进制数(加数)MOV AL,augendADD AL,addend;低位DAAXCHG AL,AHMOV AL,augend + 1ADC AL,addend + 1;高位DAAXCHG AL,AHMOV BL,0ADC BL,0 ;进位CLDLEA DI,BUFFER;存放显示结果CALL B1toB2;低位MOV AL,AHCALL B1toB2;高位MOV AL,BLSTOSBMOV AL,10H;最高三位消隐STOSBSTOSBSTOSBLEA SI,BUFFER+4MOV CX,4CALL BlackDisplay ;将高位0消隐LEA SI,BUFFERCALL Display8JMP START1;将一个字节压缩BCD码转换成二个字节非压缩BCD码B1toB2PROC NEARPUSH AXAND AL,0FHSTOSBPOP AXAND AL,0F0HROR AL,4STOSBRETB1toB2ENDPBlackDisplay PROC NEARSTDMOV DI,SIBlackDisplay1:LODSB ;将高位0消隐CMP AL,0JNZ ExitMOV AL,10HSTOSBLOOP BlackDisplay1Exit:CLDRETBlackDisplay ENDPEND START。
51单片机实验报告

51单片机实验报告一、引言51单片机是一种广泛应用于嵌入式系统开发的微控制器芯片。
本实验旨在通过对51单片机的实验研究,加深对该芯片的理解和应用。
二、实验一:LED灯闪烁控制本实验通过编写程序,控制51单片机上的LED灯以特定的频率闪烁。
为了实现这个目标,我们首先需要了解51单片机的引脚布局,确定LED灯的连接方式。
然后,通过编写相应的汇编程序,控制引脚的电平变化,从而实现LED灯的闪烁。
三、实验二:数码管显示数码管是一种常见的输出设备,通过控制引脚的输出来显示特定的数字。
本实验中,我们通过编写程序,实现通过51单片机控制数码管的显示。
通过对数码管的驱动原理和编程的学习,我们可以灵活地控制数码管的显示内容和频率。
四、实验三:蜂鸣器发声蜂鸣器是一种常见的声音输出设备,通过控制引脚的输出来产生特定的声音。
本实验中,我们通过编写程序,实现通过51单片机控制蜂鸣器的发声。
通过学习蜂鸣器的驱动原理和编程,我们可以根据需要产生不同频率和节奏的声音。
五、实验四:温湿度检测温湿度检测是一种常见的环境监测需求。
本实验中,我们通过引入温湿度传感器,实现通过51单片机获取环境的温度和湿度信息。
通过编写程序和读取传感器的数据,我们可以实时监测环境的温湿度,并进行相应的控制和反馈。
六、实验五:红外遥控红外遥控是一种常见的无线通信方式,通过发送和接收红外信号来实现远程控制。
本实验中,我们通过引入红外发射和接收模块,实现通过51单片机进行红外遥控。
通过编写相应的程序,设置红外遥控的编码和解码方式,我们可以实现对外部设备的遥控操作。
七、实验六:定时器应用定时器是51单片机中的重要模块,它可以实现定时和计数等功能。
本实验中,我们通过学习定时器的工作原理和编程,实现通过51单片机进行定时和计数的应用。
通过编写相应的程序和设置定时器的参数,我们可以实现不同的定时和计数功能,满足各种需要。
八、实验七:串口通信串口通信是一种常见的数据通信方式,通过串口接口发送和接收数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
课程名称:电气可编程控制原理及应用
实验项目: PLC控制步进电机的正反转
专业班级:
学号:
姓名:
指导教师:
日期:
机械工程实验教学中心
专业班级:学号:姓名:
一、实验目的
1.了解PLC理论和原理
2.掌握PLC编程和操作方法
3.了解接近传感器的使用方法
二.实验原理和方法
料库旋转台是依靠步进电机控制的高精度旋转模块。
依靠PLC 自身含有的脉冲单元,发出驱动脉冲给步进电机驱动器。
驱动器接收到该脉冲以后,根据所发脉冲的频率和数量驱动步进电机向相应的方向旋转。
通过旋转料库的旋转使得旋转料库的光电开光能够检测到工件,通过机械手把工件从旋转料库取出。
在本实验要求在按下启动按钮时旋转料库顺时针旋转,按下停止按钮时旋转料库逆时针旋转。
1.步进电机
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。
可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
本实验用到的步进电机为SIHONG 57BYGHHR102-23MJ。
2..驱动器
本实验所选用的驱动器是ASK230如下图1-1所示。
图1-1步进电机的驱动器ASK230
该控制器适合驱动中小型的任何两相或四相混合式步进电机。
2.1引脚说明
VCC+,GND 端为外接直流电源,直流电压范围为+20V~+45V。
20~40VDC.注:切忌超过40V,以免损坏模块。
A+,A-端为电机A 相
专业班级:学号:姓名:
B+,B-端为电机B 相
CP+、CP-:步进脉冲输入端(上升沿有效,持续时间>10μS)
CW+、CW-:电机运转方向控制,通过控制该端子电平可改变电机运行方向REST+、REST-:急停复位
2.2 细分数的选择
细分数由开关SW1、SW2、SW3 选择如表1-1。
表1-1 步数的确定
本实验中驱动器的sw1-sw3分别设置为off,off, on即细分设定为3200 步/圈,驱动器的sw5-sw7分别设置为off,off,off即输出的峰值电流为3A。
2.3电机接线
AKS230 驱动器能驱动所有相电流为3A ,下图1-2为本实验中步进电机接线图
图1-2 本实验中步进电机接线图
3.在旋转料库上,各部件名称和作用介绍如下如图1-3。
M1:步进电机,用步进电机来精确标定工件运行的位置;
SEN1:反射式光电开关,用来检测工件,当此开关有效时,把工件定位在三自由度气动机械手抓取工位,启动气动机械手开始抓取工件的工作;
ORG1:光电开光,旋转料库的原点信号。
本实验中用到的自动化输送线单元控制系统PLC部分输入输出点配置表如下表
专业班级:学号:姓名:
所示,请仔细阅读下表1-1。
表1-1气动机械手单元控制系统PLC部分输入输出点配置表
图 1-3 旋转料库
三.实验使用仪器设备(名称,型号,参数等)
1、三菱PLC编程电缆及安装好三菱编程软件的计算机一台;
专业班级:学号:姓名:
2、模块化柔性制造系统一套。
四.实验内容
1、画出PLC的接线图
2、编写控制梯形图
五.结论
专业班级:学号:姓名:附一PLC控制步进电机正方转的实验程序如下图1-4
图1-4 PLC控制程序
其中:S1.表示输出脉冲的频率
D1.表示输出脉冲的输出编号
D2.表示旋转信号的输出对象编号
附二PLC控制步进电机正反转的实物接线图
专业班级:学号:姓名:
图1-5实验实物接线图。