当前位置:文档之家› 最新 单片机IO口控制实验报告

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

最新 单片机IO口控制实验报告
最新 单片机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组成。

⑵P1口的特点

P1口由于有内部上拉电阻,没有高阻抗输入状态,所以称为准双向口。作为输出口时,不需要再在片外拉接上拉电阻;

P1口读引脚输入时,必须先向锁存器写入1,其原理与P0口相同;

P1口能驱动4个TTL负载。

8、P2口结构及特点:

⑴P2口结构与运作

一个数据输出锁存器,用于输出数据的锁存;

两个三态输入缓冲器,BUF1用于读锁存器,BUF2用于读引脚;

一个多路开关MUX,它的一个输入来自锁存器的Q端,另一个输入来自内部地址的高8位;

数据输出驱动电路由非门M,场效应管VT和片内上拉电阻R组成。

⑵P2口的特点

P2口用作高8位地址输出线应用时,与P0口输出的低8位地址一起构成16位的地址总线,可以寻址64KB地址空间。

当P2口作高8位地址输出口时,其输出锁存器原锁存的内容保持不变。

作为通用I/O口使用时,P2口为准双向口,功能与P1口一样。

P2口能驱动4个TTL负载。

9、P3口结构及特点:

⑴P3口结构组成

一个数据输出锁存器,用于输出数据的锁存;

3个三态输入缓冲器,BUF1用于读锁存器,BUF2、BUF3用于读引脚和第二功能数据的缓冲输入;

数据输出驱动电路,由与非门M,场效应管VT和片内上拉电阻R组成。

⑵P3口的特点

P3口内部有上拉电阻,不存在高阻输入状态,是一个准双向口;

P3口作第二功能的输出/输入或作通用输入时,均需将相应的锁存器置1。实际应用中,由于复位后P3口锁存器自动置1,已满足第二功能运作条件,所以可以直接进行第二功能操作;

P3口的某位不作为第二功能使用时,则自动处于通用输出/输入口功能,可作为通用输出/输入口使用;

作通用输出/输入口使用时,输入信号取自缓冲器BUF2的输出端,作第二功能使用时,输入信号取自缓冲器BUF3的输出端;

P3口能驱动4个TTL负载。

10、IO口锁存器操作:

IO口锁存器值与IO口值不一定一致,应采用读锁存器-修改-写锁存器来进行IO控制。

11、MCS-51的中断系统:

单片机能及时地响应和处理单片机外部事件或内部事件所提出的中断请求。对事件的整个处理过程,称为中断处理(或中断服务)。

12、五个中断请求源:

(1)INT0*—外部中断请求0,由引脚INT0*输入,中断请求标志为IE0。(2)INT1*—外部中断请求1,由引脚INT1*输入,中断请求标志为IE1。(3)定时器/计数器T0溢出中断请求,中断请求标志为TF0。

(4)定时器/计数器T1溢出中断请求,中断请求标志为TF1。

(5)串行口中断请求,中断请求标志为TI或RI。

由特殊功能寄存器TCON和SCON的相应位锁存。

13、复位及中断入口地址表:

14、MCS-51中断系统的结构:

5个中断请求源;两个中断优先级,可两级嵌套。

15、中断控制:

a、中断允许寄存器IE

CPU对中断源的开放或屏蔽,由片内的中断允许寄存器IE控制。字节地址为A8H,可位寻址。格式如下:

IE对中断的开放和关闭为两级控制

总的开关中断控制位EA(IE.7位):

EA=0,所有中断请求被屏蔽。

EA=1,CPU开放中断,但五个中断源的中断请求是否允许,还要由IE中的5个中断请求允许控制位决定。

IE中各位的功能如下:

(1)EA:中断允许总控制位

0:CPU屏蔽所有的中断请求(CPU关中断);

1:CPU开放所有中断(CPU开中断)。

(2)ES:串行口中断允许位

0:禁止串行口中断;

1:允许串行口中断。

(3)ET1:定时器/计数器T1的溢出中断允许位

(4)EX1:外部中断1中断允许位

(5)ET0:定时器/计数器T0的溢出中断允许位

(6)EX0:外部中断0中断允许位。

MCS-51复位后,IE清0,所有中断请求被禁止。

若使某一个中断源被允许中断,除了IE相应的位的被置“1”,还必须使EA位=1。

改变IE的内容,可由位操作指令来实现,即:

SETB bit;

CLR bit。

