实验一 数字量输入输出实验
- 格式:doc
- 大小:103.00 KB
- 文档页数:5
实验一P1口输入、输出实验一.实验要求1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2.P1口做输入口,接八个拨动开关,以实验机上74LS273做输出口,编写程序读取开关状态,将此状态,在发光二极管上显示出来。
二.实验目的1.学习P1口的使用方法。
2.学习延时子程序的编写和使用。
三. 实验电路及连线实验一时,P1.0-P1.7接L0-L7。
实验二时,P1.0-P1.7接K0-K7,PO0-PO7接L0-L7。
CS273接8300H。
四.实验说明1.P1口是准双向口。
它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。
因为内部上拉电阻阻值是20KΩ~40KΩ,故不会对外部输入产生影响。
若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。
2.延时子程序的延时计算问题对于程序DELAY:MOV R0,#00HDELAY1:MOV R1,#0B3HDJNZ R1,$DJNZ R0,DELAY1查指令表可知MOV,DJNZ 指令均需用两个机器周期,而一个机器周期时间长度为12/11.0592MHz,所以该段程序执行时间为:((0B3+1)×256+1)×2×12÷11059200=100.002mS五.实验框图程序框图:TP1A.ASM主程序框图TP1B.ASM主程序框图六.附加实验内容1、用P1口的P1.0-P1.3作输出口接4个发光二极管,P1.4-P1.7作输入口接4个拨动开关,将开关的状态读进来并在发光二极管上显示。
七.实验报告要求1、书写实验目的、实验内容、实验连线、以及实验中的观察结果;2、画出流程图、编写实验程序,写出实验的心得体会。
一、实验目的1. 熟悉计算机输入输出设备的基本概念和作用。
2. 掌握常用输入输出设备的使用方法。
3. 了解输入输出设备的性能指标及其对计算机系统的影响。
二、实验环境1. 实验室:计算机实验室2. 硬件设备:计算机、键盘、鼠标、显示器、打印机、U盘等3. 软件:Windows操作系统三、实验内容1. 输入设备实验(1)键盘输入实验1)实验步骤:① 打开计算机,进入Windows操作系统;② 连接键盘,确保键盘正常工作;③ 打开记事本,输入一段文字;2)实验结果:成功输入文字,观察键盘布局,了解各个键位的含义;3)实验总结:熟练掌握键盘布局,提高输入速度。
(2)鼠标输入实验1)实验步骤:① 打开计算机,进入Windows操作系统;② 连接鼠标,确保鼠标正常工作;③ 使用鼠标在桌面进行拖动、点击等操作;2)实验结果:成功进行鼠标操作,熟悉鼠标的使用方法;3)实验总结:熟练掌握鼠标操作,提高操作效率。
2. 输出设备实验(1)显示器输出实验1)实验步骤:① 打开计算机,进入Windows操作系统;② 观察显示器显示的桌面背景、图标等信息;2)实验结果:显示器正常工作,显示计算机信息;3)实验总结:了解显示器的作用,熟悉显示器的性能指标。
(2)打印机输出实验1)实验步骤:① 打开计算机,进入Windows操作系统;② 将打印机连接到计算机;③ 打开文档,进行打印设置;④ 点击打印按钮,将文档打印到纸上;2)实验结果:成功将文档打印到纸上;3)实验总结:了解打印机的工作原理,熟悉打印机的性能指标。
3. 存储设备实验(1)U盘存储实验1)实验步骤:① 打开计算机,进入Windows操作系统;② 将U盘插入USB接口;③ 在文件资源管理器中找到U盘,进行文件读写操作;2)实验结果:成功将文件存入U盘,从U盘中读取文件;3)实验总结:了解U盘的工作原理,熟悉U盘的容量、读写速度等性能指标。
四、实验结果与分析1. 输入设备实验通过键盘输入实验,掌握了键盘布局和输入方法,提高了输入速度。
数字量输入输出实验一、实验目的了解P1口作为输入输出方式使用时,CPU 对P1口的操作方式。
二、实验环境1、软件环境要求Windows XP操作系统以及Keil C51 单片机集成开发环境。
2、硬件环境要求电脑一台,TD-51单片机系统,开关及LED显示单元,单次脉冲单元。
三、实验内容编写实验程序,将P1口的低4位定义为输出,高4位定义为输入,数字量从P1口的高4位输入,从P1口的低4位输出控制发光二极管的亮灭。
提高部分:LED灯控制要求:通过KK1实现LED灯工作方式即时控制,完成LED灯左循环、右循环、间隔闪烁功能。
四、实验分析P1口是8位准双向口,每一位均可独立定义为输入输出,输入位置1。
通过A的左/右移位及赋值55H、0AAH,再将A值送入P1,可实现LED灯左循环、右循环、间隔闪烁功能。
五、实验步骤(一)基础实验程序及实验程序流程图如下。
实验程序:ORG 0000HLJMP MAINORG 0100HMAIN:MOV P1,#0F0H ;将开关状态送入P1高位MOV A,P1 ;送入ASWAP A ;高低位互换MOV P1,A ;将开关状态送入P1低位JMP MAIN ;循环SJMP $END程序流程图:图1 LED开关控制显示功能图图2 实验接线图实验步骤:1. 按图2所示,连接实验电路图,图中“圆圈”表示需要通过排线连接;2. 编写实验程序,编译链接无误后进入调试状态;3. 运行实验程序,观察实验现象,验证程序正确性;4. 按复位按键,结束程序运行,退出调试状态;5. 自行设计实验,验证单片机其它IO 口的使用。
(二)提高实验程序及实验程序流程图如下。
实验程序:实验程序流程图:ORG 0000HLJMP MAINORG 0100HMAIN:KT: ;检查KK1SETB P3.3JNB P3.3,KTCLR P3.3LL1: ;左循环MOV A,#01HX1:MOV P1,ACALL DELAYRL ASETB P3.3JNB P3.3,X1CLR P3.3LL2: ;右循环MOV A,#80HX2:MOV P1,ACALL DELAYRR ASETB P3.3JNB P3.3,X2CLR P3.3LL3: ;间隔闪烁MOV A,#55HMOV P1,ACALL DELAYMOV A,#0AAHMOV P1,ACALL DELAYSETB P3.3JNB P3.3,LL3CLR P3.3JMP KTDELAY: ;延时子程序MOV R2,#00H图3 实验流程图MOV R3,#00HABC:DJNZ R2,ABCDJNZ R3,ABCRETSJMP $END实验步骤:(1)按图4连接实验电路;(2)编写实验程序,编译、链接无误后启动调试;(3)运行实验程序,每按一次KK1+,观察实验现象;(4)验证程序功能,实验结束按复位按键退出调试。
汇编上机实验报告实验目的:通过进行汇编语言上机实验,掌握汇编语言的基本语法和编程技巧,培养汇编程序设计能力。
实验内容:实验一:汇编程序的简单输入输出1.编写一个汇编程序,要求从键盘输入两个整数,然后将其相加,并将结果输出到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验二:汇编程序的条件跳转1.编写一个汇编程序,要求从键盘输入一个整数,判断其是否大于10,若是,则将其打印到屏幕上;否则,将其乘以5并打印到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验三:汇编程序的循环1.编写一个汇编程序,要求计算1到10的累加和,并将结果打印到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验四:汇编程序的数组操作1.编写一个汇编程序,要求定义一个长度为10的数组,并将数组中的值初始化为0,然后利用循环将数组中的每一个元素加1,并将每个元素的值打印到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验结果:实验一:汇编程序的简单输入输出编写的汇编程序通过键盘输入两个整数,实现了相加并将结果输出到屏幕上的功能。
程序运行正常,输出结果与预期一致。
实验二:汇编程序的条件跳转编写的汇编程序通过键盘输入一个整数,根据条件判断,实现了将输入数大于10时打印在屏幕上,否则将其乘以5并打印在屏幕上的功能。
程序运行正常,输出结果与预期一致。
实验三:汇编程序的循环编写的汇编程序通过循环计算1到10的累加和,并将结果打印在屏幕上。
程序运行正常,输出结果与预期一致。
实验四:汇编程序的数组操作编写的汇编程序通过定义一个长度为10的数组,并将数组中的值初始化为0,利用循环将数组中的每一个元素加1,并将每个元素的值打印到屏幕上。
plc实验指导书(S7-200-CPU226)1000字一、实验目的1. 熟悉 S7-200-CPU226 PLC 模块的各种输入输出接口,了解 PLC系统的基本构成。
2. 掌握基本指令的使用方法,能够设计符合实际要求的程序。
3. 通过实验提高分析问题和解决问题的能力,培养出勤、认真、细心的工作态度。
二、实验器材1. S7-200-CPU226 PLC 模块;2. 交流电源模块;3. 数字量输入模块;4. 数字量输出模块;5. 编程器。
三、实验内容实验一、基本输入输出实验1. 将交流电源模块的输入口接到外部电源,实验时将交流电源模块的指示灯发亮状态用作输入信号;2. 将数字量输出模块的输出口接到电动机,实验时将数字量输出模块的指示灯发亮状态用作输出信号;3. 设计程序,当输入信号发生改变时,输出信号也随之改变。
例如,当输入信号为低电平时,输出信号为高电平,当输入信号为高电平时,输出信号为低电平。
实验二、延时实验1. 设计程序,按一定时间间隔改变输出信号状态。
例如,每隔 2秒钟将输出信号改变一次;2. 设计程序,延时 5 秒钟后再改变输出信号状态。
例如,当输入信号为低电平时,输出信号为高电平,延时 5 秒钟后,将输出信号改变为低电平;实验三、计时实验1. 设计程序,按一定时间间隔计时,达到一定时间后改变输出信号状态。
例如,当计时达到 10 秒钟时将输出信号改变为低电平;2. 设计程序,按照一定的规律进行计时,如先计时 5 秒钟,再计时 10 秒钟,最后计时 15 秒钟。
实验四、计数器实验1. 设计程序,按照一定规律进行计数。
例如,从 0 开始每隔 1 秒钟计数 1 次,当计数达到 5 时将输出信号改变为低电平;2. 设计程序,统计外部信号发生的次数,当发生的次数达到 10 次时将输出信号改变为低电平。
四、实验步骤实验一、基本输入输出实验1. 将交流电源模块的输入口接到外部电源,并将数字量输入模块的输入口接到交流电源模块的输出口,使用编程软件进行编程;2. 在编程软件中新建程序,编写程序;3. 将数字量输出模块的输出口接到电动机,调试程序,验证实验结果。
实验报告课程名称:PIC单片机实验任课教师:周燕实验名称:基本输入输出,数码管显示实验年级、专业:10级电子信息科学与技术学号:20101060230姓名:王莹日期:2011 年 4 月11 日云南大学信息学院一、实验目的1.掌握输入、输出口的基本输入、输出功能的操作使用方法;2.掌握B口的弱上拉功能的原理和使用方法;3.看懂电路原理图,掌握将按键和显示电路连接到输入、输出口的连接方法;4.进一步熟练集成开发环境的使用方法;二、实验功能内容一、基本输入/输出实验功能:本实验要求用PIC16F877A的PORTB0-5监控与之相连的六个按键KEY0-KEY5,用PORTD0-5控制与之相连的六个发光二极管LED0-LED5。
每当有按键被按下时就点亮该按键对应的发光二极管,按键被释放后就熄灭所有的发光二极管。
运行程序,不断按击KEY0-KEY5键,看LED变化情况二、数码管显示实验功能:用PIC中档单片机的I/O口控制两位共阴极的数码管,显示小数“2.3”.其中数码管的7个笔段和小数点位分别用一; 个的完整I/O口的8个引脚来控制,两位数码管的位选信号则用另外两个I/O口来控制。
运行程序,观察两只数码管的变化情况三、实现功能用到的硬件电路设计和电路板的链接方法1.基本输入输出实验参看电路原理图说明:将跳线器JP_RB与KEY0-KEY5,JP_RD的LED0-LED7短接。
2.数码管实验参看电路原理图说明:将跳线器JP_RB的KEY0,JP_RD的SEG_A~DP短接四、软件设计流程图设计包含p16f877a.inc定义TEMP为键码转到体1开启内部弱将PORTD设置为转到体0将PORTD读取PORTB按键将3F送W寄存器与TEMP 相与,屏蔽高两将TEMP送到W寄存器TEMP取点亮按键有变化对应的LED子程序返回流程:将p16f877a.inc包含进来定义段码寄存器定义COUNT1寄存器用于延时常数定义COUNT2寄存器用于延时常数定义程序其实空指令跳转到MAIN主程序转到体1将PORTE0设置为输出端口将PORTE1设置为输出端口将PORTD设置为输出端口转到体0将PORTD清零将PORTE0清零将PORTE1清零将2存入W与0FH相与屏蔽高4位调用查表子程序获得笔段码将断码值存入ONE_BIT与80H相加,加入小数点段码送出个位段码关闭小数点后1位选通个位显示位调用延时子程序将3与0FH相与屏蔽高4位调用查表指令获得笔段码送出3的段码关闭个位显示位码和小数点选通小数位显示位码调用延时跳回重复显示3.程序设计和注释基本输入输出;****************************************Copyright(c)***************************************************;** School of Information Science and Engineering,;** Yunnan University;**;**--------------FileInfo-------------------------------------------------------------------------------;** File name: 1.asm;** Last modified Date: 2010-09-15;** Last Version: 1.0;** Descriptions:;**;**------------------------------------------------------------------------------------------------------;** Created by: Zoujin;** Created date: 2010-09-15;** Version: 1.0;** Descriptions: The original version;**;******************************************************************************************* *************;******************************************************************************************* *************;**功能:本实验要求用PIC16F877A的PORTB0~5监控与之相连的六个按键KEY0~KEY5,用PORTD0~5控制与之相连的六个发光; 二极管LED0~LED5。
实验一:输入输出实验实验环境PC机+Win 2010+emu8086 实验日期2016.6.3 一.实验内容1.熟悉emu8086仿真系统,清楚调试环境,能熟练的查看8086仿真系统的寄存器、内存、堆栈等相关内容。
2.设计并单步调试实现一位十进制数的加法运算。
例如:屏幕显示效果为3+2=5,其中,加数和被加数为键盘输入,其他为屏幕自动输出。
3.在实现了一位十进制数加法运算的基础上,尝试实现两位十进制加法运算、一位十进制数的四则运算以及十进制多位数运算等扩展要求。
二.理论分析或算法分析1、Emu8086的使用(1)打开桌面上的云端软件,选择微机原理分类,点击Emu8086的图标,,选择【新建】。
(2)选择COM模板,点击【确定】,软件出现源代码编辑器的界面在源代码编辑器的空白区域,编写如下一段小程序:代码编写结束,点击菜单【文件】【另存为……】,将源代码换名保存。
本例将源代码保存为.asm。
:(3)如果源程序无错误,则编译通过单击【单步运行】可以单步调试,程序将每执行一条指令便产生一次中断(建议使用)。
单击【后退一步】可以返回到上一条指令(这个功能也是一般调试器没有的)。
单击【运行】,程序将从第一句直接运行到最后一句。
2、设计并单步调试实现一位十进制数的加法运算。
(1)选择新建一个.COM类型的文件。
(2)在编辑界面中,键入代码。
(3)点击工具栏的【模拟】按钮,进入调试窗口,单步调试并观察寄存器的变化情况。
3、进一步完善上述程序,实现一位十进制数的加法运算。
4、在实现了一位十进制数加法运算的基础上,选择完成如下题目:两位十进制加法运算、一位十进制数的四则运算、十进制多位数运算等。
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)一位加法:org 100hmov ah, 1int 21hmov bl, al mov ah, 2 mov dl, '+' int 21hmov ah, 1int 21hand bl, 0fh and ax, 0fh add al, bl aaaor ax, 3030h mov bx, ax mov ah, 2 mov dl, '=' int 21h cmp bh, 30hje j1mov ah, 2 mov dl, bhint 21hj1:mov ah, 2 mov dl, blint 21hret 多位加法:org 100hmov ah, 1int 21hmov bh, al int 21hmov bl, al mov ah, 2mov dl, '+'int 21hmov ah, 1int 21hmov ch, al int 21hmov cl, aland bx, 0f0fh and cx, 0f0fh mov ax, cxadd ax, bxaaaor ax, 3030h mov bx, ax mov ah, 2mov dl, '='int 21h cmp bh, 30hje j1mov ah, 2mov dl, bhint 21hj1:mov ah, 2mov dl, blint 21hret一位减、乘、除:mov ah, 1int 21hand al, 0fhmov bl, al mov ah, 1int 21hmov dl, alint 21hand al, 0fhxor ah, ahcmp dl, '+'jne jp1add al, blaaajmp short jp4jp1:cmp dl, '-'jne jp2xchg al, blsub al, blaasjmp short jp4jp2:cmp dl, '*'jne jp3mul blaamjmp short jp4jp3:xchg al, bldiv blaam jp4:mov bx, axmov ah, 2mov dl, '='int 21hor bx, 3030h cmp bh, '1'jc j1mov dl, bhint 21hj1:mov dl, blint 21h四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)一位数加法:多位数加法:一位数减、乘、除法五.结论通过这次实验,我对EMU8086实验模拟环境有相应的了解,熟悉了基本的EMU8086的使用方法,同时也对mov这个指令有了深入的理解,并且知道了各个存储器里面的值得存储过程,为以后的的学习打下了坚实的基础。
实验一数字量输入输出实验一、实验目的1.熟悉教学板电路及其结构。
2.掌握利用μVision C51 软件编辑、调试(包括仿真调试、单步调试)、运行单片机程序的步骤和方法,掌握利用STC-ISP V39软件和下载线将程序写入单片机的方法。
3.通过实验熟悉51单片机的并行I/O口,并掌握它们的应用。
4.掌握矩阵键盘、LED动态显示的工作原理。
二、实验设备PC机一台、实验教学板一块。
三、实验准备1.阅读实验讲义附录一、实验教学板电路图和附录二、μVision软件使用说明2.按实验题目要求设计好硬件电路,画出电路原理图,设计出相应程序,并给程序加上较详细的注释。
四、实验内容1. 1.实验线路如附图所示,51单片机的P0口输出接8个发光二极管的阴极,P2.4经NPN三极管9011控制发光管的阳极。
P3口支持一个8位行列式键盘,其中P3.4~P3.7供键盘扫描输出,P3.2、P3.3作键盘扫描输入。
2.实验要求:编程实现键盘对发光二极管的控制,每按一个按键,使对应的二极管点亮。
2.51单片机P0口输出同时接4个数码管的阴极,P2.0~P2.3,经NPN三极管9011接数码管的阳极,该端口用于分别控制相应数码管的导通。
实验要求:编程实现对任意按键动作的次数进行计数(最大99次),同时将计数值实时显示。
五、实验步骤1.将实验板与PC机通过COM口连接。
启动PC机,进入μVision软件环境,选择建立新工程文件,即可开始输入源程序。
2.完成汇编、编译、连接,若有错误,则修改源程序,直至编译、连接通过为止。
3.接上实验板上的电源。
3.运行“STC-ISP V39.EXE”,将程序代码下载到实验板的单片机中。
操作的顺序是:1)选择单片机(MCU TYPE)型号。
如:“STC89C51RC”要与实验板上所装单片机的型号一至。
2)打开文件(Open File)。
即把要下载到单片机的程序文件(已通过编译了的机器码文件——二进制(.Bin)或十六进制(.Hex)的)调到“文件缓冲区”,这时可看到右边的“文件缓冲区”有数字变化。
实验1 输入输出实验一、实验目的1. 掌握ARM的通用输入输出接口工作原理。
2. 学习编程实现GPIO的方法,掌握I/0的功能复用,并能熟练的配置。
二、实验内容1. 通过按键输入开关量。
2. 在实验箱的主板上点亮LED灯LED1、LED2和LED3(分别接GPC5、GPC6和GPC7),并轮流闪烁。
三、预备知识1. 用EW ARM集成开发环境,编写和调试程序的基本过程。
2. ARM应用程序的框架结构。
3. 了解GPIO。
四、实验设备及工具硬件:ARM嵌入式开发平台,PC机,JTAG仿真器。
软件:操作系统WindowsXP/7,EWARM集成开发环境,仿真器驱动程序,超级终端通讯程序。
五、实验原理及说明编写程序,当用户在实验箱上按下“INTKEY”键时,在中断服务子程序中将相关信息打印到串口中,并显示在超级终端上。
1. 上拉电阻和下拉电阻上拉就是将不确定的信号通过一个电阻箝位在高电平,电阻同时起限流作用,下拉同理;上拉是对器件注入电流,下拉是输出电流。
1)一般作单键触发使用时,如果IC本身没有内接电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在IC外部另接一电阻。
2)数字电路有三种状态:高电平、低电平、和高阻状态,有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻的方式使处于稳定状态,具体视设计要求而定。
3)I/O端口驱动有的可以设置,有的不可以设置,有的是内置,有的是需要外接。
I/O 端口的输出通过一个电阻和电源连接在一起的时候,该电阻成为上拉电阻,也就是说,如果该端口正常时为高电平。
通过一个电阻和地连接在一起的时候,该电阻称为下拉电阻,使该端口平时为低电平。
当一个接有上拉电阻的端口设为输入状态时,它的常态就为高电平,用于检测低电平的输入。
4)上拉电阻是用来解决总线驱动能力不足时提供电流的,是拉电流;下拉电阻是用来吸收电流的,也就是我们通常所说的灌电流。
5)接电组就是为了防止输入端悬空。
接口实验一IO口输入、输出实验贵州大学实验报告纸实验一 I/O 口输入、输出实验一、实验目的学习单板方式下扩展简单I/O 接口的方法。
学习微处理器的编程技术。
二、实验内容数据口扩展74LS244输入数据,数据口扩展74LS273输出数据。
输入端接八位逻辑电平输出,输出端接八位逻辑电平显示,编写一个程序,读入开关状态并输出显示。
三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。
四、实验说明和电路原理图1、74LS244介绍:74LS244是三态输出的八缓冲器,由2组、每组四路输入、输出构成。
每组有一个控制端,由控制端的高或低电平决定该组数据被接通还是断开。
74LS244的引脚如图1-1A 所示。
图1-1A 74LS244 图1-1B 74LS2732、74LS273介绍:74LS273是八D 型触发器,带清除端。
本实验用74LS273输出数据,通过片选信号和写信号将数据总线上的值锁存在74LS273中,同时在74LS273的输出端口输出数据,当数据总线上的值撤消以后,由于74LS273能锁存信号,74LS273的输出端保持不变,直到有新的数据被锁存。
74LS273的引脚如图1-1B 所示。
图1-2 74LS244扩展输入电路本实验需要用到CPU模块(F3区)、八位逻辑电平输出模块(E4区)、八位逻辑电平显示模块(B5区)、扩展输入模块(F2区)、扩展输出模块(F1区)。
扩展输入电路原理图参见图1-2,扩展输出电路原理图参见图1-4,八位逻辑电平输出电路原理图参见图1-3,八位逻辑电平显示电路原理图参见图1-5。
图1-3 八位逻辑电平输出图1-4 74LS273扩展输出电路图1-5 八位逻辑电平显示五、实验程序1、实验修改后程序:;//************************************************************ **** ;文件名: In_Out for 8088;功能: I/O口输入、输出实验;接线: 用8位数据线连接八位逻辑电平输出模块的JD1E到扩展输入模块的JD2C;; 八位逻辑电平显示模块的JD4B到扩展输出模块的JD1C;; 用导线连接CPU模块的8000H到扩展输入模块的CS_244;; 8100H到扩展输出模块的CS_273。
单片机实验报告实验名称实验一开关量输入输出实验实验二继电器控制输出实验姓名:学号:指导老师:实验日期: 09.10.26一实验目的实验一目的:1.掌握AT89C51单片机的最基本电路的设计;2.了解单片机I/O端口的使用方法;实验二目的:1.掌握AT89C51单片机的最基本电路的设计;2.了解单片机I/O端口的使用方法;3.了解继电器控制电路以及小电压控制大电压的方法二实验器件实验一:序号元件名称元件规格所在元件库备注1 单片机AT89C51 Microprcessor5 按钮BUTTON Switchs &Relay6 晶振CRYSTAL Miscellaneous7 发光二极管LED-RED Optoelectronics8 电容CAP Capacitors9 电解电容CAP-ELEC Capacitors10 电阻RES Resistors11 排阻RESPACK-8 Resistors12 开关SWITCH Switchs &Relay实验二:序号元件名称元件规格所在元件库备注1 单片机AT89C51 Microprcessor2 继电器RELAY Switchs &Relay3 交流电源ALTERNATOR Simulator Primitive4 灯泡LAMP Optoelectronics5 按钮BUTTON Switchs &Relay6 晶振CRYSTAL Miscellaneous7 发光二极管LED-RED Optoelectronics8 电容CAP Capacitors9 电解电容CAP-ELEC Capacitors10 电阻RES Resistors11 开关SWITCH Switchs &Relay12 肖特基二极管DIODE-SC Diodes13 三极管2N2095 Transistors三实验内容实验一:1.利用AT89C51单片机的P0口作开关量输入口,P1口作开关量输出口;2.当P0.x端开关闭合时,对应的P1.x口的LED发光二极管点亮;当P0.x端开关断开时,对应的P1.x口的LED发光二极管不亮;3.画出AT89C51实现上述功能的完整电路图,包括单片机电源、复位电路、晶振电路和控制电路。
昆明理工大学机电工程学院嵌入式系统设计与应用实验报告书实验名称:流水灯实验年级专业及班级:级机自班姓名:学号:指导教师:张文斌、高贯斌评定成绩:教师评语:实验时间: 2014 年 12 月 13 日实验一PORTA口输入、输出实验一、实验要求1.PORTA口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2.PORTA0、PORTA1作输入口接两个拨动开关,PORTA2、PORTA3作输出口,接两个发光二极管,编写程序读取开关状态,将此状态,在发光二极管上显示出来。
注:行数不够时可加行三、实验程序流程图P1口循环点灯程序框图p1口输入输出程序框图四、实验程序1流水灯#include <hidef.h> /* common defines and macros */#include "derivative.h" /* derivative-specific definitions */ void delay (){unsigned int i,k,j;for (i=0;i<600;i++)for (k=0;k<600;k++)}void main(void) {/* put your own code here */DDRA=0FXXPORTA=0FXXEnableInterrupts;for(;;) {PORTE=0x00;PORTB=0x01;delay();PORTE=0x00;PORTB=0x02;delay();PORTE=0x00;PORTB=0x04;delay();PORTE=0x00;PORTB=0x08;delay();PORTE=0x00;PORTB=0x10;delay();PORTE=0x00;PORTB=0x20;delay();PORTE=0x00;PORTB=0x40;delay();PORTE=0x00;PORTB=0x80;delay();PORTE=0x00;PORTB=0xFF;delay();_FEED_COP(); /* feeds the dog */} /* loop forever *//* please make sure that you never leave main */}}2四个口做输入四个口做输出#include <hidef.h> /* common defines and macros */#include "derivative.h" /* derivative-specific definitions */ void main(void) {/* put your own code here */DDRA=0xFF;PORTA=0XFF;EnableInterrupts;for(;;) {If(PORTA_PA0==0)PORTA_PA5=0;else PORTA_PA5=01;If(PORTA_PA1==0)PORTA_PA6=0;else PORTA_PA6=01;If(PORTA_PA2==0)PORTA_PA4=0;else PORTA_PA4=01;If(PORTA_PA3==0)PORTA_PA7=0;else PORTA_PA7=01;_FEED_COP(); /* feeds the dog */} /* loop forever *//* please make sure that you never leave main */}}五、实验现象以及碰到什么问题?如何解决?实验现象:程序输入后,单片机上的LED灯流动交替闪烁问题:在做更改时间,获取设置值时,出现按得次数、间隔时间与得到的值不符。
输入输出程序设计实验
输入输出程序设计实验是一种编程实验,旨在测试和验证程序的输入和输出功能。
以下是输入输出程序设计实验的一些常见任务和要求:
1. 输入验证:确保程序能够正确地读取用户输入的数据,并进行必要的验证,例如检查输入的数据类型、格式和范围是否符合要求。
2. 输出格式化:确保程序能够将结果以适当的格式输出,例如表格、图形或文本。
3. 错误处理:确保程序能够妥善处理错误情况,例如输入数据不正确或异常情况,并给出适当的错误消息。
4. 数据转换:测试程序是否能够将输入数据转换为所需格式或类型,并进行必要的转换处理。
5. 数据排序:测试程序是否能够对输入数据进行排序,例如按照数字大小、字母顺序或时间顺序等。
6. 数据筛选:测试程序是否能够对输入数据进行筛选,例如根据特定条件过滤掉不需要的数据。
7. 数据统计:测试程序是否能够对输入数据进行统计,例如计算平均值、中位数、众数等。
8. 数据可视化:测试程序是否能够将数据以图形或图表的形式呈现,例如柱状图、折线图或饼图等。
在完成输入输出程序设计实验时,需要注意以下几点:
1. 确定实验目的和要求,并制定详细的实验计划和步骤。
2. 选择适当的编程语言和工具,并熟悉相关语法和库函数。
3. 设计合理的输入和输出方案,并进行充分的测试和验证。
4. 记录实验过程和结果,并进行总结和分析。
5. 根据实验结果进行优化和改进,以提高程序的性能和稳定性。
单片机原理实验报告实验一:IO开关量输入输出实验学院: 物理与机电工程学院专业: 电子科学与技术班级: 2013 级 2 班学号: 201310530208姓名: 何丽丽指导老师: 柳妮实验一IO开关量输入输出实验目的:学习单片机读取IO引脚状态的的方法。
内容:编程读取IO引脚状态。
设备:EL-EMCU-I试验箱、EXP-89S51/52/53 CPU板。
编程:首先要把相关的引脚设置在IO的输入状态,然后写一个循环,不停地检测引脚的状态。
步骤:1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。
2、连线:用导线将试验箱上的的IO1--- IO8分别连接到SWITCH 的8个拨码开关的K1---K8的输出端子K1---K8上,连接好仿真器。
3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹IO_INPUT下的工程文件IO_INPUT.Uv2编译程序,上电,在程序注释处设置断点,进入调试状态,打开窗口Peripherals-->IO-Port-->P0,改变开关状态,运行程序到断点处,观察窗口的数值与开关的对应关系。
程序:ORG 0000HLJMP MAINORG 0030HMAIN:MOV P0,#0FFHMOV A,P0SWAP AMOV P0,ASJMP MAINEND程序分析:从上面的程序可以看出我们需要用导线将试验箱上的的IO1--- IO8分别连接到SWITCH的8个拨码开关的K1---K8的输出端子K1---K8上,连接好仿真器。
在通过SWAP A MOV P0,A这组指令来对P0口所接的对应的发光二极管对应的状态通过拨码开关的开关来控制发光二极管。
结论:通过上面这段程序,我们实现了用拨码开关来控制P0口所接的发光二极管的亮灭。
通过I\O口P0.0—P0.3接拨码开关,P0.4—P0.7一一对应的接发光二极管。
实验一数字量输入输出实验
一、实验目的
1.熟悉教学板电路及其结构。
2.掌握利用μVision C51 软件编辑、调试(包括仿真调试、单步调试)、运行单片机
程序的步骤和方法,掌握利用STC-ISP V39软件和下载线将程序写入单片机的方
法。
3.通过实验熟悉51单片机的并行I/O口,并掌握它们的应用。
4.掌握矩阵键盘、LED动态显示的工作原理。
二、实验设备
PC机一台、实验教学板一块。
三、实验准备
1.阅读实验讲义附录一、实验教学板电路图和附录二、μVision软件使用说明
2.按实验题目要求设计好硬件电路,画出电路原理图,设计出相应程序,并给程序加
上较详细的注释。
四、实验内容
1. 1.实验线路如附图所示,51单片机的P0口输出接8个发光二极管的阴极,P
2.4经
NPN三极管9011控制发光管的阳极。
P3口支持一个8位行列式键盘,其中P3.4~P3.7
供键盘扫描输出,P3.2、P3.3作键盘扫描输入。
2.实验要求:编程实现键盘对发光二极管的控制,每按一个按键,使对应的二极管点
亮。
2.51单片机P0口输出同时接4个数码管的阴极,P2.0~P2.3,经NPN三极管9011接数码管的阳极,该端口用于分别控制相应数码管的导通。
实验要求:编程实现对任意按键动作的次数进行计数(最大99次),同时将计数值实时显示。
五、实验步骤
1.将实验板与PC机通过COM口连接。
启动PC机,进入μVision软件环境,选择建立
新工程文件,即可开始输入源程序。
2.完成汇编、编译、连接,若有错误,则修改源程序,直至编译、连接通过为止。
3.接上实验板上的电源。
3.运行“STC-ISP V39.EXE”,将程序代码下载到实验板的单片机中。
操作的顺序是:1)选择单片机(MCU TYPE)型号。
如:“STC89C51RC”要与实验板上所装单片机的型号一至。
2)打开文件(Open File)。
即把要下载到单片机的程序文件(已通过编译了的机器码文件——二进制(.Bin)或十六进制(.Hex)的)调到“文件缓冲区”,这时可看到右边的“文件缓冲
区”有数字变化。
3)选择串行通信口。
选对时,软件上的小灯会变绿。
否则小灯是灰色。
且在左下窗口提示“出错信息”。
4)下载:按“Download/下载”按键下载。
5)把实验板上的供电的直流电源拔掉或关掉3秒钟再插入或打开电源(为单片机上电复位)。
注意: 4)和5)顺序不能反!
4.观察单片机运行情况,验证程序是否能完成题目给出的控制要求,若不能达到要求,分析原因、查找错误,修改源程序,再次汇编、连接,重新下载、运行,直至达到题目的控制要求。
六、参考程序流程图
实验内容1流程图
实验内容2流程图
键盘处理程序流程图
七、思考题
1.在调试程序过长中,你是如何发现程序中的错误?
2.按键程序为什么要有去抖动功能,如何去抖动?
3. 在显示时,为什么要延时1ms,这个时间过长或过短,会出现什么现象?
参考程序:
1---1:
ORG 0000H
MOV P0,#0FFH ;将P2.4置1
MOV P2,#10H ;将P0口置1,关闭全部LED灯
START:LCALL KEYBOARD ;三字节长调用指令,调用KEYBOARD子程序MOV A,R2 ;将R2的值赋给累加器A
JZ START ;A=0时跳转至START
MOV A,R0 ;将RO的值赋给累加器A
DEC A ;A<-A-1
MOV DPTR,#TABLE ;指向表格地址
MOVC A,@A+DPTR ;查表得键码
MOV P0,A ;将累加器A的值赋给PO口
LJMP START ;跳转至START
TABLE: DB 0FEH,0EFH,0FDH,0DFH
DB 0FBH,0BFH,0F7H,07FH
KEYBOARD: MOV P3,#0FFH ;设置P3为0FFH
MOV R2,#4 ;循环次数
MOV R1,#0EFH ;键盘扫描值
MOV R0,#0 ;初始键值
KEY1: MOV A,R1 ;将R1的值赋给累加器A
MOV P3,A ;将A的值赋给P3口,即将R1的值赋给P3口
MOV A,P3 ;将P3口的值赋给累加器A
ANL A,#0FH ;通过逻辑与,取低四位
CJNE A,#0FH,KEY2 ;数值比较转移指令,不相等则转移,相等则顺序执行
MOV A,R0 ;R0<-R0+2
ADD A,#02H
MOV R0,A
MOV A,R1 ;R1循环左移一位
RL A
MOV R1,A
DJNZ R2,KEY1 ;R2<-R2-1,R2不等于0时原地踏步,KEY1代表PC当前值RET
KEY2: LCALL DELAY ;延时
JNB ACC.3,LOOP1 ;P3.3=0,则执行R0<-R0+1的指令
JNB ACC.4,LOOP2 ;P3.4=0,则执行R0<-R0+2的指令
LOOP1:MOV A,R0 ;R0<-R0+1
INC A
MOV R0,A
RET
LOOP2:MOV A,R0 ;R0<-R0+2
ADD A,#02H
MOV R0,A
RET
Delay: MOV R7,#20 ;延时10ms
Dela: MOV R6,#248
DJNZ R6,$ ;R6不为0,原地踏步,$代表PC当前值
DJNZ R7,Dela ;R7不为0,继续延时
RET ;返回
END
1---2
ORG 00H
START: MOV SP,#5FH ;设置栈顶指针
MOV R0,#0 ;将立即数0赋给R0,以R0记录按键次数
KEY1: MOV P3,#0F0H ;按键扫描
MOV A,P3 ;将P3口读到的值赋给累加器A
CPL A ;A取反
ANL A,#0F0H ;通过逻辑与运算,取得A的高四位
JZ MAIN ;没按键时跳转,显示初值00
LCALL Delay1 ;延时消除抖动
KEY2: MOV A,P3 ;将P3口读到的值赋给累加器A
CPL A ;A取反
ANL A,#0F0H ;通过逻辑与运算,取得A的高四位
JNZ KEY2 ;有按键时跳转,显示按键次数
LCALL Delay1 ;延时消除抖动
INC R0 ;按键次数加1
CJNE R0,#64H,MAIN ;总按键次数小于100时跳转
SJMP START ;跳转回START
MAIN: MOV A,R0 ;将R0赋给累加器A
MOV B,#10 ;将立即数10赋给B
DIV AB ;除法指令,A储存A/B的商,B储存A/B的余数,商表示十位数,余数表示个位数
ACALL KEY3 ;调用子程序KEY3
MOV P2,#01H ;打开数码管位选(十位数)
MOV P0,A ;将A的值赋给P0口,即送段选,数码管显示相应的数字
ACALL Delay2 ;延时1ms
MOV A,B ;将B(余数)赋给累加器A
ACALL KEY3 ;调用子程序KEY3
MOV P2,#02H ;打开数码管位选(个位数)
MOV P0,A ;将A的值赋给P0口,即送段选,数码管显示相应的数字ACALL Delay2 ;延时1ms
AJMP KEY1 ;跳转回KEY1
KEY3: MOV DPTR,#TABLE ;根据键值查的对应的点亮数码管的码值MOVC A,@A+DPTR
RET
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H ;点亮数码管0~9的对应码值DB 92H,82H,0F8H,80H,90H
Delay1: MOV R6,#20 ;延时10ms子程序
Dela1: MOV R7,#248
DJNZ R7,$
DJNZ R6,Dela1
RET
Delay2: MOV R6,#2 ;延时1ms子程序
Dela2: MOV R7,#250
DJNZ R7,$
DJNZ R6,Dela2
RET
END。