搜档网
当前位置:搜档网 › 七、通用IO口基本结构与输出应用

七、通用IO口基本结构与输出应用

七、通用IO口基本结构与输出应用
七、通用IO口基本结构与输出应用

51单片机P1口输入输出实验实验报告

实验一P1口输入输出实验 一实验目的 1 掌握P1口作为I/O口时的使用方法。 2 理解读引脚和读锁存器的区别。 二实验原理 由 AT89C51 组成的单片机系统,通常情况下 P0 口分时复用作为地址、数据总线, P2 口提供 A15-A8 即高 8 位地址, P3 口用作第二功能,只有 P1 口用作 I/O 口。 P1 口是 8 位准双向口,它的每一位都可独立地定义为输入或输出。既可作为 8 位的并行 I/O 口,也可作为 8 个不同的输入输出端。 P1 口的结构如图 2.1 所示,当其工作在输入方式时,对应锁存器必须先写 1 ,才能正确地读到引脚上的信号,否则,若对应锁存器的值为 0 ,执行读引脚指令时,读到的结果永远为 0 。每个 I/O 端口都有两种读入,即读锁存器和读引脚,读引脚指令一般都是以 I/O 端口为源操作数的指令,如 MOV C , P1.3 ,而读锁存器指令一般为“读 - 修改 - 写”指令,如 ANL P1.3 , C 指令,请同学们在实验中体会。图 2 中, P1.2 作为输出口, P1.3 作为输入口。

三实验内容与要求 1.编写程序实现当P1.3为低电平时(SW1闭合),发光管亮;P1.3为高电平时发光管灭。 修改程序在执行读P1.3之前,先执行CLR P1.3,观察结果是否正确,分析在第二种情况下程序为什么不能正确执行,理解读引脚和读锁存器区别。 四实验内容 实验程序: ORG 0000H MAIN: MOV SP,#60H ; 设置堆栈指针SP为60H MOV P1,#0FFH ;当P1口用作输入时,所有位对应的锁存器必须先置1 LOOP: ;CLR P1.3 MOV C,P1.3 ;读P1.3 JC LIGHT CLR P1.2 ;LED灭 SJMP LOOP LIGHT: SETB P1.2 ;LED 亮 SJMP LOOP RET END 若在执行读P1.3之前,先执行CLR P1.3,观察结果将会不正确。 五实验结论 1、当P1口用作输入时,所有位对应的锁存器必须先置1 2、在执行读P1.3之前,先执行CLR P1.3,观察结果不正确,程序不能正确执行,因为系统读取的是锁存器的状态。 3、读引脚和读锁存器区别:第一种方式是将引脚作为输入,那是真正地从外部引脚读进输入的值,第二种方式是该引脚处于输出状态时,有时需要改变这一位的状态,则并不需要真正地读引脚状态,而只是读入锁存器的状态,然后作某种变换后再输出。

简单IO口扩展实验报告样本

计算机与信息技术学院综合性实验报告 专业:通信工程年级/班级:09级 2011—2012学年第一学期课程名称单片机原理及应用指导教师祝天龙 学号姓名张乐 0908224061 实验地点计科楼 214 实验时间周二第三节课 项目名称简单I/O口扩展(交通灯) 实验类型综合性 一、实验目的 1.学习在单片机系统中扩展简单I/O接口的方法。 2.学习数据输出程序的设计方法。 3.学习模拟交通灯控制的实现方法。 二、实验仪器或设备 CPU挂箱、AT89S51CPU模块 三、实验内容 扩展实验箱上的74LS273做为输出口,控制八个发光二极管亮灭,模拟交通灯管理。 四、总体设计(设计原理、设计方案及流程等) 首先必须了解交通路灯的亮灭规律。本实验需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。不妨将L1(红)、L2(绿)、L3(黄)做为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)做为南北方向的指示灯。而交通灯的亮灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。各发光二极管的阳极通过保护电阻接到+5V的电源上,阴极接到输入端上,因此使其点亮应使相应输入端为低电平。 五、实验步骤(包括主要步骤、代码分析等) 1、实验箱244/273 PORT单元的O0~O7接实验箱上发光二极管L1~L8; 2、74LS273的片选CS273接片选信号CSO(CPLD ENCODER UNIT),此时74LS273的片选地址为CFA0H~CFA7H之间任选; 3、运行实验程序,观察LED显示情况是否与实验内容相符;

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 口,如图所示:

单片机实验一,I/O端口实验报告(2)

单片机原理与接口技术实验 实验一 I/O端口实验(2) 系别:通信工程系 专业:通信工程系11级 学号:233201122041 姓名: 实验时间:2014年3月6日 撰写日期:2014年3月9日

实验一 I/O端口实验(2) 一、实验目的 1、掌握单片机通用I/O端口的使用方法; 2、掌握I/O端口数据输入/输出的方法。 二、实验内容(与本次实验报告标题括号中的数字对应) 2、当开关状态为0101(K5K6K7K8)时,四个灯循环右移;当开关状态为1010(K5K6K7K8)时,四个灯循环左移;当开关为其它状态时,在LED1~LED4上显示开关状态。程序运行时,拨动开关,显示立即跟着变化。【基础,周四下午每人做】 三、实验设计思路 对于该题,因为有3种情况,所以参考课本P68程序,在while循环结构内添加if-else条件判断语句,分别区分右移、左移、与开关状态一致3种情况。 四、电路原理图及接线说明 绘制本次实验用到的部分完整电路原理图如下: 开关K5K6K7K8与P2.0~P2.3相连线;