b、中断优先级寄存器IP

两个中断优先级,可实现两级中断嵌套。

归纳为两条基本规则:

(1)低优先级可被高优先级中断,反之则不能。

(2)同级中断不会被它的同级中断源所中断。

若CPU正在执行高优先级的中断,则不能被任何中断源所中断。

中断优先级寄存器IP,其字节地址为B8H。

IP各个位的含义:

(1)PS——串行口中断优先级控制位

1:高优先级中断;

0:低优先级中断。

(2)PT1——定时器T1中断优先级控制位

1:高优先级中断;

0:低优先级中断。

(3)PX1——外部中断1中断优先级控制位

1:高优先级中断;

0:低优先级中断。

4)PT0——定时器T0中断优先级控制位

1:高优先级中断;

0:低优先级中断。

(5)PX0——外部中断0中断优先级控制位

1:高优先级中断;

0:低优先级中断。

由软件可改变各中断源的中断优先级。

16、INT0/1相关控制位:

IT0/IT1——触发方式选择位

0:低电平触发方式,-INT0/1低电平时IE0/IE1=0,

INT0/1高电平时IE0/IE1=1。

1:下降沿触发方式,检测到下降沿,则使IE0/IE1=1,CPU相应中断后自动清除IE0/IE1。

三、实验内容

(1)编写程序,用P1.0~P1.2口连LED,查询拨盘开关SW1的状态来控制LED的亮和灭(P1.7口接SW1)。

(2)编写程序,用P1.0~P1.2口连LED ,用按键开关KEY1作为外部中断输入INT0控制LED的亮和灭。(每按一次按键LED状态取反一次)。

四、protel电原理图

1、

2、

五、程序流程图

1、

2、

主程序流程图

中断程序流程图

六、程序清单

1、

ORG 8000H ;硬件仿真程序

LJMP Main

ORG 80F0H ;硬件仿真调试程序

Main:

JB P1.7,SETLED ;按键没有按下时,跳转到SETLED CLRLED:

CLR P1.0

CLR P1.1

CLR P1.2 ;P1.0~P1.2清零

SJMP Main

SETLED:

SETB P1.0

SETB P1.1

SETB P1.2 ;P1.0~P1.2置1

SJMP Main

;

END

2、

ORG 8000H

LJMPMain

ORG 8003H

LJMPINT0 ;跳转到中断服务程序

ORG 8100H

Main:

CLR P1.0 ;给LED一个初态,熄灭

CLR P1.1

CLR P1.2

BACK1:

JB P3.2,BACK1 ;等待Key1中断进入,INT0引脚变低

SETBTR0 ;为T0的启动做准备

SETBIT0 ;指定INT0为边沿触发方式

SETBEX0 ;开放INT0中断

SETBEA ;开放CPU的中断

SJMP$ ;等待中断

ORG 8200H ;INT0中断服务程序

INT0:

CPL P1.0 ;LED状态取反一次

CPL P1.1

CPL P1.2

RETI

;

END

七、实验记录

1、在keil环境下编辑汇编程序,且调试无差错。将程序下载到单片机后,程序运行顺

利,实现了预期的功能,即随着开关S0的状态改变,LED 灯D0、D1、D2点亮或

熄灭。

2、在keil环境下编辑汇编程序,且调试无差错。将程序下载到单片机后,程序运行顺

利,实现了预期的功能,即每按一次按键S0,LED灯D0、D1、D2状态取反一次。

八、实验分析

本次实验较为简单,进行的也很顺利,实现了预期的功能。在试验过程中也加深了对I//O 口和外部中断尤其是INT0的理解。

在中断实验中,进一步理解了中断服务程序的结构,即保护现场、处理中断的程序、恢

复现场、中断返回。其中RETI的作用有两个,弹出PC和清除中断服务标志(给“优先级生效”触发器清零)。在编写服务中断程序时,有些地方需要注意:中断程序入口处的处理;在保护现场和恢复现场时可以关闭CPU中断,一面造成混乱。

实验中也出现了一些问题,在原理图的设计上,LED缺少驱动电路,同时按键开关缺少下拉电阻,导致悬空,这些都是在以后的实验中值得注意的地方,需要改进。

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、读引脚和读锁存器区别:第一种方式是将引脚作为输入,那是真正地从外部引脚读进输入的值,第二种方式是该引脚处于输出状态时,有时需要改变这一位的状态,则并不需要真正地读引脚状态,而只是读入锁存器的状态,然后作某种变换后再输出。

