单片机---P1口实验一
- 格式:docx
- 大小:95.87 KB
- 文档页数:4
实验一P3.3口输入,P1口输出一、实验目的1、掌握P3口、P1口简单使用2、学习Keil,Proteus软件使用二、实验说明本次实验用外中断1的中断方式控制P1口8位LED亮灭状态,即第一次按下S键时,8位LED点亮,再次按下S时,8位LED熄灭,如此循环。
三、实验线路图四、实验步骤1、先建立文件夹“ex1”,然后建立“ex1”工程项目,最后建立源程序文件“ex1.c”,输入如下源程序;/*******************************************实验1:P3.3输入,P1口输出******************************************///用外中断1的中断方式进行数据采集#include<reg51.h>sbit S=P3^3;/*******************************************函数功能:主函数******************************************/void main(void){EA=1;EX1=1;IT1=1;P1=0xff;while(1); //无限循环,防止程序跑飞}/**************************************************************函数功能:外中断T1的中断服务程序**************************************************************/void int1(void) interrupt 2 using 0{P1=~P1;}2、用Proteus软件仿真经过Keil软件编译通过后,可利用Proteus软件仿真。
在Proteus ISIS编辑环境中绘制仿真电路图。
打开配套实验1仿真原理图文件“ex1.DSN”,将编译好的“ex1.hex”文件载入AT89C51。
实验六P1口输入、输出实验1.实验目的1)学习单片机的P1口作为I/O口的使用方法,进一步学习指令系统,了解硬件的连接方法;2)学习延时子程序的编写和使用。
2.实验要求:P1.0~ P.3口做输出口,接四只发光二极管L0~L3 ; P1.4~ P.7 接逻辑电平开关电路的S0 ~S3。
编写程序,使发光二极管反映开关的状态。
3.实验说明P1口是准双向口。
它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当P1口用为输入口时,必须先对它置“1”。
若不先对它置“1”,读入的数据不一定正确。
80C51可以将位变量通过C标志位赋值给其它位。
8051延时子程序的延时计算问题,对于程序Delay:MOV R6,#00HMOV R7, #00HDelayLoop:DJNZ R6,DelayLoopDJNZ R7,DelayLoopRET查指令表可知MOV,DJNZ指令均需用两个机器周期,在6MHz晶振时,一个机器周期时间长度为12/6MHZ,所以该段程序执行时间为:(256×255+2)×2×12÷6 ≈261ms4.连线图P1.0——LED0P1.1——LED1P1.2——LED2P1.3——LED3P1.4——S0 P1.5——S1P1.6——S2P1.7——S35.实验内容1)使用仪器、仪表,开发平台型号本实验用到了WAVE 6000软件平台,电脑一台,LAB6000实验箱,若干连线,串行数据线。
2) 性能指标、技术要求、思路方案、流程图5.2.1 性能指标、技术要求见实验目的和实验要求。
5.2.2 思路方案:先将连在P1.4----P1.7的数据读入,然后将其输出到P1.0-P1.3口,最后显示到发光二极管。
5.2.3 流程图:P1口输入输出实验备注:因为是反复地查看拨码开关的状态,故框图中没有结束标志。
3) 源程序ORG 0000HLJMP BEGINBEGIN:MOV P1,#0FFH ;当P1口用为输入口时,必须先对它置“1”;若不先对它置“1”,读入的数据不一定正确MOV A,P1 ;读端口数据SWAP A ;交换高低4位MOV P1,A ;写端口LCALL DELAY ;延时子程序JMP BEGIN ;循环DELAY:MOV R6,#0FFH ;FFH 是为了与下面的对应MOV R7,#22HDelayLoop:DJNZ R6,DelayLoopDJNZ R7,DelayLoopRET4)实验步骤,完成情况4.1在WAVE 6000中新建文件,并将代码写入文件中,保存为EXPERIMENT6.ASM;4.2在WAVE 6000中新建项目,并在模块文件中包含上述EXPERIMENT6.ASM文件,最后保存为EXPERIMENT6.PRG。
单片机实验报告班级:09050541学号:0905054116姓名:王昆鹏实验1 P1口实验一、实验目的:1.学习P1口的使用方法。
2.学习延时子程序的编写和使用。
二、实验设备:CPU挂箱、8051CPU模块三、实验内容:1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
四、实验原理:P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。
作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。
软件延时,如果用c编程时,通过使用keil的软件模拟,调试观察子函数(delay)延时时间。
(具体延时可以自行设定)使用汇编语言的软件延时,可以计算其指令的周期数,大概估算其软件延时。
五、实验原理图:P1口输出、输入实验六、实验步骤:执行程序:P1.0~P1.7接发光二极管L1~L8。
七、程序框图:循环点亮发光二极管(具体延时可以自行设定)八、程序代码NAME T1_1ORG 0000HLJMP STARTORG 0030HSTART: MOV A,#0FEH //将1111 1110赋给A LOOP: RL A //A循环左移MOV P1,A //把A赋给端口P1LCALL DELAY //延时0.16sJMP LOOP //循环;延时函数DELAY: MOV R1,#200DEL1: MOV R2,#200DEL2: DJNZ R2,DEL2DJNZ R1,DEL1RETEND实验2 中断口实验一、实验目的:1.学习外部中断技术的基本使用方法。
2.学习中断处理程序的编程方法。
二、实验设备:CPU挂箱、8051CPU模块三、实验内容:通过设定两个中断使能和触发方式,并编写相应的中断服务子函数,改变led灯的变化情况。
当按下KEYBOARD的按键时8个led都灭,当把k1向上拉再复位后,4个led亮,4个灭。
四、实验原理:参考《单片机原理及接口技术》第三版,北京航空航天大学出版社。
实验一P1口亮灯实验一、实验目的(1)学习P1口的使用方法;(2)学习延时子程序的编写。
二、实验内容P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
三、实验预备知识(1)P1口为准双向口,可定义为输入,也可定义为输出。
(2)本实验中延时子程序采用指令循环来实现,机器周期(12/6MHZ)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。
四、程序框图五、实验步骤1、实验连线P1.0~P1.7用插针连至L1~L82、PC环境在与PC联机状态下,打开桌面图标“MCS-51集成开发环境”,下载PH51\he01.asm,编译、连接、装载,用连续方式运行程序。
3、观察运行结果在连续运行方式下,观察发光二极管闪亮移位情况。
4、终止运行按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控状态。
六、思考修改延时常数,使发光二极管闪亮时间改变。
修改程序,使发光二极管闪亮移位方向改变。
七、实验电路八、实验程序ORG 0790H;----------------------------------------------------------SE18: MOV P1,#0FFH ;送P1口LO34: MOV A,#0FEH ;L1发光二极管点亮LO33: MOV P1,ALCALL SE19 ;延时RL A ;左移位SJMP LO33 ;循环;----------------------------------------------------------SE19: MOV R6,#0A0HLO36: MOV R7,#0FFHLO35: DJNZ R7,LO35DJNZ R6,LO36 ;延时RET;----------------------------------------------------------END教你如何用W ORD文档(2012-06-27 192246)转载▼标签:杂谈1. 问:W ORD 里边怎样设置每页不同的页眉?如何使不同的章节显示的页眉不同?答:分节,每节可以设置不同的页眉。
题目实验1 P1口实验一一、实验目的:1.学习P1口的使用方法。
2.学习延时子程序的编写和使用。
二、实验设备:CPU挂箱、8031CPU模块三、实验内容:1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2.P1口做输入口,接八个按纽开关,以实验箱上74LS273做输出口,编写程序读取开关状态,在发光二极管上显示出来。
四、实验步骤:1、打开CPU挂箱,正确安装8031CPU模块,指导显示屏上显示“199502”字样2、执行程序1(T1_1.ASM)时:P1.0~P1.7口接发光二极管L1~L8。
执行程序2(T1_1.ASM)时:P1.0~P1.7口接平推开关K1~K8;74LS273的O0~O7接发光二极管L1~L8;74LS273的片选端CS273接CS0。
3、打开软件,选择相应的COM口和波特率,电脑与CPU挂箱正确连接上后,软件窗口的下端会显示已连接上,相应的CPU挂箱显示屏上会显示“C ”字样。
4、在软件上选择新建,新建文件类型为ASM51,新建好后,编写程序。
5、程序编写好后,选择保存,然后进行编译,调试,运行程序。
6、观察CPU挂箱上硬件的运行是否与设计的一样,否则进行相应的修改和调试。
五、注意事项1、P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。
作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。
8031中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它成为一个输入。
2、延时程序的实现,采用指令循环来实现,本实验系统晶振为 6.144MHZ,则一个机器周期为12÷6.144us即1÷0.512us。
现要写一个延时0.1s的程序,可大致写出如下: MOV R7,#X (1)X为外循环的次数,放在R7DEL1:MOV R6,#200 (2)200为内循环的次数,放在R6DEL2:DJNZ R6,DEL2 (3)执行内循环DJNZ R7,DEL1 (4)判断R7是否为0,是否结束循环上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需要1÷0.256us,现求出X 值:1÷0.256+X(1÷0.256+200×1÷0.256+1÷0.256)=0.1×10⁶指令(1)指令(2)指令(3)指令(4)所需时间所需时间所需时间所需时间所以X=(0.1×10⁶-1÷0.256)/(1÷0.256+200×1÷0.256+1÷0.256)=127D=7FH 经计算得X=127。
MCS-51单片机实验报告实验一P1口实验一、实验目的(1)学习P1口的使用方法;(2)学习掩饰子程序的编写和使用。
二、实验元件A T89C51、LED-YELLOW、SW-SPDT、CAP、CAP-ELEC、CRYSTAL、RES三、实验内容(1)P1口做输出口,接八只发光二极管,编程使发光管循环点亮;①硬件连接图由于受软件限制,无法通过调节晶振的频率来控制单片机的始终频率,只能通过调节单片机自身属性中的时钟频率来达到调节单片机时钟频率的目的,单片机默认的始终频率为12MHZ,将单片机的外部连接完成后,单击电气报告,经软件检查硬件连接无误之后即可开始编程。
②程序编写ORG 0SJMP STARORG 0030HSTAR: MOV P1,#1 ;点亮二极管D1LCALL DELAY ;调用延时子程序MOV P1,#2 ;点亮二极管D2LCALL DELAY ;调用延时子程序MOV P1,#4 ;点亮二极管D2LCALL DELAY ;调用延时子程序MOV P1,#8 ;点亮二极管D2LCALL DELAY ;调用延时子程序MOV P1,#10H ;点亮二极管D2LCALL DELAY ;调用延时子程序MOV P1,#20H ;点亮二极管D2LCALL DELAY ;调用延时子程序MOV P1,#40H ;点亮二极管D2LCALL DELAY ;调用延时子程序MOV P1,#80H ;点亮二极管D2LCALL DELAY ;调用延时子程序SJMP STAR ;循环DELAY: MOV R0,#5 ;延时子程序NEXT1: MOV R1,#200 ;延时时间约为0.2sNEXT2: MOV R2,#200NEXT3: NOPNOPNOPDJNZ R2,NEXT3DJNZ R1,NEXT2DJNZ R0,NEXT1RET ;返回主程序END创建新的源文件后,将程序输入源文件中,保存后选择全部编译,经软件检查程序无语法错误后即可单机运行按钮开始运行程序。
目录实验一P1口输入、输出实验 (1)实验二P3口输出控制继电器实验 (4)实验三简单I/O实验(交通灯控制) (6)实验四外部中断实验(急救车与交通灯实验) (8)实验五定时器实验 (11)实验六8155输入输出实验 (13)实验七矩阵键盘实验 (15)实验八8279显示实验 (17)实验九串并转换实验 (20)实验十A/D转换实验 (22)实验十一步进电机控制实验 (24)实验十二D/A转换实验 (27)实验十三传送带控制系统综合实验 (29)实验十四机械手控制实验 (32)实验一 P1口输入、输出实验一.实验要求1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
延时时间500ms。
2.P1口做输入口,接八个开关,以74LS273作输出口,编写程序读取开关状态,将状态写入P0口,在发光二极管上显示出来。
二.实验目的1.学习P1口的使用方法。
2.学习延时子程序的编写和使用。
三.实验电路及连接实验1-1电路图如下:图1.1实验1-2中:P1.0-P1.7接八个按钮K1-K8,P0.0-P0.7接八个发光二极管L1-L8。
四.实验说明1.P1口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止,因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响,若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。
2.延时子程序的延时计算问题对延时子程序DELAY: MOV R0,#00HDELAY1: MOV R1,#0B3HDJNZ R1,$DJNZ R0,DELAY1查指令表可知MOV,DJNZ指令均需要两个机器周期,而一个机器周期时间长度为12/12MHZ(假设晶振频率是12MHZ),所以该段程序执行时间为:((0B3+1)*256+1)*2*12/12000000=100ms五.实验程序流程图实验要求1的程序框图:实验要求2的程序框图:图1.2 图1.3六、调试方法第一步:打开位于d:\单片机实验\实验一\1_1.uv2,进行实验1_1打开位于d:\单片机实验\实验一\1_2.uv2,进行实验1_2第二步:在资源管理器中如打开.src文件,在程序窗口中输入已编好的程序,保存。
实验一 I/O口实验1.P1口输出实验一、实验目的学习51单片机的32 根I/O口的基本输出功能,以P1口为例,P0,P2,P3口均同理。
学习延时子程序的编写和应用。
二、实验条件TMD-2 模块化单片机实验仪主机一台,串口线一条,PC机一台。
三、实验原理如图3.1所示,MAX708为看门狗电路。
CYAL2为6MHz晶振。
SW8为下载开关。
将DZ2 组的8个短路帽全部短接上,使P1口接74LS244的输入端,74LS244的输出端接发光二极管LD0-LD7。
图3.1 P1口输出实验原理图四、实验内容与要求1.使8个LED发光二极管循环闪亮,时间间隔为1秒。
2.使8个LED 发光二极管同时亮、灭,时间间隔为1秒。
五、实验步骤1.将短路帽组DZ2的8个短路帽短接,其余短路帽不短接。
2.给TMD-2加电,运行程序。
注意:TMD-2的所有实验都必须短接DZ4,用来连接PC机与单片机的RXD,下载程序用。
另外,涉及到短路帽短接的实验,除实验步骤中要求短接的短路帽,没提到的均不接。
六、参考程序1. 8个发光二极管循环闪亮,间隔时间为1秒。
ORG 0000HLJMP MAINORG 0100HMAIN: MOV SP,#60HMOV A,#01H ;先让第一个发光二极管亮LOOP: MOV P1,A ;从P1 口输出到发光二极管LCALL DELAY ;延时1秒RL A ;左移一位,下一个发光二极管亮SJMP LOOP ;循环DELAY: M OV R0,#10 ;延时1秒子程序,使用参数R0、R7、R6 DELY0: MOV R7,#100 ;延时0.1 秒DELY1: MOV R6,#250 ;延时1mSDJNZ R6,$DJNZ R7,DEL Y1DJNZ R0,DEL Y0RETEND2. 8个发光二极管同时亮、灭,间隔时间为1秒。
ORG 0000HLJMP MAINORG 0100HMAIN: MOV SP,#60HMOV A,#0FFH ;先让发光二极管全亮LOOP: MOV P1,A ;从P1 口输出到发光二极管LCALL DELAY ;延时1秒CPL A ;取反SJMP LOOP ;循环DELAY: M OV R0,#10 ;延时1秒子程序,使用参数R0、R7、R6 DELY0: MOV R7,#100 ;延时0.1 秒DELY1: MOV R6,#250 ;延时1mSDJNZ R6,$DJNZ R7,DEL Y1DJNZ R0,DEL Y0RETEND2.P2口输入实验一、实验目的学习51单片机的32根I/O口的基本输入功能,以P2口为例,P0,P1,P3口均同理。
实验一 I/O 口输入、输出实验一、实验目的掌握单片机P1口、P3口的使用方法。
二、实验内容以P1 口为输出口,接八位逻辑电平显示,LED 显示跑马灯效果。
以P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。
三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。
四、实验步骤1)系统各跳线器处在初始设置状态。
用导线连接八位逻辑电平输出模块的K0 到CPU 模块的RXD(P3.0 口);用8 位数据线连接八位逻辑电平显示模块的JD4B 到CPU 模块的JD8(P1 口)。
2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。
编译无误后,下载程序运行。
3)观察发光二极管显示跑马灯效果,拨动K0 可改变跑马灯的方向。
五、实验参考程序本实验参考程序:;//******************************************************************;文件名: Port for MCU51;功能: I/O口输入、输出实验;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口);;用8位数据线连接八位逻辑电平显示模块的JD2B到CPU模块的JD8(P1口)。
;//******************************************************************DIR BIT P3.0ORG 0000HLJMP STARTORG 0100HSTART:OUTPUT1:MOV A, #0FEHMOV R5, #8LOOP1:CLR CMOV C,DIRJC OUTPUT2MOV P1, ARL AACALL DELAYDJNZ R5, LOOP1SJMP OUTPUT1OUTPUT2:MOV A, #07FHMOV R5, #8LOOP2:CLR CMOV C,DIRJNC OUTPUT1MOV P1, ARR AACALL DELAYDJNZ R5,LOOP2SJMP OUTPUT2DELAY:MOV R6,#0DELAYLOOP1:MOV R7,#0DELAYLOOP2:NOPNOPDJNZ R7,DELAYLOOP2DJNZ R6,DELAYLOOP1RET六.实验现象及心得:现象:打开开关,可以观察到L1到L7灯循环点亮。
实验一 P1口实验一
一、实验目的:
1.学习P1口的使用方法。
2.学习延时子程序的编写和使用。
二、实验设备:
EL-8051-III型单片机实验箱
三、实验内容:
1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2.P1口做输入口,接八个按纽开关,以实验箱上74LS273做输出口,编写程序读取开关状态,在发光二极管上显示出来。
四、实验原理:
P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。
作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。
8031中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它成为一个输入。
可以用第二个实验做一下实验。
先按要求编好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1做输入口,会有什么结果。
再来看一下延时程序的实现。
现常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。
在系统时间允许的情况下可以采用后一种方法。
本实验系统晶振为6.144MHZ,则一个机器周期为12÷6.144us即1÷0.512us。
现要写一个延时0.1s的程序,可大致写出如下:
MOV R7,#X (1)
DEL1:MOV R6,#200 (2)
DEL2:DJNZ R6,DEL2 (3)
DJNZ R7,DEL1 (4)
上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需要1÷0.256us,现求出X值:
1÷0.256+X(1÷0.256+200×1÷0.256+1÷0.256)=0.1×10⁶
指令(1)指令(2)指令(3)指令(4)
所需时间所需时间所需时间所需时间
X=(0.1××10⁶-1÷0.256)/(1÷0.256+200×1÷0.256+1÷0.256)=127D=7FH
经计算得X=127。
代入上式可知实际延时时间约为0.100215s,已经很精确了。
五、实验原理图:
P1口输出实验
P1口输入实验
六、实验步骤:
执行程序1(T1_1.ASM)时:
1.CPU板上的P1.0~P1.7接试验箱的发光二极管L1~L8;
2.试验箱上电,打开软件,设置好端口和波特率,然后加载实验程序,依次点击汇编
(F3),调试(F5),运行(F9),观察实验结果,八个LED等循环点亮。
执行程序2(T1_1.ASM)时:
1.CPU板上的P1.0~P1.7接试验箱的平推开关K1~K8;
2.试验箱74LS273的O0~O7接试验箱发光二极管L1~L8;
3.试验箱上74LS273的片选端CS273接试验箱上CPLD ENCODER UNIT的CS0(由程序所选择的入口地址而定,与CSO~CS7相应的片选地址请查看第一部分系统资源,以后不赘述);
4.试验箱上电,加载实验程序,依次点击汇编,调试,运行,观察实验结果,可用开关来控制LED灯的亮灭。
七、程序框图:
循环点亮发光二极管
通过发光二极管将P1口的状态显示
八、参考程序:
1、循环点亮发光二极管(T1_1.ASM)
NAME T1_1 ;P1口输实验
CSEG AT 0000H
LJMP START
CSEG AT 4100H
START: MOV A,#0FEH
LOOP: RL A ; 左移一位,点亮下一个发光二极管
MOV P1,A
LCALL DELAY ;延时 0.1秒
JMP LOOP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY: MOV R1,#127 ; 延时0.1秒
DEL1: MOV R2,#200
DEL2: DJNZ R2,DEL2
DJNZ R1,DEL1
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
END
2、通过发光二极管将P1口的状态显示(T1_2.ASM)
NAME T1_2 ;P1口输入实验
OUT_PORT EQU 0CFA0H
CSEG AT 0000H
LJMP START
CSEG AT 4100H
START: MOV P1,#0FFH ;复位P1口为输入状态
MOV A,P1 ;读P1口的状态值入累加器A
MOV DPTR,#OUT_PORT ;将输出口地址赋给地址指针DPTR
MOVX @DPTR,A ;将累加器A的值赋给DPTR指向的地址 JMP START ;继续循环监测端口P1的状态
END。