LED:1~8和P1.0~P1.7相连线。 五、实验流程图 见下图: 六、调试过程及实验现象 对于第该题,一开始运行灯全亮,经按F8逐步调试后,发现P2的值怎么也无法赋给变量b,导致无论如何拨动开关,b的值都不会改变,一直等于FF,使灯全亮。后来经助教指点方知是P2口没有设置为I/O模式,以致于无法将P2的值传输给b。修改设置后,一切运行正常。 七、总结 本次实验的实验难度不大,第一题参考课本的8位左移右移例子稍作修改便可运行,因为实验原理一样;但却因为一开始自己不够细心导致的一些软件设置

单片机io口控制实验报告

单片机实验报告 实验名称:I/O口控制 姓名:张昊 学号:110404247 班级:通信2班 时间:2013.11.19 南京理工大学紫金学院电光系

一、实验目的 1、学习I/O口的使用。 2、学习延时子程序的编写和使用。 3、掌握单片机编程器的使用和芯片烧写方法。 二、实验原理 1、广告流水灯实验 (1)做单一灯的左移右移,八个发光二极管L1~L8分别接在单片机的P1.0~P1.7接口上,输出“0”的时候,发光二极管亮,开始时 P1.0->P1.1->P1.2->P1.3->...->P1.7->P1.6->...P1.0亮,重复循 环。 (2)系统板上硬件连线:把“单片机系统”A2区的J61接口的P1.0~P1.6端口与D1区的J52接口相连。要求:P1.0对应着L1,P1.1对应 L2,……,P1.7对应着L8。 P1口广告流水灯实验原理图如下

程序设计流程:流程图如下 2、模拟开关实验 (1)监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开, L1熄火。 (2)系统板上硬件连线:把“单片机系统”A2区的P1.0端口用导线连接到D1区的LED1端口上;把“单片机系统”A2区的P3.0端口用 导线连接到D1区的KEY1端口上; 实验原理图如下图

程序设计流程 二、实验内容 1、流水灯 #include sbit p10=P1^0; sbit p11=P1^1; sbit p12=P1^2; sbit p13=P1^3; sbit p14=P1^4; sbit p15=P1^5; sbit p16=P1^6; sbit p17=P1^7; unsigned char count=0; bit flag; void main() {

单片机实验报告二 单片机IO口实验

南昌大学实验报告 学生姓名:学号:专业班级: 实验类型:?验证?综合?设计?创新实验日期:2019.4.16 实验成绩: 实验二单片机I/O口实验 (一)实验目的 1.掌握单片机最小系统的构成,学习如何控制I/O口来驱动发光二极管,掌握移位和软件延时 程序的编写。 2.熟练掌握STC型开发板的使用方法和注意事项。 3.掌握应用STC_ISP烧录过程; (二)设计要求 利用51单片机及4个LED发光二极管,设计一个单片机流水灯程序,P4.7 /P4.6/ P1.6/ P1.7 来演示跑马灯。其中流水灯的变化形式多样。 (三)实验原理 STC实验箱单片机型号为IAP15W4K32S4-Student,其在线编程与在线仿真可由Keil uVision4集成开发环境和STC系列单片机在线可编程(ISP)电路实现: 1.设置STC仿真器:运行STC-ISP在线编程软件,选择“keil 仿真设置”选项,如图1 所示,单击“添加型号和头文件到keil中/ 添加STC仿真器驱动到keil中”,弹出“浏 览文件夹”对话框,在浏览文件夹中选择keil的安装目录,单击“确定”按钮即完成添 加。根据所用芯片,单击“将IAP15W4K32S4-Student设置为仿真芯片”。 图1 2.Keil uVision4环境设置:选择菜单命令Project →Options for Target →Debug,选中 “STC Monitor-51 Driver”,勾选“Load Application at Startup”选项和“Run to main()” 选项,如图2所示。单击图2右上角的“settings”按钮,弹出硬件参数设置对话框,如 图2所示,根据仿真电路所使用的串口号(本机所用为串口5)选择串口端口,如图3 所示:

单片机io口实验报告

实验一 以下所有KEIL工程、程序均命名为自己姓名的拼音 一、实验目的: 熟悉KEIL软件的开发,掌握程序下载流程 二、实验环境: 1.硬件:PC微机、单片机开发板 2.软件:KEIL 三、实验步骤: 1.在KEIL中新建工程文件,在工程文件下新建C文件“姓名首字母.c”并加入到工程 中(注意C语言编程时,工程中要保留STARTUP.A51汇编文件)。 2.编写程序,初始化内部数据寄存器0x40开始的100个地址单元,写入0x55,然后复 制到0x60开始的存储器中,使用软件仿真的方式调试程序,观察程序模拟运行的结果: #include "reg52.h" unsigned char *p,*q; unsigned char i; int main(){ p=0x40; for(i=0;i<10;i++) { *p=0x55; p++; } for(i=0;i<10;i++) { *p=*q;