单片机实验报告

院系:计算机科学学院专业:智能科学与技术年级: 2012 学号:2012213865 姓名:冉靖 指导教师:王文涛 2014年 6月1日

一. 以下是端口的各个寄存器的使用方式: 1.方向寄存器:PxDIR:Bit=1,输出模式;Bit=0,输入模式。 2.输入寄存器:PxIN,Bit=1,输入高电平;Bit=0,输入低电平。 3.输出寄存器:PxOUT,Bit=1,输出高电平;Bit=0,输出低电平。 4.上下拉电阻使能寄存器:PxREN,Bit=1,使能;Bit=0,禁用。 5.功能选择寄存器:PxSEL,Bit=0,选择为I/O端口;Bit=1,选择为外设功能。6.驱动强度寄存器:PxDS,Bit=0,低驱动强度;Bit=1,高驱动强度。 7.中断使能寄存器:PxIE,Bit=1,允许中断;Bit=0,禁止中断。 8.中断触发沿寄存器:PxIES,Bit=1,下降沿置位,Bit=0:上升沿置位。 9.中断标志寄存器:PxIFG,Bit=0:没有中断请求;Bit=1:有中断请求。 二.实验相关电路图: 1 MSP430F6638 P4 口功能框图: 主板上右下角S1~S5按键与MSP430F6638 P4.0~P4.4口连接: 2按键模块原理图: 我们需要设置两个相关的寄存器:P4OUT和P4DIR。其中P4DIR为方向寄存器,P4OUT 为数据输出寄存器。 主板上右下角LED1~LED5指示灯与MSP430F6638 P4.5~P4.7、P5.7、P8.0连接:

3 LED指示灯模块原理图: P4IN和P4OUT分别是输入数据和输出数据寄存器,PDIR为方向寄存器,P4REN 为使能寄存器: #define P4IN (PBIN_H) /* Port 4 Input */ #define P4OUT (PBOUT_H) /* Port 4 Output */ #define P4DIR(PBDIR_H) /* Port 4 Direction */ #define P4REN (PBREN_H) /* Port 4 Resistor Enable */ 三实验分析 1 编程思路: 关闭看门狗定时器后,对P4.0 的输出方式、输出模式和使能方式初始化,然后进行查询判断,最后对P4.0 的电平高低分别作处理来控制LED 灯。 程序流程图: 2 关键代码分析: #include void main(void) { WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗 P4DIR |= BIT5; // 设置4.5口为输出模式 P4OUT |= BIT0; // 选中P4.0为输出方式 P4REN |= BIT0; // P4.0使能 while (1) // Test P1.4 { if (P4IN & BIT0) //如果P4.0为1则执行,这是查询方式按下去后是低,否则为高

简单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单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现本设计题目的基本要求和发挥部分。 由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。例如:不能实现只用两个按键来控制时钟时间,还不能实现闹钟等扩展功能。 踉踉跄跄地忙碌了两周,我的时钟程序终于编译成功。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。 但在这次实训中同时使我对汇编语言有了更深的认识。当我第一次接触汇编语言就感觉很难,特别是今次实训要用到汇编语言,尽管困难重重,可我们还是克服了。这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。 这次实训的经历也会使我终身受益,我感受到这次实训是要真真正正用心去做的一件事情,是真正的自己学习的过

程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。希望这次的经历能让我在以后学习中激励我继续进步。 篇二:单片机实验心得 通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。 作为一名自动化专业的快大三学生,我觉得做单片机实习是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力,如何把我们所学的专业基础课理论知识运用到实践中去,我想做类似实习就为我们提供了良好的实践平台 学习单片机没有捷径,不能指望两三天就学会,要坚持不懈,重在积累单片机是一门应用性和实践性很强的学科,要多动手,多做实验。 (4)要学会参考别人的程序,减少自己琢磨的时间,迅速提高自己的编程能力。 (5)碰到问题可以借助网络来搜寻答案和对自己有帮助的问题,一定会有所收获。

实验三单片机IO口控制实验

