单片机实验二、MCS-51单片机并行端口实验
单片机实验指导书
目录实验一系统认识实验 (2)实验二端口I/O输入输出实验 (14)实验三外部中断实验 (17)实验四定时器实验 (21)实验五串行口通信实验 (25)实验六串行通信的调试实验 (29)实验七数码管静态显示实验 (34)实验八数码管动态显示实验 (39)实验一系统认识实验一、实验目的1.学习Keil C51编译环境的使用;2.学习STC单片机的下载软件STC-ISP的使用;3.掌握51单片机输出端口的使用方法。
二、实验内容任选单片机的一组I/O端口,连接LED发光二极管,编写程序实现8个LED按二进制加1点亮。
三、接线方案单片机P10~P17/C51单片机接L0~L7/LED显示,如下图:图1-1实验线路四、实验原理51单片机有4个8位的并行I/O端口:P0、P1、P2、P3,在不扩展存储器、I/O端口,在不使用定时器、中断、串行口时,4个并行端口,32根口线均可用作输入或输出。
作为输出时,除P0口要加上拉电阻外,其余端口与一般的并行输出接口用法相同,但作为输入端口时,必须先向该端口写“1”。
例如P0接有一个输入设备,从P0口输入数据至累加器A中,程序为:MOV P0, #0FFHMOV A, P0若将P0.0位的数据传送至C中,程序为:SETB P0.0MOV C, P0.0五、实验步骤1、连接串行通信电缆和电源线;2、根据图1-1实验线路进行电路连接;3、将C51单片机核心板上的三个开关分别拨到“独立”、“运行”“单片机”;4、打开实验箱上的电源开关。
5、利用Keil C51创建实验程序,并进行编译生成后缀为.HEX的文件;6、利用STC-ISP软件将后缀为.HEX的文件下载到单片机ROM中;7、观察实验现象,并记录。
若实验现象有误请重复第5、6步。
六、参考程序ORG 0000H ;程序的开始LJMP MAIN ;转入主程序ORG 0200H ;主程序的开始MAIN: MOV P1,#00H ;P1口做准备M1: INC P1 ;P1口连接输出计数,LCALL DELAY ;转入延时子程序LJMP M1 ;循环DELAY: MOV R5,#255 ;延时子程序D1: MOV R6,#255DJNZ R6,$DJNZ R5,D1RETEND ;程序体结束七、思考题1、利用其他I/O口实现LED加1点亮功能;2、利用P1端口实现流水灯(左移或右移)功能;3、实现LED其他点亮功能。
3.1MCS-51单片机的并行IO口
一、并行I/O口的功能结构
2、接口功能 (2)通用I/O接口
(四)P0口
此时“控制”信号为“0”,多路开关 MUX向下,输出驱动器处于开漏状态,故需 外接上拉电阻,这种情况下,电路结构与P1 相同,所以也是一个准双向口,当要作为输 入时,必须先向口锁存器写“1”。
一、并行I/O口的功能结构
(四)P0口
这是由接口的特殊结构所决定的。每一个 口都包含一个锁存器,一个输出驱动器和两 个(P3口为3个)输入缓冲器。各口的结构也 P 3 有些差异,下面分别介绍。
一、并行I/O口的功能结构
1、接口结构
(一)P1口
P1口一位的结构如下图所示:
图2.15
一、并行I/O口的功能结构
1、接口结构
(一)P1口
接口结构中锁存器起输出锁存作用, 8位锁存器组成特殊功能寄存器P1,场 效应管和上拉电阻组成输出驱动器,以 增大负载能力,三态门1和三态门2分别 用于控制输入引脚和锁存器的状态。
作为I/O口应用的一个实例,下面介绍 8031单片机的最小应用系统如下图所示
二、产生接口控制信号的指令
(四)P0口
8051指令系统中能与接口打交道的指令 大体可分两类 1.一般的输入/输出指令 2.“读-修改-写”指 令
二、产生接口控制信号的指令
1.一般的输入输出指令
(四)P0口
输入指令执行时,内部产生“读引脚”信号, 直接从口线读入,亦称“读引脚”指令。 下面是属于这种指令的各种实例:
二、产生接口控制信号的指令
(四)P0口 2.“读-修改-写”指令 INC P2 接口锁存器加1 DEC P1 接口锁存器内容减1 DJNZ P3,LOOP 减1后不为零则跳转 还有三条虽不明显,但也属此列: MOV P1.1,C CLR P1.1 SETB P1.1 将进位位送接口的某位 清接口的某一位 接口的某一位置位
51单片机实验-实验二P1口输入、输出实验
51单片机实验-实验二P1口输入、输出实验实验二 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,然后循环这一过程。
实验结果:发光二极管从第一个开始发光,依次往左到第八个,然后循环这一过程。
MCS-51单片机的并行接口
1.1 P0口
口结构
P0口
“读-改-写”类指令 先读端口,然后对读入的数据进行修改,最后再写回到端口 不直接读取引脚上的数据而读锁存器Q端内容,是为了消除错
读引脚电平的可能性
P0口
P0既可用作地址/数据总线,又可用作通用I/O端口 用作输出端口时,输出级为开漏电路,在驱动NMOS电路时应
例 某接口电路与单片机使用一条线传送握手信号。双方约定, 单片机先向接口发送一个1和一个0,随后接口电路向单片机回 送一个1
单片机原理与应用
单片机原理与应用
MCS-51单片机的并行接口
MCS-51单片机本身提供了4个8位的并行端口,分别记做P0、 P1、P2和P3,共有32条I/O口线
都是双向端口,每个口包含一个锁存器(即特殊功能寄存器P0、 P1、P2和P3)、一个输出驱动器和输入缓冲器
端口和其中的锁存器都表示为P0、P1、P2、P3 结构不同,功能各异
1.4 P3口
口结构
P3口
作为通用I/O口使用时,工作原理与P1、P2口类似,但第二功 能输出端应保持高电平,使锁存器输出端Q内容能通过与非门
P3口的各位都具有第二功能
P3口
P3口的第二功能输入信号
P3.0——RxD,串行口数据接收 P3.2—— INT0#,外部中断0请求信号输入 P3.3—— INT1#,外部中断1请求信号输入 P3.4——T0,定时器/计数器0外部计数脉冲输入 P3.5——T1,定时器/计数器1外部计数脉冲输入
ORL ANL XRL CPL
P1, #3CH ;将P1中间4位置位
P1, #0C3H ;将P1中间4位清零
P1, #03H ;将P1最低2位取反
P1.5
;取反P1.5
MCS51系列单片机双机并行互连的实现方法
MCS51系列单片机双机并行互连的实现方法介绍了在同一系统内,MCS51系列两单片机之间采用单向并行通信接口、主从双向并行通信接口、无主从双向并行通信操作实现双机互连的方法,分析了在每一种通信接口工作方式下数据传送的特点。
在三种并行通信接口为单片机应用系统扩充硬件资源的设计提供了新的途径。
由于MCS51系列单片机具有性能稳定、工作可*、价格低廉等特点,因此其应用相当广泛。
一个MCS51系列的单片机(如Atmel89cxx)内部包含有RAM、FLASH ROM、两个或者三个16位的定时器/计数器、一个通用异步串行通信控制器(UART)等多种资源。
但即便如此,在一些相对复杂的单片机应用系统中,仅仅一个单片机资源还是不够的,因此而常常需要扩充I/O接口、定时器/计数器、串行通信接口、RAM、ROM等。
采用通用的标准器件进行扩充是通常的做法,但将单片机本身作为一个通用的扩充器件来使用,也不失为一个好的方法。
在这种情况下,一个系统中就使用了两个或两个以上的单片机,而单片机之间就要通过互连来进行数据通信。
MCS51系列的单片机(以下简称单片机)都带有串口,利用串口进行互连通信极为方便,其各种连接方式在许多书籍和资料上都有介绍,在此不再重述。
但如果系统要求扩充的资源是对外连接的串口,或对相互之间的数据传送有一定的速度要求,则单片机的串口就不能用作系统内两单片机的通信接口了。
所幸的是,单片机的并行端口也能相互连接来进行数据通信。
根据单片机端口内部结构的特点,这些端口的端口线可以直接相连,从而使两单片机之间并行通信接口的实现不用另外的硬件电路设备。
基于这种情况,设计时,可根据不同的使用要求,来采用不同的并行连接方法。
下面介绍在两个单片机之间进行三种并行通信接口的实现方法。
1 单向并行通信接口的实现在应用中,如果只需一个单片机向另一个单片机传送数据,则可以采用单向并行通信接口方式,这种方式较为简单。
图1所示为单向并行通信接口的组成方法。
MCS-51单片机并行口的结构与操作
华中科技大学光学与电子信息学院单片机( 2015 -- 2016学年度第一学期)题目:MCS-51单片机并行端口结构与操作院系:光学与电子信息学院班级:学号:学生姓名:指导教师:成绩:日期: 2015年 9月 21日MCS—51单片机并行口的结构与操作一、MCS—51单片机简介MCS—51单片机是美国INTE公司于1980年推出的产品,与MCS-48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍与MCS—51单片机作为代表进行理论基础学习.MCS-51系列单片机主要包括8031、8051和8751等通用产品,其主要功能如下:8位CPU、4kbytes 程序存储器(ROM)、128bytes的数据存储器(RAM)、32条I/O口线、111条指令,大部分为单字节指令、21个专用寄存器、2个可编程定时/计数器、5个中断源,2个优先级、一个全双工串行通信口、外部数据存储器寻址空间为64kB、外部程序存储器寻址空间为64kB、逻辑操作位寻址功能、双列直插40PinDIP封装、单一+5V电源供电。
如图所示:1。
结构(1)中央处理单元(8位)数据处理、测试位,置位,复位位操作(2)只读存储器(4KB或8KB)永久性存储应用程序,掩模ROM、EPROM、EEPROM(3)随机存取内存(128B、128B SFR)在程序运行时存储工作变量和资料(4)并行输入/输出口(I / O)(32条)作系统总线、扩展外存、I / O接口芯片(5)串行输入/输出口(2条)串行通信、扩展I / O接口芯片(6)定时/计数器(16位、加1计数)计满溢出、中断标志置位、向CPU提出中断请求,与CPU之间独立工作(7)时钟电路内振、外振。
(8)中断系统五个中断源、2级优先。
2.4 单片机并行IO口(实验2)
College of Communication Engineering, Jilin University
9
2.4 并行I/O模块
实验二 I/O+IRQ应用实例
任务:(1) 在PORTB口的小灯上循环显示跑马灯。 (2) 将PORTA口接8位DIP开关,在PORTB口的小灯上显示其状态。 (3) 利用IRQ作为中断源,采用中断方式,按动IRQ键后显示跑马灯。 (4) 利用IRQ作为中断源,采用中断方式, 利用8位DIP开关控制跑马 灯的循环速度。 (5) 利用XIRQ作为中断源,采用中断方式, 利用8位DIP开关控制跑马 灯的循环速度。 (6) 将PORTA口低4位接DIP开关,高4位接LED,将开关的状态显示在 LED灯上,重复(5)。
数据方向寄存器
DDRT:$0242
DDRS:$024A
DDRM:$0252
DDRP:$025A
DDRH:$0262
DDRJ:$026A
按位控制:0->输入 1->输出,复位后清0,默认为输入口
数据寄存器
PTT:$0240
PTS:$0248
PTM:$0250
PTP:$0258
PTH:$0260
3、程序 IO-IRQ.doc ① 跑马灯实现的算法(查表、移位) ② 可变时间的延时 ③ 端口状态的LED显示 ④ 中断
College of Communication Engineering, Jilin University
14
PTIS:$0249 PTIJ:$0269
PTIM:$0251
PTIP:$0259
低功耗驱动寄存器
RDRT:$0243
RDRS:$024B
第3章MCS-51单片机的内部资源及应用
MOV P0, A ANL P0, #data ORL P0, A
(2)读端口数据方式: CPU读入的这个数据并非端口引脚线 上的数据。读端口数据可以直接读端口。例如,下面的指 令均可以从P1口输入数据,这是锁存器上的数据。
2.P2口
P2口常用做外部存储器的高8位地址 口。当不用做地址口时,P2口也可作为 通用I/O口,这时它也是一个准双向I/O 口。不必外接上拉电阻就可以驱动任何 MOS驱动电路,且只能驱动4个TTL输 入。P2口的位结构如右图所示。
3.P1口
P1口常用做通用I/O口,它也是一 个标准的准双向I/O口,不必外接上拉 电阻就可以驱动任何MOS驱动电路, 且只能驱动4个TTL输入。P1口的位结 构如右图所示。
制。
(3)中断允许控制寄存器IE (0A8H)
EA
ES ET1 EX1 ET0 EX0
(3)中断允许控制寄存器IE (0A8H)
中断与子程序的最主要区别:子程序是预先安排好的,中断 是随机发生的。
中断涉及的几个环节:中断源、 中断申请、开放中断、保护 现场、中断服务、恢复现场、中断返回。
2. 中断源
中断源是指引起中断的设备或事件,或发出中断请求的源头。
3. 中断的分类
中断按功能通常可分为可屏蔽中断、非屏蔽中断和软件中断三类。 可屏蔽中断是指CPU可以通过指令来允许或屏蔽中断的请求。 非屏蔽中断是指CPU对中断请求是不可屏蔽的,一旦出现,CPU必须响应。 软件中断则是指通过相应的中断指令使CPU响应中断。
1.I/O口直接用于输入/输出
在I/O口直接用做输入/输出时,CPU既可以把它们看做数据口,也可以看 做状态口,这是由用户决定的。
MCS-51单片机接口技术实验指导书Protues(电气)
MCS-51单片机接口技术实验(Proteus)适用:电气自动化类专业本科学生实验报告基本要求与书写格式如下:学年:学期:专业:姓名:学号:日期:同组成员: (若单人一组,此项略)实验___ _ 实验名称:一、实验目的:二、实验环境三、实验要求(实验内容与步骤):四、实验总结(由同学们做完实验后写)说明:(1)画出硬件连接图和程序流程图。
(2)编写程序,且给出详尽注释。
(3)本次实验收获是什么?有些什么想法?遇到什么问题等?五、建议与意见说明:对于此实验内容或在实验过程中有任何问题或建议,以及对于改善实验效果有什么建议,均可提出。
在书写实验报告的过程中,主要是帮助自己回顾和总结实验。
重点放在第四项,前三项可以十分简要地列写,第五项有则提出,无则不写。
实验一熟悉Proteus,最小系统,显示、读键子程序与简单监控一、实验目的掌握单片机最小系统,显示、读键子程序编写方法与简单监控程序结构;熟悉Proteus的环境。
二、实验环境1.个人微机,Windows操作系统2.Proteus仿真模拟器3.伟福(WAVE)编程、汇编集成环境三、实验题目基本题:在1个7段数码管上显示1个按键的次数,计到10后回到0。
提高题:使用2个键分别控制2个数码管显示2位数字的增一与减一。
四、实验类型:学习、设计型。
五、实验要求:要将显示与读键分别写成显示子程序与读键子程序;附,可能用到的元件名称:CPU:AT89C51或任一种MCS-51家族CPU;晶振:Crystal;电容器:CAP,选22pf,电解电容:CAP-ELEC或GENELECT10U16V 复位电阻:MINRES10K,限流电阻:MINRES330R按键:BUTTON,数码管:7SEG-COM-AN-BLUE/GRN/ANODE附2,参考电路:实验二系统扩展结构,扩展I/O端口,动态显示一、实验目的掌握系统扩展基本结构,扩展外部I/O端口;编写动态显示子程序;熟悉监控程序结构。
第04讲:MCS-51单片机的并行IO口
a)P0. X 结构图
2)P2口(地址高八位)
不P0口类似,P2口除了作I/O口之外,还作为地址总 线的高8位地址输出端。在作为I/O口用时,“控制”端 为“0”,故多路转换器MUX接在锁存器的Q端,场效应 管叐锁存器的控制。在作为地址总线输出 时,“控制” 端为“1”,多路转换器MUX接在“地址”端,故场效应 管由“地址”端来控制,此时锁存器(P2的特殊功能寄 存器SFR)的内容丌发,在外部存储器读/写完毕时, P2口的地址输出的作用也结束,则“控制”端又发为 “0”,P2口继续按锁存器原来的状态输出。由亍P2口 在CPU对外部存储器读/写过程中,始终能输出地址信 号,所以P2的地址丌需要外部锁存器的锁存。
1)P0口(BUS,数据/地址时分复用)
P0口还起了数据总线和地址总线(低八位)的作用。在迚行正常的输 出(普通IO)时,“控制”端为“0”,多路转换器MUX接在锁存器的Q端。 此时上方的场效应管关断,下方的场效应管叐锁存器的控制,P0口具有 开漏输出,这时驱动外部电路时P0口需外加上拉电阻(上拉电阻的阻值 叏5.1K或者4.7K) 。 在CPU迚行外部存储器存/叏时,P0口起数据总线或地址总线的作用, “控制”端为“1”,多路转换器MUX接反相器的输出端,即相当亍接在 “地址/数据”端。当这个“地址/数据”为“1”时,上方的场效应管导通 而下主的场效应管关断,P0.X输出高电平,反之输出低电平。这时P0口 丌需外接上拉电阻,P0口的锁存器(P0的特殊功能寄存器SFR)必须写 入“1”,以便迚行外部存储器的读操作。
b)P2. X,每一根线都可以执行不口功 能无关的第二种I/O功能。由图2-5可以看出,输出驱动器叐控 亍锁存器的状态不第二输出功能的状态。 若要迚行第二功能使用时,锁存器必须先写入“1”,否则口 线将被拉为0。
实验一 51单片机并行输入输出实验——查询和中断方式
实验一51单片机并行输入/输出实验——查询和中断方式
班级:车辆151 学号:姓名:
一、实验目的:掌握51单片机并行口输入/输出功能,并对比查询和中断方式编程方法。
二、实验内容:采用51单片机并行口P0~P3,通过1路或2路开关或按钮的状态,切换4个或8个LED的闪烁规律。
规律可以是循环点亮、全闪全灭、交替闪烁等。
并对比查询和中断方式对输入编程的区别。
实验题目:查询方式,P1.0~P1.3作为按钮输入,P0.0~P0.3作为输出到LED同步显示三、实验原理图:
四、实验源程序
五、流程框图
六、总结
程序设计思路是不断查询P1.0~P1.3的状态,从而决定P0.0~P0.3的电平高低,由于是准双向口,读入时应该写1再读。
使用查询方式时,CPU一直在查询输入信号的状态,从而决定输出信号,而使用中断方式时,则只需要等待事件触发,未触发时,CPU可以执行其它操作,效率高。
由于人眼的辨别能力有限,使用延时观察LED灯的状态时应该保证时间足够长。
单片机并行口实验报告
单片机并行口实验报告实验二并行口实验报告班级:学号:姓名:教师:一、实验目的通过实验了解8051并行口输入方式和输出方式的工作原理及编程方法。
二、实验内容1、输出实验如图4-1所示。
以8031的P2口为输出口。
通过程序控制发光二极管的亮灭。
2、输入实验如图4-1所示。
以8031的P1口为输入口。
用开关向P1.0~P1.3输入不同的状态,控制P2口P2.4~P2.7发光二极管的亮灭。
3、查询输入输出实验如图1-1所示。
以8051的P1.6或P1.0为输入位,以P2口为输出,二进制计数记录按键的次数。
图1-1三、编程提示1、输出实验程序(1)设计一组显示花样,编程使得P2口按照设计的花样重复显示。
(2)为了便于观察,每一状态加入延时程序。
2、输入实验程序开关打开,则输入为1;开关闭合,则输入为0。
读取P1.0~ P1.3的状态,并将它们输出到P2.4~ P2.7,驱动发光二极管。
所以发光二极管L1~L4的亮灭应与开关P1.0~ P1.3的设置相吻合。
3、查询输入输出程序(1)编程计数P1.0按键次数,按键不去抖动。
(2)编程计数P1.6按键次数,按键不去抖动。
(3)编程计数P1.0按键次数,按键软件延时去抖动。
观察(1)、(2)、(3)、的结果。
四、实验器材计算机,目标系统实验板五、实验步骤1、在KEILC中按要求编好程序,编译,软件调试,生成.HEX文件。
2、断开电源,按图1-1所示,连好开关及发光二极管电路。
3、下载程序。
4、调试运行程序,观察发光二极管状态。
六、C源程序清单1、#include <STC12C5A60S2.h>#define uchar unsigned char#define ON 0#define OFF 1sbit led1=P2^0;sbit led2=P2^1;sbit led3=P2^2;sbit led4=P2^3;sbit led5=P2^4;sbit led6=P2^5;sbit led7=P2^6;sbit led8=P2^7;void delay1(void);void main(void){led1=led2=led3=led4=led5=led6=led7=led8=O FF;while(1){led1=led8=ON;delay1();led2=led7=ON;delay1();led3=led6=ON;delay1();led4=led5=ON;delay1();led1=led8=OFF;delay1();led2=led7=OFF;delay1();led3=led6=OFF;delay1();led4=led5=OFF;delay1();}}void delay1(void){uchar i,j,k;for(i=0;i<10;i++)for(j=0;j<100;j++)for(k=0;k<255;k++);}2、#include<STC12C5A60S2.H>#define uchar unsigned charsbit k8=P1^0; sbit k7=P1^1; sbit k6=P1^2; sbit k5=P1^3; sbit led5=P2^4; sbit led6=P2^5; sbit led7=P2^6; sbit led8=P2^7; void main(void) {while(1){if(!k8)led5=0;if(!k7)led6=0;if(!k6)led7=0;if(!k5)led8=0;if(k8)led5=1;if(k7)led6=1;if(k6)led7=1;if(k5)led8=1;}}3、(1)和(2)#include<STC12C5A60S2.H>#define uchar unsigned char sbit k8=P1^0;sbit k2=P1^6;void main(void){uchar num1,num2;n um1=0;num2=0;while(1){if(!k8){num1++;P2=~num1;}if(!k2){num2++;P2=~num2;}}}3、(3)#include<STC12C5A60S2.H>#define uchar unsigned charvoid delay(uchar);sbit k8=P1^0;sbit k7=P1^1;sbit k6=P1^2;sbit k5=P1^3;sbit k4=P1^4;sbit k3=P1^5;sbit k2=P1^6;sbit k1=P1^7;void main(void){uchar num;n um=0;while(1){if(!k3||!k4||!k5||!k6||!k7){num++;P2=~num;delay(100);}if(!k8){num=0;P2=~num;delay(100);}}}void delay(uchar k ){uchar x,y,z;for(x=k;x>0;x--)for(y=20;y>0;y--)for(z=250;z>0;z--);}七、总结对于这次的实验来说,还是不难的,因为看懂了图1-1后,在加上原来学过的C语言,所以这三个程序还是很容易搞定的,在按键去抖动的程序中,由于k1和k2和其他的键并不一样,这两个键在硬件上已经去抖动了,。
51单片机并行端口实验报告
实验 一 MCS-51单片机并行端口实验一、实验目的和要求目的:进一步熟悉和掌握KEIL 集成调试软件和DP-51PROC 综合实验系统的使用,掌握单片机并行端口的编程及使用方法。
统的使用,掌握单片机并行端口的编程及使用方法。
要求:将P1口地8位端口使用排线与LED1—LED8按照顺序连接,使用一条单独连接线将P3.2与SW1连接。
编制一个P1口地输出程序:将累加器A中的数据通过P1输出,SW1=1时,对累加器A 的内容右移并输出;SW1=0时,对累加器A 左移并输出。
左移并输出。
二、实验算法编制循环结构的程序,在循环结构内,通过判断P3.2是0还是1,实现对累加器A 的左移和右移,并输出到P1口,P3.2=1时,对累加器A 的内容右移并输出;P3.2=0时,对累加器A 左移并输出,为方便肉眼观察还需编制延时子程序,通过调用延子程序实现延时的目的。
程序,通过调用延子程序实现延时的目的。
三、实验电路图四、实验流程图五、程序清单开始SETB P3.2P3.2=1?RLA RRAA —>P1DELAYSETB P3.2MCS —51P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.01+5V+5V SW1ORG 8000H ;定义程序的初始地址;定义程序的初始地址 LJMP STARTORG 8100HSTART: MOV SP,#60H ;将栈顶指针赋初值;将栈顶指针赋初值SETB P3.2 ;初始化 3.2口准备做数据输入端MOV A,#0FEH ;累加器A 赋初值赋初值LOOP: JNB P3.2,LR ;如果3.2口!口!=1=1则跳转到LRRR A ;累加器A 里的值循环右移里的值循环右移SJMP SHOW ;跳转到SHOWLR: RL A ;累加器A 里的值循环左移里的值循环左移SHOW: MOV P1,A ;显示程序,将A 的值作为输出到P1口ACALL DELAY ;调用子程序DELAY DELAY,进行延迟功能,进行延迟功能,进行延迟功能AJMP LOOP ;跳转到LOOP,LOOP,进行循环程序进行循环程序进行循环程序DELAY: PUSH 01H ;子程序作为延时功能;子程序作为延时功能PUSH 02HMOV R1,#00H ;两层循环总共延时了FF*FF 次DELAY1:MOV R2,#00HDJNZ R2,$DJNZ R1,DELAY1POP 02HPOP 01HRETEND六、实验结果与分析当把开关至开是可以看到LED 灯不停的右移,当开关至关时看到LED 灯不停的左移,完全符合实验要求,实验成功。
51单片机并行口的操作
并行输入/输出端口
•MCS-51系列单片机的输入输出端口设计十分巧妙,熟悉了 这种端口的电路设计,我们不但可以熟练的使用它,而且 还可以作为其它电路的输入输出部分的设计参考。MCS- 51各个端口的设计有相同之处,但又因为各个端口功能不 同又有所差别,各端口的设计各具特点。 •80C51共有四个 8位的并行双向口,计有 32根输入/输出 (I/O)口线。各口的每一位均由锁存器、输出驱动器和输 入缓冲器所组成。因此,CPU数据从并行I/O接口输出时可 以得到锁存,输入时可以得到缓冲。由于它们在结构上的 一些差异,故各口的性质和功能也就有了差异。
使用“MOVX A,@Ri”及“MOVX @Ri ,A”类访问指令时, 高位地址通过程序设定,只利用 P1 、 P3 甚至 P2 口中的某几根口 线送高位地址,从而保留P2口的全部或部分口线作I/O口用。
D、P3口位结构
P3口既可用I/O口,又分别具有第二功能,但二者不 能混用,其第二功能如下表所示。
二、片外三总线结构
1、地址总线(AB)
由P2,P0提供16位地址 2、数据总线(DB) 由P0口提供8位数据 3、控制总线(CB)
由P3口和RST、EA、ALE、PS高8位地址总线。
C、P2口位结构
P2口
P2口是一个多功能的8位口,可以字节访问也可位访 问,其字节访问地址为A0H,位访问地址为A0H~A7H。 ⒈ P2口位结构和工作原理 多路开关的输入口有两个:一个是输出锁存器的输出 端Q;一个是地址寄存器(PC或DPTR)的高位输出端。 多路开关的输出经反相器反相后去控制输出 FET的 Q0。 多路开关的切换由内部控制信号控制。 输出锁存器的输出端是Q而不是Q,多路开关之后需接 反相器。
MCS51单片机原理及应用 实验报告
单片机原理与应用实验报告学校:合肥工业大学姓名:吕增威学号:班级:计算机科学与技术08-03班目录前言 ------------------------3 第一章 MC51 单片机原理及应用软件实验实验1:系统认识实验--------------------6实验6:数据排序实验(验证性)---------- 11第二章 MC51 单片机原理及应用硬件实验实验1:广告灯实验----------------------15实验2:P1 口实验(验证性)-------------21实验16:串口转并口实验 ----------------32 实验心得与体会---------------37前言一.单片机原理实验的任务单片机原理实验是单片机原理及应用课程的一部分,它的任务是:1.通过实验进一步了解和掌握单片机原理的基本概念、单片机应用系统的硬件设计及调试方法。
2.学习和掌握单片机应用系统程序设计技术。
3.提高应用计算机的能力及水平,提高逻辑动手能力。
二.实验设备单片机实验所使用的设备由计算机、单片机实验开发系统(,其中计算机是软件开发平台,主要完成程序编辑、编译、下载程序等任务;单片机实验开发系统是硬件开发平台,是基于51/196 单片机的扩展实验系统。
计算机和单片机实验开发系统之间是通过RS232 串行接口进行通信的。
单片机实验开发系统配有开关电源、单片机、晶振、存储器、可编程并行接口芯片、键盘显示控制芯片、24 键键盘、六位LED 数码管显示、A/D 及D/A 转换芯片、简单输出口2个、简单输入口1 个、逻辑电平输入开关、发光二极管显示电路,并配有小直流电机、步进电机、继电器、音响等驱动电路。
在计算机软件的控制下可完成单片机基本实验及综合3设计性实验项目。
所有的MCS51 单片机原理及应用课程实验都是在这套实验系统上完成的。
Keil与Proteus的联合使用: Keil C51 6.02的使用:1.打开Keil,新建一个程序文件(File--New),在上面输入要调试的程序,保存为*.asm格式;2.新建一个工程(project--Newproject),保存,在CPU选项了选择Atmel--AT89C51,点击确定,在弹出的选项框中选择“否”。
单片机IO口实验
微机原理实验报告实验名称:单片机IO口控制实验姓名:学号:座位号:指导教师:实验原理:MCS-51单片机的内部结构:Mcs-51单片机的内部结构图如上所示,而且IO口作为单片机的重要组成部分,是连接单片机与外部设备的桥梁。
单片机IO口双列直插封装的管脚图:并行IO接口及其应用:MCS-5系列单片机内部有4个8位的并行I/O接口i,分别命名为P0,P1,P2和P3。
每个并行I/O接口的各位均可作为输入或者输出。
由于他们都属于地址号可被8整除的特殊功能寄存器,故可以通过位寻址或者直接寻址方式对其进行按位或字节型的I/O操作。
印象位地址或字节地址表:PO口的结构及其功能:(1)1个输出锁存器,用于进行输出数据的锁存;(2)2个三态输入缓冲器,分别用于锁存器和引脚数据的输入缓冲;(3)1个多路开关MUX,它的一个输入来自锁存器,另一个输入是地址/数据信号的反相输出。
在控制信号的的控制下能实现对锁存器输出端和地址/数据线之间的切换;(4)由两只场效应管组成的输出驱动电路。
(5)除具有与P1口相同的功能外,在系统扩展时作为低8位地址与数据分时复用总线,既此时P0为地址/数据分时复用端口。
低8位由ALE信号的下跳沿锁存到外部地址锁存器中,而高8位地址由P2口输出。
P0口的特点:(1)P0口是一个双功能的端口:地址/数据分时复用口和通用I/O口;(2)具有高电平、低电平和高阻抗3种状态的I/O端口称为双向I/O端口。
P0口作地址/数据总线复用口时,相当于一个真正的双向I/O口。
而用作通用I/O口时,由于引脚上需要外接上拉电阻,端口不存在高阻(悬空)状态,此时P0口只是一个准双向口;(3)为保证引脚上的信号能正确读入,在读入操作前应首先向锁存器写1;(4)单片机复位后,锁存器自动被置1;(5)一般情况下,如果P0口已作为地址/数据复用口时,就不能再用作通用I/O口使用;(5)P0口能驱动8个TTL负载。
P1口的结构及其功能:(1)一个数据输出锁存器,用于输出数据的锁存;(2)两个三态输入缓冲器,BUF1用于读锁存器,BUF2用于读引脚;(3)数据输出驱动电路,由场效应管VT和片内上拉电阻R组成P1口的特点:(1)P1口由于有内部上拉电阻,没有高阻抗输入状态,所以称为准双向口。
MCS-51单片机的并行I-O
内 部总 线 写 锁存 器
D
Q
P 3.X
锁 存器
CP Q
内 部上 拉 电 阻
P 3.X 引脚 &
读 引脚
第 二输 入 功 能
P3口的位结构
P3端口(P3.0-P3.7,10-17脚); P3端口是一个带内部上拉电阻的8位I/O端口,P3端口的每一位
可以驱动4个LS型TTL负载; P3端口除了做为一般I/O端口外,每个引脚还具有第二功能。
“读—修改—写”类指令的端口输出与P0的端口输出功能相同。 3.地址总线
CPU在执行读片外ROM、读/写片外RAM或I/O口指令时,单片机 内硬件自动将控制信号C=1,MUX开关接到地址线,地址信息经非门 和驱动管V输出。
1.4 P3口的结构和功能
1.P3口的结构
读 锁存 器
第 二输 出 功 能 VCC来自1.2 P1口的结构和功能
1.P1口的结构
读锁 存器
内部 总线 写锁 存器
D
Q
P 1.X
锁存 器
CP Q
VCC
内部 上拉电阻 P 1.X 引脚
读引 脚
P1口的位结构
1.3 P2口的结构和功能
1.P2口的结构
读锁存器
内部总线 写锁存器
DQ P 2.X 锁存器
CP Q
VCC
地址 控制 MUX
内部上拉电阻
CPU在执行输入指令时,首先低8位地址信息出现在地址/数据总 线上,P0.x引脚的状态与地址/数据总线的地址信息相同。然后, CPU自动使模拟转换开关MUX拨向锁存器,并向P0口写入0FFH,同时 “读引脚”信号有效,数据经缓冲器读入内部总线。因此,可以认 为P0口作为地址/数据总线使用时是一个真正的双向口。
单片机实验单片机并行口的应用实验
单片机并行I/O口的应用实验一、实验目的1、熟悉Proteus软件和Keil软件的使用方法。
2、熟悉单片机应用电路的设计方法。
3、掌握单片机并行I/O口的直接应用方法。
4、掌握单片机应用程序的设计和调试方法。
二、实验内容或原理1、利用单片机并行I/O口控制流水灯。
2、利用单片机并行I/O口控制蜂鸣器。
三、设计要求1、用Proteus软件画出电路原理图。
要求在至口线上分别接LED0至LED7八个发光二极管,在口线上接一蜂鸣器。
2、编写程序:要求LED0至LED7以秒速率循环右移。
3、编写程序:要求LED0至LED7以秒速率循环左移。
4、编写程序:要求在灯移动的同时,蜂鸣器逐位报警。
四、实验报告要求1、实验目的和要求。
2、设计要求。
3、实验程序流程框图和程序清单。
4、电路原理图。
5、实验结果6、实验总结。
7、思考题。
五、思考题1、编程实现LED0至LED7以十六进制计数规律亮灯原理图:程序清单:/*(1)LED0~LED7以秒速率循环右移蜂鸣器逐位报警*/ORG 0000HMAIN:MOV A, #B;赋初值LOOP:MOV P1,A ;赋值给P1口CPL ;低电平有效LCALL DELAY ;调用延时电路SETB ;控制蜂鸣器叫的时间间隔LCALL DELAYRL ALJMP LOOPDELAY:MOV R7,#0FFHLOOP1:MOV R6,#0F4HLOOP2:MOV R5,#02HDJNZ R5,$ ;"$"当前的PC值,R5的内容减1不为零,继续执行该语句DJNZ R6,LOOP2DJNZ R7,LOOP1RETEND/*(2)LED0~LED7以十六进制计数规律亮灯*/ORG 0000HMOV A,#0FFHLOOP: MOV P1,ALCALL DELAYDEC ACJNE A, #0FFH,LOOPMOV A, #0FFHLJMP LOOPDELAY:MOV R7, #0A7HLOOP1:MOV R6, #0ABHLOOP2:MOV R5, #10HDJNZ R5, $ ;"$"当前的PC值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大连理工大学实验报告
实验时间:2014年6月30日星期1时间:10:00~ 11 :40
实验室(房间号):420实验台号码:班级:姓名:
指导教师签字:成绩:
实验二 MCS-51单片机并行端口实验
一、实验目的和要求
1.目的:进一步熟悉、掌握KEIL软件和DP-51PROC综合试验系统的使用。
掌握单片机并行端口的编程和使用方法。
2.要求:编制简单的程序,利用P1口的8位端口使用排线与LED1~LED8按顺序连接,使用一条单独连线将P
3.2与SW1连接,编制一个P1口的输出程序,实现8个LED灯依次点亮的流水灯效果。
二、实验算法
本程序属于无限循环结构,循环中通过判断P3.2的电平来决定彩灯的右移还是左移。
主程序中主要变量是A,P3.2,P1,其中A作为数据移动寄存器,P3.2作为按键输入口,为高电平右移A,低电平则左移A,P1由A传送数据,外接LED1~8,实现彩灯移动现象。
由于不加延时的循环在时钟频率作用下是很快的,现象是所有的灯一直是亮的状态。
,解决这个问题就是在程序里面加延时函数。
三、实验流程图
四、程序清单
ORG 8000H
LJMP START
ORG 8100H START: MOV SP,#60H
SETB P3.2
MOV A,#0FEH LED: JB P3.2,RIGHT
RL A
AJMP RUN RIGHT: RR A
RUN: MOV P1,A CALL DELAY
AJMP LED DELAY: PUSH 01H
PUSH 02H
MOV R1,#00H DELAY1: MOV R2,#00H
DJNZ R2,$
DJNZ R1,DELAY1
POP 02H
POP 01H
RET
END
五、实验结果与分析
实验现象:拨动开关闭合,彩灯左移;拨动开关断开,彩灯右移。
无问题。
实验中,我们通过控制开关SW1能够控制彩灯移位的方向,SW1=1,即将P3.2口置一,理论上使小灯循环右移;SW1=0,即将P3.2口置零,理论上小灯应循环左移,但是由于实验仿真系统中的LED灯的高位和低位位置刚好相反,导致我们操作时看到的结果正好相反,但实际上实验是成功的。
六、实验体会和建议
通过本次单片机的并行输入输出端口实验,我对Keil仿真调试软件的操作更为熟练;也对单片机的P1等端口的应用有了更清楚的认识,同时学会了分支程序的设计,JB指令的方便和实用性。
七、主要仪器设备。