q++; p++; while(1); } } 调试时,在调试界面中依次找到 a) 变量观察窗口 b) 存储器窗口 c) 单步运行 d) 全速运行 程序运行结果(存储器窗口截图): 3.编写程序,控制实验板上的LED灯:D1-D3点亮,D4-D7熄灭,D8点亮#include”reg52.h” sbit P1_4=P1^4; int main() { P1_4=0; P0=0x1E;

While(1); } 4.编写C语言程序,实现LED灯循环点亮 #include "reg52.h" void delay (unsigned z) { while(z--); } int main() { unsigned char i; P1&=~(0x01<<4); P0=0xff; i=0x01; while (1) { P0=~i; i=i<<1; if(i==0x0) i=0x01; delay(10000); } } 四、实验总结

单片机实验报告 (3)

单片机原理及接口技术 学院:光电信息科学与技术学院班级:——实验报告册 083-1 实验一系统认识实验 1.1 实验目的 1. 学习keil c51集成开发环境的操作。 2. 熟悉td-51系统板的结构和使用。 1.2实验仪器 pc 机一台,td-nmc+教学实验系统。 1.3实验内容 1. 编写实验程序,将00h—0fh共16个数写入单片机内部 ram 的30h—3fh空间。 2.编写实验程序,将00h到0fh共16个数写入单片机外部ram的1000h到100fh空间。 1.4 源程序 https://www.sodocs.net/doc/8b2649427.html, 0000h mov r1,#30h mov r2, #10h mov a, #00h mov @r1, a inc r1 inc a djnz r2,loop sjmp $ end 2. org 0000h mov dptr, #1000h mov r2, #10h mov a, #00h movx @dptr, a inc dptr inc a djnz r2,loop sjmp $ end loop: loop: 1.5 实验步骤 1.创建 keil c51 应用程序 (1)运行 keil c51 软件,进入 keil c51 集成开发环境。 - 3 -(2)选择工具栏的 project 选项,弹出下拉菜单,选择 newproject 命令,建立一个新的μvision2 工程。选择工程目录并输入文件名 asm1 后,单击保存。 (3)工程建立完毕后,弹出器件选择窗口,选择 sst 公司的 sst89e554rc。(4)为工程添加程序文件。选择工具栏的 file 选项,在弹出的下拉菜单中选择 new 目录。 (5)输入程序,将 text1 保存成asm1.asm。 (6)将asm1.asm源程序添加到 asm1.uv2 工程中,构成一个完整的工程项目。 2.编译、链接程序文件(1)设置编译、链接环境 (2)点击编译、链接程序命令,此时会在 output window 信息输出窗口输出相关信息。 3.调试仿真程序 (1)将光标移到 sjmp $语句行,在此行设置断点。 (2)运行实验程序,当程序遇到断点后,停止运行,观察存储器中的内容,验证程序功能。 1.6 实验结果. 2. 4 实验二查表程序设计实验 2.1实验目的 学习查表程序的设计方法,熟悉 51 的指令系统。 2.2实验设备 pc 机一台,td-nmc+教学实验系统 2.3实验内容 1.通过查表的方法将 16 进制数转换为 ascii 码; 2.通过查表的方法实现y=x2,其中x为0—9的十进制数,以bcd码表示,结果仍以bcd 码形式输出。

i0口输入输出实验报告

竭诚为您提供优质文档/双击可除i0口输入输出实验报告 篇一:实验二I-o口输入、输出实验报告 单片机实验报告2 姓名学号 时间地点 实验题目I/o口输入、输出实验 一、实验目的 1.学习I/o口的使用方法。 2.学习延时子程序、查表程序的编写和使用。 二、实验仪器和设备 pc机、wAVe软件、仿真器+仿真头、实验板、电源等。 三、实验说明 本实验1通过单片机的I/o口控制LeD的亮灭,从而观察I/o口的输出。实验2通过单片机的I/o口接受按键动作信息,然后通过LeD和数码管指示。通过本实验学生可以掌握单片机I/o口输入输出的控制方法,同时也可以掌握单片机延时子程序、查表程序的编写和调试方法。要求预先编写

好程序并通过伟福仿真软件调试。 四、实验内容 1、p0口做输出口,接八只LeD,编写程序,使LeD循环点亮,间隔0.5秒。 2、p1.0--p1.7作输入口接拨动开关s0--s7;p0.0--p0.7作输出口,接发光二极管L1—L8,编写程序读取开关状态,将此状态在对应的发光二极管上显示出来,同时将开关编号(0—7)显示在LeD数码管上。编程时应注意p1作为输入口时应先置1,才能正确读入值。 五、实验电路连线 p0.0----LeD0p1.0-----s0p0.1----LeD1p1.1-----s1p 0.2----LeD2p1.2-----s2p0.3----LeD3p1.3------s3p 0.4----LeD4p1.4------s4p0.5----LeD5p1.5------s5 p0.6----LeD6p1.6------s7p0.7----LeD7p1.7------s8 实验1:p0口循环点灯实验2:p1、p0口输入输出 ag fba bcdefgh(dp) e h(dp) 实验2:LeD数码管各段与I/o的连接d c