实验三单片机I/O口控制实验 一、实验目的 利用单片机的P1口作I/O口,学会利用P1口作为输入和输出口。 二、实验设备及器件 PC机一台 https://www.doczj.com/doc/e43918192.html,单片机仿真器、编程器、实验仪三合一综合开发平台一台 三、实验内容 1.编写一段程序,用P1口作为控制端口,使D1区的LED轮流亮。 2.编写一段程序,用P1.0~P1.6口控制LED,P1.7控制LED的亮和灭(P1.7接按键,按下时LED亮,不按时LED灭)。 四、实验要求 学会使用单片机的P1口作为I/O口,如果有时间用户也可以利用P3口作I/O口来做该试验。 五、实验步骤 1.用导线把A2区的J61接口与D1区的J52接口相连。原理如图所示。 2.先编写一个延时程序。 3.将LED轮流亮的程序编写完整并使用TKStudy ICE仿真器调试运行。 4.使用导线把A2区的J61接口的P1.0~P1.6与D1区的J52接口的LED1~LED7相连,另外A2区J61接口的P1.7与D1区的J53的KEY1相连。原理如上图所示。 5.编写P1.7控制LED的程序,并调试运行。(按下K1看是否全亮) 6.A2区J61接口的P1.7与D1区的J54的SW1相连。然后再使用TKStudy ICE仿真器运行程序,查看结果。 六、实验预习要求 仔细阅读实验箱介绍中的各个接口内容,理解该实验的硬件结构。还可以先把程序编好,然后在Keil C51环境下进行软件仿真。

七、实验参考程序 程序1: ORG 0000H LJMP Main ORG 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 程序2: ORG 0000H LJMP Main ORG 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 SJMP Main SETLED: SETB P1.0 SETB P1.1 SETB P1.2 SETB P1.3

工作报告之大学单片机实验报告

大学单片机实验报告 【篇一:单片机实验报告】 单片机实验报告 姓名:班级:学号:任课教师:上课地点: 实验一流水灯实验 一、实验目的及要求 1、闪烁的led; 2、从左到右的流水灯; 3、8只led左右来回点亮; 4、led模拟交通灯。 要求1:led按设定的时间间隔闪烁 要求2:接在p0口的8个led从左到右循环依次点亮,产生走马灯效果要求3:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果; 二、实验原理电路图1、 电路图2、 三、源程序 要求1: #includereg51.h #define uchar unsigned char #define uint unsigned int sbit led=p1^0; //延时 void delayms(uint x) { uchar i; while(x--) {for(i=0;i120;i++); } } //主程序 void main() { while(1) {led=~led;delayms(150); } } 要求2: #include reg51.h #include intrins.h //包含程序中的_cror_(p0,y) #define uchar unsigned char #define uint unsigned int uchar led; void delay(unsigned int i) { uint j; uchar k; for(j=i;j0;j-- )for(k=125;k0;k--); } void main() { led=0x7f;//只亮第一个 delay(1000); while(1) { p0=led; delay(500); led=_cror_(led,1);//p0逐步右移一位。} } 要求3: #include reg51.h

单片机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() {

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位左移右移例子稍作修改便可运行,因为实验原理一样;但却因为一开始自己不够细心导致的一些软件设置

哈尔滨工业大学单片机实验报告

H a r b i n I n s t i t u t e o f T e c h n o l o g y 单片机原理与应用 实验报告 学生姓名: 学号: 班级: 通信工程 专业: 任课教师: 所在单位: 电子与信息工程学院 月5年2013. 软件实验 在软件实验部分,通过实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。 实验一清零程序 一、实验目的 掌握汇编语言设计和调试方法,熟悉键盘操作。 二、实验内容 把2000~20FFh的内容清零。 三、程序框图

四、实验过程 1、LED环境 ⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。 ⑵在“P.”状态下键入0640,然后按“STEP”或“EXEC”进入实验项目的调试与运行。. 2、PC环境 在与PC联机状态下,编译、连接、下载PH51\se01.asm,用连续或单步方式运行程序。 3、运行结果检查 ⑴在单步运行时,每走一步可观察其运行结果。 ⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键观察与检查2000~20FFH 中执行程序前后的内容变化。 五、实验结果及分析 实验前截图: 实验后截图:

: 实验源程序ORG 0640H SE01: MOV R0,#00H DPTR MOV DPTR,#2000H ;(2000H送(DPTR 送LOO1: MOVX @DPTR,A ;0INC DPTR ;DPTR+1 1 INC R0 ;字节数加个字节再清FF不到CJNE R0,#00H,LOO1 ; SJMP $ END 实验问题:2000H~20FFh中的内容是什么? 解答:实验运行之前,2000H~20FFh中的内容是随机分配的;在执行完清零程序之后, 2000H~20FFh中的内容都变为0. 实验二拆字程序 一、实验目的 掌握汇编语言设计和调试方法。 二、实验内容 把2000h的内容拆开,高位送2001h低位,低位送2002h低位,2001h、2002h高位清零,一般本程序用于把数据送显示缓冲区时用。 三、程序流程

实验2+++并行IO口的使用

实验二并行I/O端口的使用 一、实验目的 1.进一步熟悉Keil C、proteus软件的使用方法。 2.掌握分支结构语句、运算符和数组的运用。 3.掌握LED数码管的结构和静态显示工作原理。 二、实验内容 1.程序一:按键K0~K3,用分支语句实现P0口的多值输出。 2.程序二:用循环语句实现P0口的多值输出。 3.程序三:用数组方式控制跑马灯。 4程序四:在P2口连接的LED数码管上循环显示“0”,“1”,“2”,“3”,“4”。 三、实验仿真硬件图 在Proteus软件中建立如下图所示仿真模型并保存。 图2-1 并行I/O端口应用原理图 四、编程提示 程序一:分别用if语句、if-else-if语句、switch语句来实现当按下按键K0~K3时,对应D1~D4点亮。 程序二:运用三种基本的循环语句: for语句、while语句和do-while语句,实现D1~D8循环点亮。 程序三:用数组方式控制跑马灯。将跑马灯的全部状态用数组表达,然后用循环语句依次读取数组各元素,送P0口显示。 程序四:在P2口连接的LED数码管上循环显示“0”,“1”,“2”,“3”,“4”。思路同程序一,只不过数组元素是由共阴极数码管所对应的字形码所组成。 五、调试运行 1.四个程序在proteus仿真通过。

分别用if语句、if-else-if语句、switch语句来实现当按下按键K0~K3时,对应D1~D4点亮。 if语句的一般形式: if ( 表达式1 ) { 语句组1; } if ( 表达式 2) { 语句组2; } ... if-else-if语句的一般形式: if ( 表达式 1) { 语句组1; } else if( 表达式 2) { 语句组2; } ... else if( 表达式 n) { 语句组n; } else { 语句组n+1; } switch语句的一般形式为: switch(表达式) { case常量表达式1: 语句序列1;break; case常量表达式2: 语句序列2;break; ... case常量表达式n: 语句序列n;break; default : 语句序列n+1 } 2.运用三种基本的循环语句: for语句、while语句和do-while语句,实现D1~D8循环点亮。 for语句的一般形式:

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

实验二I/O口输入、输出实验 一、实验目的 1. 学习I/O口的使用方法。 2. 学习延时子程序、查表程序的编写和使用。 二、参考程序框图 led灯 500ms DJNZ R6,DE2; DJNZ R7,DE1; RET END 2、I/O口输入输出(方法一) ORG 0000H; START : MOV P2,#00H; //初始化 MOV P0,#00H; MOV P1,#0FFH; //p1 MOV DPTR,#TABLE; // MOV 50H,#0FEH; // 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,$; DJNZ R6,DE2; DJNZ R7,DE1; RET TABLE : ;//DB 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H; DB 06H,5BH,4FH,66H,6DH,7DH,07H,7FH; //表格数据 END 程序二(方法二) ORG 0000H MOV P2,#00H; //I./O口初始化 MOV P1,#0FFH; //P1口赋FFH初值 MOV P0,#00H; START : MOV P2,#00H; //P2清0; MOV P0,#00H; //P0清0; MOV R1 ,P1; MOV A,R1; //读P1口 CJNE A,#0FFH,L1; //是否有数据输入 AJMP START; //无输入则跳转,继续查询 LCALL DELAY; L1 : MOV R1,P1; //消除按键抖动 MOV A,R1; CJNE A, #0FFH,LL1; AJMP START; LL1 : CJNE A,#0FEH,LL2; //是否按键1输入 MOV P2,#06H; //是则P2输出相应的按键号码 CPL A; //A取反 MOV P0,A; //输出到P0口 LCALL DELAY; //延迟 AJMP LP; //跳转到LP LL2 : CJNE A,#0FDH,LL3; //是否按键2输入 MOV P2,#5BH; //以下同上 CPL A;

单片机实验报告

本科生实验报告 实验课程单片机原理及应用 学院名称核技术与自动化工程学院 专业名称电气工程及其自动化 学生姓名 学生学号 指导教师任家富 实验地点6C902 实验成绩 二〇一五年三月二〇一五年六月 单片机最小系统设计及应用 摘要 目前,单片机以其高可靠性,在工业控制系统、数据采集系统、智能化仪器仪表等领域得到极其广泛的应用。因此对于在校的大学生熟练的掌握和使用单片机是具有深远的意义。通过本次课程设计掌握单片机硬件和软件方面的知识,更深入的了解单片机的实际应用,本次设计课程采用STC89C52单片机和ADC0804,LED显示,键盘,RS232等设计一个单片机开发板系统。进行了LED显示程序设计,键盘程序设计,RS232通信程序设计等。实现了单片机的各个程序的各个功能。对仿真软件keil的应用提升了一个新的高度。单片机体积小、成本低、使用方便,所以被广

泛地应用于仪器仪表、现场数据的采集和控制。通过本实验的学习,可以让学生掌握单片机原理、接口技术及自动控制技术,并能设计一些小型的、综合性的控制系统,以达到真正对单片机应用的理解。 关键词:单片机;智能;最小系统;ADC;RS232;显示;STC89C52 第1章概述 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。单片机采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。 它最早是被用在工业控制领域,由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。 现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。 第2章实验内容 2.1单片机集成开发环境应用

单片机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); } } 四、实验总结