单片机实验报告-利用单片机的P1口作IO口

单片机原理及应用实验报告 实验名称:实验一 一、实验目的 利用单片机的P1口作IO口,使用户学会利用p1口作为输入和输出。 二、实验设备及器件 IBM PC机一台 DO-51PRO单片机综合仿真实验仪一台 三、实验内容 1、编写一段程序,用P1口作为控制端口,使D1区的LED轮流亮。 2、编写一段程序,用P1.0~P1.6口控制LED.P1.7控制LED的亮和灭(P1.7接按键, 按下时LED亮,不按时LED灭) 四、实验步骤 1、连接好电路,如下图所示: 2、编写一个延时程序。 3、将LED轮流亮的程序编写完整并调试运行。 4、使用导线将A2区的J16接口的P1.0~P1.6与D1区的J51接口的LED1~LED7相连, 另外A2区的J61接口的P1.7与D1区的J53的KRY1相连。如下图所示: 5、编写P1.7控制LED的程序,并调试运行。(按下KEY1看是否全亮) 6、A2区J61接口的P1.7与D1区的J54的SW1相连。然后运行程序,拨动开关 MOD_SW1查看结果。

五、实验程序 程序一: ORG 0000H ;此为硬件仿真调试程序,如果用户使用软件仿真或直接运行,应改为0000H LJMP Main ORG 0100H ;此为硬件仿真调试程序,如果用户使用软件仿真或直接运行,应改为0100H Main: MOV A,#0FFH CLR C MainLoop: CALL Delay RLC A MOV P1,A SJMP MainLoop Delay: MOV R7, #0 Loop: MOV R6, #0 DJNZ R6, $ DJNZ R6, $ DJNZ R6, $ DJNZ R7, Loop RET END 运行结果:调试运行时,LED轮流的被点亮。 程序二: ORG 0000H ;此为硬件仿真调试程序,如果用户使用软件仿真或直接运行,应改为0000H LJMP Main ORG 0100H ;此为硬件仿真调试程序,如果用户使用软件仿真或直接运行,应改为0100H Main: JB P1.7,SETLED CLRLED: CLR P1.0 CLR P1.1 CLR P1.2 CLR P1.3 CLR P1.4 CLR P1.5 CLR P1.6

单片机实验报告

目录 一、实验一 (1) 二、实验二 (7) 三、实验三 (11) 四、实验四 (15)

实验一定时/计数器验证实验 一、实验目的 熟悉定时/计数器T0的特点,学会合理选择定时方式并能根据具体情况结合软件的方式定时。 二、实验设备及器件 IBM PC机一台 PROTEUS 硬件仿真软件 Keil C51。 三、实验内容 用AT89C51单片机的定时/计数器T0产生1s的定时时间,作为秒计数时间,当1s产生时秒计数加1;秒计数到60时,自动从0开始。 四、实验要求 要求采用Proteus软件实现上述实验。 五、实验步骤 1.打开Proteus ISIS编辑环境,按照表1-1所列的元件清单添加元件。 表1-1 元件清单 元件全部添加后,在Proteus ISIS的编辑区域中按图1-1所示的原理图连接硬件电路。

图1-1 电路原理图 2.根据参考程序绘出流程图,并辅以适当的说明。 流程图如图1-2所示:

图1-2 程序流程图 3.打开KeilμVision4,新建Keil项目,选择AT89C51单片机作为CPU,将参考 程序导入到“Source Group 1”中。在“Options for Target”对话窗口中,选中“Output”选项卡中的“Create HEX File”选项和“Debug”选项卡中的“Use:Proteus VSM Simulator”选项。编译汇编源程序,改正程序中的错误。 4.在Proteus ISIS中,选中AT89C51并单击鼠标左键,打开“Edit Component” 对话窗口,设置单片机晶振频率为12MHz,在此窗口中的“Program File” 栏中,选择先前用Keil生成的.HEX文件。在Proteus ISIS的菜单栏中选择“File”→“Save Design”选项,保存设计,在Proteus ISIS的菜单栏中,打开“Debug”下拉菜单,在菜单中选中“Use Remote Debug Monitor”选项,以支持与Keil的联合调试。 5.在Keil的菜单栏中选择“Debug”→“Start/Stop Debug Session“选项,

实验报告一、单片机IO口的综合应用

院系物理与电子信息学院专业电子与电子信息工程班级10电专(2)姓名刘伟生学号1060710057 同组人/ 实验室S2312 组号/ 日期 课程单片机原理与应用指导老师肖鹏程成绩 试验项目编号试验项目名称单片机定时器的综合应用 一、实验目的 1.熟悉Keil uVision2软件的安装和应用; 2.熟悉Proteus7.8软件的安装和应用; 3.掌握单片机的I/O口只作为Output的使用方法; 4.掌握单片机的I/O口Input与Output综合运用的使用方法。 二、实验环境 1.微机一台; 2.Proteus7.8电路设计和仿真软件; 3.Keil uVision2编译和调试软件; 三、实验原理 图1是单片机I/O口为Output的电路原理图,P0接8只LED,限流电阻为220Ω,P2口接一只共阳7段数码管,限流电阻为220Ω,时钟电路接在单片机的DIP18、DIP19,复位电路接在单片机的DIP9, DIP31接Vcc。 注意:所有元器件要按实物重新封装。 用C语言编写程序,使该电路的功能为,上电后LED显示二进制数0xfe,数码管显示0。修改程序,使二极管显示数据依次为0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,数码管依次显示。 图1单片机输出控制电路原理图 单片机I/O口作为Output输出的程序