单片机实验报告

哈尔滨师范大学计算机科学与信息工程学院 实验报告手册 课程名称:嵌入式系统原理与应用指导教师:王洪侠 专业:计算机科学与技术20 18 年—20 19 年第 1 学期姓名:吴晗学号:2016040860 年级:2016级班级: 2 班

实验报告内容 实验题目:P1口输出实验 实验目的:通过实验了解P1口做为输入输出方式使用时,CPU对P1口的操作方式 实验要求:控制8个LED灯,完成从左到右然后从右到左再从左到右依次的循序流水实验器材:计算机和普中科技STC89C52单片机电路板 实验步骤/程序流程分析: 1.单片机由P2口控制流水灯 2.根据题目要求实现每点亮一盏灯就熄灭前一盏 3.套用循环实现从左到右的动态流水式亮灯 4.完成从左到右再从右到左再从左刀右流水亮灯 程序源代码: #include "reg52.h" #include typedef unsigned int u16; typedef unsigned char u8; #define led P2 void delay(u16 i) { while(i--); } void main() { u8 i; led=0xfe; delay(50000); // while(1) { /* for(i=0;i<8;i++) { P2=~(0x01<

单片机实验-单片机并行IO口的应用实验

单片机并行I/O口的应用实验 一、实验目的 1、熟悉Proteus软件和Keil软件的使用方法。 2、熟悉单片机应用电路的设计方法。 3、掌握单片机并行I/O口的直接应用方法。 4、掌握单片机应用程序的设计和调试方法。 二、实验内容或原理 1、利用单片机并行I/O口控制流水灯。 2、利用单片机并行I/O口控制蜂鸣器。 三、设计要求 1、用Proteus软件画出电路原理图。要求在P1.0至P1.7口 线上分别接LED0至LED7八个发光二极管,在P3.0口线上 接一蜂鸣器。 2、编写程序:要求LED0至LED7以秒速率循环右移。 3、编写程序:要求LED0至LED7以秒速率循环左移。 4、编写程序:要求在灯移动的同时,蜂鸣器逐位报警。 四、实验报告要求 1、实验目的和要求。 2、设计要求。 3、实验程序流程框图和程序清单。 4、电路原理图。 5、实验结果 6、实验总结。 7、思考题。 五、思考题 1、编程实现LED0至LED7以十六进制计数规律亮灯? 原理图:

程序清单: /*(1)LED0~LED7以秒速率循环右移 蜂鸣器逐位报警*/ ORG 0000H MAIN:MOV A, #11111110B;赋初值 LOOP:MOV P1,A ;赋值给P1口 CPL P3.0 ;低电平有效 LCALL DELAY ;调用延时电路 SETB P3.0 ;控制蜂鸣器叫的时间间隔 LCALL DELAY RL A LJMP LOOP DELAY:MOV R7,#0FFH LOOP1:MOV R6,#0F4H LOOP2:MOV R5,#02H DJNZ R5,$ ;"$"当前的PC值,R5的内容减1不为零,继续执行该语句 DJNZ R6,LOOP2 DJNZ R7,LOOP1 RET END /*(2)LED0~LED7以十六进制计数规律亮灯*/ ORG 0000H MOV A,#0FFH LOOP: MOV P1,A LCALL DELAY DEC A CJNE A, #0FFH,LOOP MOV A, #0FFH LJMP LOOP DELAY:MOV R7, #0A7H LOOP1:MOV R6, #0ABH LOOP2:MOV R5, #10H DJNZ R5, $ ;"$"当前的PC值。R5的内容减1不为零 DJNZ R6, LOOP2 DJNZ R7, LOOP1 RET END

单片机实验报告二 单片机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 所示:

单片机实验报告求16个数的平均值

贵州大学计算机科学与技术学院 计算机科学与技术系上机实验报告 课程名称:单片机原理班级:实验日期:2013/11/22 姓名:学号:指导教师: 实验序号:实验成绩: 一、实验名称: 求十六个数的平均数 二、实验目的及要求 1、熟悉单片机的指令,学习简单程序的编写和使用。 2、掌握和了解求16个数的平均值的编程原理和编程方法。 三、实验环境 Windows XP Keil单片机编程软件 Protues 仿真软件

四、实验内容 1、熟悉C8051在汇编软件Keil上的使用, 2、求十六个数的平均数,并将结果通过实验箱上输出。

五、算法描述及实验步骤

六、调试过程及实验结果 将在keil软件中写的程序编译成.hex类型文件并在Protues仿真软件中运行的结果如下: DI和D5亮表示运行结果是17,这与16个数的 (02H+04H+06H+08H+0AH+0CH+0EH+10H+12H+14H+16H+18H+1A H+1CH+1EH+20H)/10H=11H的结果计算一致,所以该实验正确。

七、总结 通过是要进一步熟悉了之前对于51单片机的开发环境,巩固掌握了单片机开发语言的使用以及循环结构的设置及调用。通过上机,将书本上学习到的知识运用到实际中,使自己的编程能力得到提高。

八、附录 $nomod51 $include(c8051f020.INC) ORG 0000H SJMP START START: MOV R0,#60H MOV A,#TAB LP1: MOV R7,A MOVC A,@A+DPTR MOV @R0,A INC R0 MOV A,R7 INC A CJNE R0,#70H,LP1 Mov R0,#60H Mov A,@R0 Mov R3,#0

单片机实验报告串行口

单片机实验报告 实验名称:串行通信实验 姓名:魏冶 学号:090402105 班级:光电一班 实验时间:2011-11-29 南京理工大学紫金学院电光系

一、实验目的 1、理解单片机串行口的工作原理; 2、学习使用单片机的TXD、RXD口; 3、了解MAX232芯片的使用。 二、实验原理 MCS-51单片机内部集成有一个UART,用于全双工方式的串行通信,可以发送、接收数据。它有两个相互独立的接收、发送缓冲器,这两个缓冲器同名(SBUF),共用一个地址号(99H),发送缓冲器只能写入,不能读出,接收缓冲器只能读出,不能写入。 要发送的字节数据直接写入发送缓冲器,SBUF=a;当UART接收到数据后,CPU从接收缓冲器中读取数据,a=SBUF;串行接口内部有两个移位寄存器,一个用于串行发送,一个用于串行接收。定时器T1作为波特率发生器,波特率发生器的溢出信号做接收或发送移位寄存器的移位时钟。TI和RI分别发送完数据和接收完数据的中断标志,用来向CPU发中断请求。 三、实验内容 1、学会DPFlash软件的操作与使用,以及内部内嵌的一个串口调试软件的使用。 2、用串口连接PC机和DP-51PROC单片机综合仿真实验仪。 3、编写一个程序,利用单片机的串行口发送0x55,波特率为9600。 程序设计流程图

4、程序下载运行后,可在PC机上的串口调试软件上(内嵌在DPFlash软件的串口调 试器,设置通信口为COM1口,波特率为9600,数据位8,停止位1)看到接收到“UUUUUU……”,出现这样的结果就基本达到要求。 (1)代码: #include void main() { long int i; SCON=0x40; PCON=0; TMOD=0x20; TH1=0xfd; TL1=0xfd; TI=1; TR1=1; star:for(i=0;i<5000;i++); SBUF=0x55; goto star; } (2)电路图; 5、在单片机接收到0x55时返回一个0x41,在PC机一端,以接收到0x41完成,波特率2400。

单片机实验报告 (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.doczj.com/doc/e43918192.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 码形式输出。

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