图2是使用与非门、或非门设计全加器的电路原理图,4位拨码开关用于信号输入,2只LED分别是和(Sum)输出、进位(CY)输出,用拨码开关改变输入状态,2只LED能显示相应的输出状态。 图2全加器电路原理图 图3是单片机I/O口Input与Output综合运用的电路原理图,P1口接1只4位拨码开关,P00和P07分别是和(Sum)输出、进位(CY)输出。用C语言编写程序,使该电路实现的功能为,用拨码开关改变输入状态,2只LED能显示相应的输出状态。 图3单片机全加器电路原理图 单片机I/O口Input与Output综合运用的程序 四、实验步骤 1.安装Keil uVision2; 2.安装Proteus 7.8; 3.在Proteus ISIS环境下设计一个用单片机的I/O口(P0)作为Output控制8只LED,单片机的I/O口(P2)作为Output控制1只7段共阳数码管的电路;4.在Keil uVision2环境下,用C语言编写单片机实现P0口输出数据0xfe,P2口输出数据0xc0的程序,编译生成hex文件。当出现错误时,使用Debug调试和修改程序,直到生成hex文件。 5.将生成的hex文件加载到单片机,运行仿真,观察现象,记录结果; 6.修改程序,使二极管显示数据依次为0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,数码管依次显示,运行仿真,观察现象,记录结果;

单片机实验 IO口的输入输出实验

实验二I/O口输入、输出实验 一、实验目的 1. 学习I/O口的使用方法。 2. 学习延时子程序、查表程序的编写和使用。 二、参考程序框图 三、程序设计 1、P0口循环点亮程序 ORG 0030H START : MOV P2,#00H; //消影 MOV A ,#01H; // LOOP : MOV P2 ,A; //点亮一个led灯

ACALL DELAY; //延时500ms RL A; //左移一位 AJMP LOOP; //跳转循环 DELAY : MOV R7,#10; //延时程序 DE1 : MOV R6,#200; DE2 : MOV R5,#123; DJNZ R5,$; DJNZ R6,DE2; DJNZ R7,DE1; RET END 2、I/O口输入输出(方法一) ORG 0000H; START : MOV P2,#00H; //初始化 MOV P0,#00H; MOV P1,#0FFH; //p1口初始化给ffh值 MOV DPTR,#TABLE; //表地址存入DPTR MOV 50H,#0FEH; //比较初值载入地址50h L0 :MOV A,P1; //按键消抖 CJNE A,#0FFH,L1; AJMP L0; L1 :MOV A,P1; CJNE A,#0FFH,LL1; AJMP L0; LL1 :CJNE A,50H,LL2; //是否与地址50h中数据相等 MOV P0,A; //相等输出对应led灯 MOV A,#00H; MOVC A,@A+DPTR; MOV P2,A; //输出表格数据到数码管 LCALL DELAY; //延时 LJMP START; //返回程序开头 LL2 :XCH A,50H; //交换数据 RL A; //左移 XCH A,50H; //再次交换,此时地址50h中数据左移一位 INC DPTR; //表格数据地址加一 LJMP LL1; //返回继续比较 DELAY : MOV R7,#01H; //延时程序 DE1 : MOV R6,#28H; DE2 : MOV R5,#5AH; DJNZ R5,$;

单片机实验报告

单片机实验报告 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

目录 一、实验 一 (1) 二、实验 二 (7) 三、实验 三 (11) 四、实验 四 (15)

实验一定时/计数器验证实验 一、实验目的 熟悉定时/计数器T0的特点,学会合理选择定时方式并能根据具体情况结合软件的方式定时。 二、实验设备及器件 IBM PC机一台 PROTEUS 硬件仿真软件 Keil C51。 三、实验内容 用AT89C51单片机的定时/计数器T0产生1s的定时时间,作为秒计数时间,当1s产生时秒计数加1;秒计数到60时,自动从0开始。 四、实验要求 要求采用Proteus软件实现上述实验。 五、实验步骤 1.打开Proteus ISIS编辑环境,按照表1-1所列的元件清单添加元件。 表1-1 元件清单 元件全部添加后,在Proteus ISIS的编辑区域中按图1-1所示的原理图连接硬件电路。

图1-1 电路原理图 2.根据参考程序绘出流程图,并辅以适当的说明。 流程图如图1-2所示:

图1-2 程序流程图 3.打开KeilμVision4,新建Keil项目,选择AT89C51单片机作为CPU, 将参考程序导入到“Source Group 1”中。在“Options for Target”对话窗口中,选中“Output”选项卡中的“Create HEX File”选项和“Debug”选项卡中的“Use:Proteus VSM Simulator”选项。编译汇编源程序,改正程序中的错误。 4.在Proteus ISIS中,选中AT89C51并单击鼠标左键,打开“Edit

2单片机IO口控制实验实验报告

单片机IO口控制实验 一、实验目的 1、熟悉MCS-51的I/O结构; 2、掌握MCS-51 I/O的使用方法; 3、掌握MCS-51的中断机制。 二、实验原理 1、MCS-51单片机的硬件结构片内结构: 2、内部数据存储器(字节地址为00H~0FH):

3、SFR的名称及其分布: 4、I/O端口地址: 5、P0~P3端口功能总结: (1)P0~P3口都是并行I/O口,但P0口和P2口,还可用来构建系统的数据总线和地址总线,所以在电路中有一个MUX,以进行转换。而P1口和P3口无构建系统的数据总线和地址总线的功能,因此,无MUX。P0口的MUX的一个输入端为“地址/数据”信号。P2口的MUX的一个输入信号为“地址”信号。 (2)在4个口中只有P0口是一个真正的双向口,P1~P3口都是准双向口。 原因:P0口作数据总线使用时,需解决芯片内外的隔离问题,即只有在数据传送时芯片内外才接通;不进行数据传送时,芯片内外应处于隔离状态。为此,

P0口的输出缓冲器应为三态门。P0口中输出三态门是由两只场效应管(FET)组成,所以是一个真正的双向口。 P1~P3口,上拉电阻代替P0口中的场效应管,输出缓冲器不是三态的-准双向口。(3)P3口的口线具有第二功能,为系统提供一些控制信号。 因此P3口增加了第二功能控制逻辑。这是P3口与其它各口的不同之处。 6、P0口结构及特点: ⑴P0口结构与运作 1个输出锁存器,用于进行输出数据的锁存; 2个三态输入缓冲器,分别用于锁存器和引脚数据的输入缓冲;1个多路开关MUX,它的一个输入来自锁存器,另一个输入是地址/数据信号的反相输出。在控制信号的的控制下能实现对锁存器输出端和地址/数据线之间的切换;由两只场效应管组成的输出驱动电路。 ⑵P0口的特点 P0口是一个双功能的端口:地址/数据分时复用口和通用I/O口; 具有高电平、低电平和高阻抗3种状态的I/O端口称为双向I/O端口。P0口作地址/数据总线复用口时,相当于一个真正的双向I/O口。而用作通用I/O口时,由于引脚上需要外接上拉电阻,端口不存在高阻(悬空)状态,此时P0口只是一个准双向口; 为保证引脚上的信号能正确读入,在读入操作前应首先向锁存器写1; 单片机复位后,锁存器自动被置1; 一般情况下,如果P0口已作为地址/数据复用口时,就不能再用作通用I/O口使用;P0口能驱动8个TTL负载。 7、P1口的结构及特点: ⑴P1口结构与运作 一个数据输出锁存器,用于输出数据的锁存; 两个三态输入缓冲器,BUF1用于读锁存器,BUF2用于读引脚; 数据输出驱动电路,由场效应管VT和片内上拉电阻R组成。

单片机实验报告含仿真设计

单片机原理及应用课程 实验报告 专业: 班级: 姓名: 学号:

实验一、keilC51及proteus软件的使用 一、实验目的: 1、掌握keil和proteus软件的基本操作 2、通过具体实例掌握keil和proteus软件的使用。 二、实验原理: keil使用步骤,proteus使用步骤 三、程序: 四、实验结果分析: 五、总结:学会了使用keil和proteus软件,掌握了利用keil和proteus 软件进行仿真的步骤。

实验二、并行输入/输出接口实验 一、实验目的: 1、进一步熟悉keil仿真软件、proteus仿真软件的使用。 2、了解并熟悉单片机I/O口和LED灯的电路结构,学会构建简单的流水灯电路。 3、掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。 二、实验原理: MCS 51单片机的串行口在实际使用中通常用于三种情况:利用方式0 扩展并行i/0 接口:利用方式1 实现点对点的双机通信;利用方式2 或方式3 实现多机通信。利用方式0 扩展并行i/0 接口MCS 5 1 单片机的串行口在方式0 时,若外接一个串入并出的移位寄存器,就可以扩展并行输出口;若外接一个并入串出的移位寄存器,就可以扩展并行输入口。 三、程序: #include sbit P1_0=P1^0; void main() { unsigned char i; unsigned int j; SCON=0x00; i=0x01; for(;;) { P1_0=0; SBUF=I; while(!TI) {i} P1_0=1;TI=0; for(j=0;j<=254;j++){;}

单片机io口控制实验定稿版

单片机i o口控制实验 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

单片机实验报告 I/O口控制 实验名 称: 姓 名:高知明 学号: 班级:通信3 时间: 南京理工大学紫金学院电光系 一、实验目的 1、学习I/O口的使用。 2、学习延时子程序的编写和使用。 3、掌握单片机编程器使用和芯片烧写方法。 二、实验原理 1.灯闪烁实验 (1)在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。电原理图如图3.1所示。

(2)系统板上硬件连线 把“单片机系统”A2区的J61接口的P1.0- P1.6端口与D1区的J52接口相连。 (3)程序设计流程 本 实 验 程 序 设 计 可参考程序流程3.2 图3.1灯闪烁实验电路原理 图3.2程序流程图 2.广告流水灯实验 (1)做单一灯的左移右移,硬件电路图如图3.3所示,八个发光二极管L1-L8 分别接在单片机的接口上,输出“0”时,发光二极管亮,开始时P1.0→P1.1→ P1.2→P1.3→…→P1.7→P1.6→…P1.0亮,重复循环。 (2)系统板上硬件连线

把“单片机系统”A2区的J61接口的P1.0- P1.6端口与D1区的J52接口相连。要求:P1.0对应着L1,P1.1对应着L2,…,P1.7对应着L8. (3)程序设计流程 本实验程序设 计可参考程序流程,如 图3.4所示 图 3.3 P1口广告流水灯实验电 路原理图 图3.4广告流水灯实验流程 3、模拟开关实验 (1)监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示 开关状态,如果开关合上,L1亮,开关打开,L1熄灭,如图3.5所示(2)系统板上硬件连线 把“单片机系统”A2区的P1.0端口用导线连接到D1区的LED1端口上; 把“单片机系统”A2区的P3.0端口用导线连接到D1区的KEY1端口上;

单片机IO口控制实验实验报告

2单片机IO 口控制实验实验报告 单片机IO口控制实验 一、实验目的 1、熟悉MCS-51的I/O 结构; 2、掌握MCS-51 I/O 的使用方法; 3、掌握MCS-51的中断机制。 二、实验原理 1、MCS-51单片机的硬件结构片内结构: 2、内部数据存储器: 3、SFR的名称及其分布: 4、I/O端口地址: 5、P0?P3端口功能总结: P0?P3 口都是并行I/O 口,但P0 口和P2 口,还可用来构建系统的数据总线和地址总线,所以在电路中有一个MUX 以进行转换。而P1 口和P3 口无构建系统的数据总线和地址总线的功能,因此,无MUX P0 口的MUX的一个输入端为“地址/数据”信号。P2 口的MUX勺一个输入信号为“地址” 信号。 在4个口中只有P0 口是一个真正的双向口,P1?P3 口都是准双向口。 原因:P0 口作数据总线使用时,需解决芯片内外的隔离问题,即只有在数据传送时芯片内外才接通;不进行数据传送时,芯片内外应处于隔离状态。为此。

P0口的输出缓冲器应为三态门。P0 口中输出三态门是 两只场效应管组成,所以是一个真正的双向口。 P1?P3 口,上拉电阻代替P0 口中的场效应管,输出缓冲器不是三态的一准双向口。P3 口的口线具有第二功能, 为系统提供一些控制信号。 因此P3 口增加了第二功能控制逻辑。这是P3 口与其它 各口的不同之处。 6、P0 口结构及特点:⑴P0 口结构与运作 1个输出锁存器,用于进行输出数据的锁存; 2个三态输入缓冲器,分别用于锁存器和引脚数据的输入缓冲;1个多路开关MUX它的一个输入来自锁存器,另一个输入是地址/数据信号的反相输出。在控制信号的的控制下能实现对锁存器输出端和地址/数据线之间的切换;两 只场效应管组成的输出驱动电路。 ⑵P0 口的特点 P0 口是一个双功能的端口:地址/数据分时复用口和通 用I/O 口; 具有高电平、低电平和高阻抗3种状态的I/O端口称为 双向I/O端口。P0 口作地址/数据总线复用口时,相当于一个真正的双向I/O 口。而用作通用I/O 口时,于引脚上需要外接上拉电阻,端口不存在高阻状态,此时P0 口只是一个 准双向口;为保证引脚上的信号能正确读入,在读入操作前应首

单片机实验报告,存储器读写,IO端口操作,定时中断,外部中断等

实验一存储器读写 实验目的: 1、掌握寄存器、存储器读写等汇编指令; 2、掌握编程软件编辑、编译、调试等基本操作。 实验容: 1、将下面的汇编程序输入到WAVE集成开发软件中 ORG 0000H ;复位入口 SJMP START ;无条件跳转至START ORG 0030H ;系统初始化 START:MOV R0,#07H ;将直接数存入R0寄存器 MOV R1,#0FEH ;将直接数FE存入R1寄存器 ADD A,R0 ;将R0寄存器中的容与A累加器中的容相加 ADDC A,R1 ;将R1寄存器中的容与A累加器中的容相加 MOV DPTR,#2000H ;将直接数2000H存入指针DPTR MOVX DPTR,A ;将A累加器中容存入以DPTR为地址单元中 MOVX A,DPTR ;将以DPTR为地址单元中容存入A累加器中 INC A ;A累加器所在地址自动加一 MOV P1,A ;将A累加器中容存入P1中 END ;结束 2、选择菜单“仿真器”→“仿真器设置”,按下图所示完成软件

初始设置。

3、选择菜单“项目”下“编译”,编译通过后,选择“单步运行”,观察记录寄存器(R0、R1)、累加器(A)、程序状态字(PSW)、外部存储器(2000H单元)、I/O端口(P1)的数据变化。

思考题:试用汇编语言编写一段程序,判断R1、R2、R3三个寄存器中存放的数据大小,并按从大到小的顺序重新存放到R1、R2、R3三个寄存器中。 ORG 0000H ;复位入口 SJMP START ;无条件跳转至START ORG 0030H ;系统初始化 START:MOV R1,#01H ;将直接数01H存入R1寄存器 MOV R2,#04H ;将直接数04H存入R2寄存器 MOV R3,#09H ;将直接数09H存入R3寄存器 CLR C ;将C累加器清零 MOV A,R1 ;将R1寄存器中的容存入A累加器中 SUBB A,R2 ;两数比较 JNC LOOP0 ;无借位跳转(R1大则转LOOP0) MOV A,R1 ;将R1寄存器中的容存入A累加器中 XCH A,R2 ;交换R2寄存器与A累加器中的容 MOV R1,A ;将A累加器中的容存入R1寄存器中(交换R1和R2容) CLR C ;将C累加器清零 LOOP0: MOV A,R1 ;将R1寄存器中的容存入A累加器中 SUBB A,R3 ;两数比较 JNC LOOP1 ;无借位跳转(R1大则转LOOP1) MOV A,R1 ;将R1寄存器中的容存入A累加器中 XCH A,R3 ;交换R3寄存器与A累加器中的容 MOV R1,A ;将A累加器中的容存入R1寄存器中(交换R1和R3容) CLR C ;将C累加器清零 LOOP1: MOV A,R2 ;将R2寄存器中的容存入A累加器中 SUBB A,R3 ;两数比较 JNC LOOP2 ;无借位跳转(R2大则转LOOP2) MOV A,R2 ;将R2寄存器中的容存入A累加器中 XCH A,R3 ;交换R3寄存器与A累加器中的容 MOV R2,A ;将A累加器中的容存入R1寄存器中(交换R2和R3容)LOOP2: MOV R2,A ; LOOP1:将A累加器中的容存入R2寄存器中 RET ;结束 心得体会:本次实验主要学习了WAVE软件基本操作运用,并进一步深入学习汇编语言,并用汇编语言进行程序编写,解决一些实际问题.

最新 单片机IO口控制实验报告

单片机I/O口的控制 一、实验目的 1、熟悉MCS-51的I/O结构; 2、掌握MCS-51 I/O的使用方法; 3、掌握MCS-51的中断机制。 二、实验原理 1、MCS-51单片机的硬件结构片内结构: 2、内部数据存储器(字节地址为00H~0FH):

3、SFR的名称及其分布: 4、I/O端口地址: 5、P0~P3端口功能总结: (1)P0~P3口都是并行I/O口,但P0口和P2口,还可用来构建系统的数据总线和地址总线,所以在电路中有一个MUX,以进行转换。而P1口和P3口无构建系统的数据总线和地址总线的功能,因此,无MUX。P0口的MUX的一个输入端为“地址/数据”信号。P2口的MUX的一个输入信号为“地址”信号。 (2)在4个口中只有P0口是一个真正的双向口,P1~P3口都是准双向口。 原因:P0口作数据总线使用时,需解决芯片内外的隔离问题,即只有在数据传送时芯片内外才接通;不进行数据传送时,芯片内外应处于隔离状态。为此,

P0口的输出缓冲器应为三态门。P0口中输出三态门是由两只场效应管(FET)组成,所以是一个真正的双向口。 P1~P3口,上拉电阻代替P0口中的场效应管,输出缓冲器不是三态的-准双向口。(3)P3口的口线具有第二功能,为系统提供一些控制信号。 因此P3口增加了第二功能控制逻辑。这是P3口与其它各口的不同之处。 6、P0口结构及特点: ⑴P0口结构与运作 1个输出锁存器,用于进行输出数据的锁存; 2个三态输入缓冲器,分别用于锁存器和引脚数据的输入缓冲;1个多路开关MUX,它的一个输入来自锁存器,另一个输入是地址/数据信号的反相输出。在控制信号的的控制下能实现对锁存器输出端和地址/数据线之间的切换;由两只场效应管组成的输出驱动电路。 ⑵P0口的特点 P0口是一个双功能的端口:地址/数据分时复用口和通用I/O口; 具有高电平、低电平和高阻抗3种状态的I/O端口称为双向I/O端口。P0口作地址/数据总线复用口时,相当于一个真正的双向I/O口。而用作通用I/O口时,由于引脚上需要外接上拉电阻,端口不存在高阻(悬空)状态,此时P0口只是一个准双向口; 为保证引脚上的信号能正确读入,在读入操作前应首先向锁存器写1; 单片机复位后,锁存器自动被置1; 一般情况下,如果P0口已作为地址/数据复用口时,就不能再用作通用I/O口使用;P0口能驱动8个TTL负载。 7、P1口的结构及特点: ⑴P1口结构与运作 一个数据输出锁存器,用于输出数据的锁存; 两个三态输入缓冲器,BUF1用于读锁存器,BUF2用于读引脚; 数据输出驱动电路,由场效应管VT和片内上拉电阻R组成。

相关主题