微机原理与接口技术硬件实验12——51单片机IO控制实验,定时器计数器实验
- 格式:doc
- 大小:1.58 MB
- 文档页数:12
【关键字】报告单片机定时器计数器实验报告篇一:单片机计数器实验报告计数器实验报告㈠实验目的1. 学习单片机内部定时/计数器的使用和编程方法;2. 进一步掌握中断处理程序的编程方法。
㈡实验器材1. 2. 3. 4. 5.G6W仿真器一台MCS—51实验板一台PC机一台电源一台信号发生器一台㈢实验内容及要求8051内部定时计数器,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数,使用8051的T1作定时器,50ms中断一次,看T0内每50ms来了多少脉冲,将计数值送显(通过LED发光二极管8421码来表示),1秒后再次测试。
㈣实验说明1. 本实验中内部计数器其计数器的作用,外部事件计数器脉冲由P3.4引入定时器T0。
单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变,这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样,同时这就决定了输入波形的频率不能超过机器周期频率。
2. 计数脉冲由信号发生器输入(从T0端接入)。
3. 计数值通过发光二极管显示,要求:显示两位,十位用L4~L1的8421码表示,个位用L8~L5的8421码表示4. 将脉搏检查模块接入电路中,对脉搏进行计数,计算出每分钟脉搏跳动次数并显示㈤实验框图(见下页)程序源代码ORG 00000H LJMP MAINORG 001BH AJMP MAIN1 MAIN:MOV SP,#60HMOV TMOD,#15H MOV 20H,#14H MOV TL1,#0B0H MOV TH1,#3CHMOV TL0,#00H;T0的中断入口地址;设置T1做定时器,T0做计数器,都于方式1工作;装入中断次数;装入计数值低8位;装入计数值高8位MOV TH0,#00HSETB TR1 ;启动定时器T1 SETB TR0 ;启动计数器T0 SETB ET1 ;允许T1中断SETB EA ;允许CPU中断SJMP $;等待中断MAIN1: PUSH PSW PUSH ACC CLR TR0CLR TR1 MOV TL1,#0B0H MOV TH1,#3CHDJNZ 20H,RETUNT MOV 20H ,#14HSHOW: MOV R0,TH0 MOV R1,TL0MOV A,R1 MOV B,#0AH DIV ABMOV C,ACC.3MOV P1.0,C MOV C,ACC.2 MOV P1.1,C MOV C,ACC.1 MOV P1.2,C MOV C,ACC.0 MOV P1.3,CMOV A,B MOV C,ACC.3MOV P1.4,C MOV C,ACC.2 MOV P1.5,C MOV C,ACC.1 MOV P1.6,C MOV C,ACC.0MOV P1.7,C ;保护现场;装入计数值低8位;装入计数值高8位,50ms;允许T1中断;未到1s,继续计时;1s到重新开始;显示计数器T0的值;读计数器当前值;将计数值转为十进制;显示部分,将A中保存的十位赋给L0~L3 将B中保存的各位转移到A中;将个位的数字显示在L4~L7上;RETUNT:MOV TL0,#00H;将计数器T0清零MOV TH0,#00HSETB TR0SETB TR1POP ACCPOP PSWRETI ;中断返回在频率为1000HZ时,L0~L7显示为50;频率为300HZ时,L0~L7显示为15,结果正确,程序可以正确运行。
微原硬件实验报告班级:07118 班学号:070547班内序号:26姓名:杨帆实验一熟悉实验环境及IO的使用一,实验目的1. 通过实验了解和熟悉实验台的结构,功能及使用方法。
2. 通过实验掌握直接使用Debug 的I、O 命令来读写IO 端口。
3. 学会Debug 的使用及编写汇编程序二,实验内容1. 学习使用Debug 命令,并用I、O 命令直接对端口进行读写操作,2.用汇编语言编写跑马灯程序。
(使用EDIT 编辑工具)实现功能A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度等)。
B.通过输出端口控制灯的工作状态(低电平灯亮)三,实验步骤1.实验板的IO 端口地址为EEE0H在Debug 下,I 是读命令。
(即读输入端口的状态---拨码开关的状态)O 是写命令。
(即向端口输出数据---通过发光管来查看)进入Debug 后,读端口拨动实验台上八位拨码开关输入I 端口地址回车屏幕显示xx 表示从端口读出的内容,即八位开关的状态ON 是0,OFF 是 1 写端口输入O 端口地址xx (xx 表示要向端口输出的内容)回车查看实验台上的发光二极管状态,0 是灯亮,1 是灯灭。
2. 在Debug 环境下,用a 命令录入程序,用g 命令运行C>Debug -amov dx, 端口地址mov al,输出内容out dx, almov ah, 0bhint 21hor al, aljz 0100int 20h-g运行查看结果,修改输出内容再运行查看结果分析mov ah, 0bhint 21hor al, aljz 0100int 20h该段程序的作用3.利用EDIT 工具编写汇编写跑马灯程序程序实现功能A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度等)。
B.通过输出端口控制灯的工作状态(低电平灯亮) C>EDIT 文件名.asm录入程序按Alt 键打开菜单进行存盘或退出编译文件C>MASM 文件名.asm连接文件C>LINK 文件名.obj运行文件或用Debug 进行调试。
单片机io口实验[单片机IO口控制实验实验报告]一、实验目的1、熟悉MCS-51的I/O结构;2、掌握MCS-51I/O的使用方法;3、掌握MCS-51的中断机制。
二、实验原理1、MCS-51单片机的硬件结构片内结构:2、内部数据存储器:3、SFR的名称及其分布:4、I/O端口地址:5、P0P3端口功能总结:P0P3口都是并行I/O口,但P0口和P2口,还可用来构建系统的数据总线和地址总线,所以在电路中有一个MU某以进行转换。
而P1口和P3口无构建系统的数据总线和地址总线的功能,因此,无MU某P0口的MU某的一个输入端为“地址/数据〞信号。
P2口的MU某勺一个输入信号为“地址〞信号。
在4个口中只有P0口是一个真正的双向口,P1P3口都是准双向口。
原因:P0口作数据总线使用时,需解决芯片内外的隔离问题,即只有在数据传送时芯片内外才接通;不进行数据传送时,芯片内外应处于隔离状态。
为此。
P0口的输出缓冲器应为三态门。
P0口中输出三态门是两只场效应管组成,所以是一个真正的双向口。
P1P3口,上拉电阻代替P0口中的场效应管,输出缓冲器不是三态的一准双向口。
P3口的口线具有第二功能,为系统提供一些控制信号。
因此P3口增加了第二功能控制逻辑。
这是P3口与其它各口的不同之处。
6、P0口结构及特点:⑴P0口结构与运作1个输出锁存器,用于进行输出数据的锁存;2个三态输入缓冲器,分别用于锁存器和引脚数据的输入缓冲;1个多路开关MU某它的一个输入来自锁存器,另一个输入是地址/数据信号的反相输出。
在控制信号的的控制下能实现对锁存器输出端和地址/数据线之间的切换;两只场效应管组成的输出驱动电路。
⑵P0口的特点P0口是一个双功能的端口:地址/数据分时复用口和通用I/O口;具有高电平、低电平和高阻抗3种状态的I/O端口称为双向I/O端口。
P0口作地址/数据总线复用口时,相当于一个真正的双向I/O口。
而用作通用I/O口时,于引脚上需要外接上拉电阻,端口不存在高阻状态,此时P0口只是一个准双向口;为保证引脚上的信号能正确读入,在读入操作前应首先向锁存器写1;单片机复位后,锁存器自动被置1;一般情况下,如果P0口已作为地址/数据复用口时,就不能再用作通用I/O口使用;P0口能驱动8个TTL负载。
《微机原理与接口技术》课程实验指导书实验内容EL-8086-III微机原理与接口技术教学实验系统简介使用说明及要求✧实验一实验系统及仪器仪表使用与汇编环境✧实验二简单程序设计实验✧实验三存储器读/写实验✧实验四简单I/0口扩展实验✧实验五8259A中断控制器实验✧实验六8253定时器/计数器实验✧实验七8255并行口实验✧实验八DMA实验✧实验九8250串口实验✧实验十A/D实验✧实验十一D/A实验✧实验十二8279显示器接口实验EL-8086-III微机原理与接口技术教学实验系统简介使用说明及要求EL-8086-III微机原理与接口技术教学实验系统是为微机原理与接口技术课程的教学实验而研制的,涵盖了目前流行教材的主要内容,该系统采用开放接口,并配有丰富的软硬件资源,可以形象生动地向学生展示8086及其相关接口的工作原理,其应用领域重点面向教学培训,同时也可作为8086的开发系统使用。
可供大学本科学习《微机原理与接口技术(8086)》,《单片机应用技术》等课程提供基本的实验条件,同时也可供计算机其它课程的教学和培训使用。
为配合使用EL型微机教学实验系统而开发的8086调试软件,可以在WINDOWS 2000/XP等多种操作系统下运行。
在使用本软件系统调试程序时,可以同时打开寄存器窗口、内存窗口、反汇编窗口、波形显示窗口等等,极大地方便了用户的程序调试。
该软件集源程序编辑、编译、链接、调试与一体,每项功能均为汉字下拉菜单,简明易学。
经常使用的功能均备有热键,这样可以提高程序的调试效率。
一、基本特点EL型微机教学实验系统是北京精仪达盛科技有限公司根据广大学者和许多高等院校实验需求,结合电子发展情况而研制的具有开发、应用、实验相结合的高科技实验设备。
旨在尽快提高我国电子科技发展水平,提高实验者的动手能力、分析解决问题能力。
系统具有以下特点:1、系统采用了模块化设计,实验系统功能齐全,涵盖了微机教学实验课程的大部分内容。
51单片机实验报告(共五则)第一篇:51单片机实验报告51单片机实验报告实验一点亮流水灯实验现象 Led灯交替亮,间隔大约10ms。
实验代码#include 〈reg51、h> void Delay10ms(unsigned int c);voidmain(){)1(elihwﻩ{ ﻩP0= 0x00;Delay10ms(50);;ffx0 =0Pﻩﻩ;)05(sm01yaleDﻩ } } void Delay10ms(unsigned int c){unsigned char a,b;for(;c>0;c-—){)——b;0〉b;83=b(rofﻩ{ ﻩﻩfor(a=130;a〉0;a--);}ﻩﻩ}} 实验原理W W hi i le(1)表示一直循环。
循环体内首先将P0 得所有位都置于零,然后延时约5 5 0*10=500ms,接着 0 P0 位全置于 1 1,于就是 D LED 全亮了。
接着循环,直至关掉电源..延迟函数就是通过多个for r 循环实现得。
实验 2 流水灯(不运用库函数)实验现象起初 led 只有最右面得那一个不亮,半秒之后从右数第二个led也不亮了,直到最后一个也熄灭,然后 led 除最后一个都亮,接着上述过程 #includemain(){unsigned char LED;LED = 0xfe;while(1){ ﻩ;DEL = 0PﻩDelay10ms(50);00x0 == 0P(fiﻩ {;1〈〈 DEL = DELﻩ)ﻩ;efx0 = DELﻩ} ﻩ}ﻩ} void Delay10ms(unsigned int c){unsigned char a,b;for(;c>0;c-—){)—-b;0〉b;83=b(rofﻩ{ ﻩﻩﻩ;)--a;0>a;031=a(rofﻩ} ﻩ} ﻩ} 实验原理这里运用了C语言中得位运算符, , 位运算符左移, , 初始值得二进制为1111 1 110, 之后左移一次变成1111 1 100 0,当变成00000 0000 时通过 f if 语句重置 1 1 11 1 11110、延迟函数在第一个报告已经说出了,不再多说..实验 3 流水灯(库函数版)实验现象最开始还就是最右边得一个不亮,然后不亮得灯转移到最右边得第二个,此时第一个恢复亮度,这样依次循环.实验代码#include 〈reg51、h> #include 〈intrins、h〉void Delay10ms(unsigned int c); void main(void){unsigned char LED;;EFx0 = DELﻩ)1(elihwﻩ{ ﻩP0 = LED;;)05(sm01yaleDﻩﻩ;)1,DEL(_lorc_ = DELﻩ} ﻩ} void Delay10ms(unsigned in t c){unsigned chara, b;for(;c〉0;c——){ ﻩfor(b=38;b〉0;b—-){ ﻩﻩ;)-—a;0〉a;031=a(rofﻩ} ﻩ}}实验原理利用头文件中得函数,_cro l_(,), 可以比位操作符更方便得进行 2 2 进制得移位操作, , 比位操作符优越得就是,该函数空位补全时都就是用那个移位移除得数据, , 由此比前一个例子不需要f if 语句重置操作..数码管实验实验现象单个数码管按顺序显示0-9与 A-F。
微机原理与接口技术硬件实验报告目录实验一基本的IO实验 (2)A.I/O地址译码 (2)一、实验目的 (2)二、实验原理和内容 (2)三、硬件接线图与软件流程图 (3)四、源程序 (4)五、实验结果 (5)实验总结 (5)六、实验收获与心得体会 (5)B.简单并行接口 (5)一、实验目的 (5)二、实验原理和内容 (6)三、硬件接线图与软件流程图 (6)四、源程序 (7)五、实验结果 (8)六、实验总结 (8)七、实验收获与心得体会 (8)实验二可编程并行接口8255实验 (8)一、实验目的 (8)二、实验原理和内容 (8)三、硬件接线图与软件流程图 (10)四、源程序 (12)五、实验结果 (15)六、实验总结 (15)七、实验收获与心得体会 (15)实验三可编程定时器/计数器(8253)实验 (15)一、实验目的 (15)二、实验原理和内容 (15)三、硬件接线图与软件流程图 (17)四、源程序 (17)五、实验结果 (24)六、实验总结 (24)七、实验收获与心得体会 (24)八、思考题 (24)实验四串行通讯接口8251实验 (25)一、实验目的 (25)二、实验原理和内容 (25)三、硬件接线图与软件流程图 (25)四、源程序 (26)五、实验结果 (31)实验总结 (31)六、实验收获与心得体会 (31)七、思考题 (31)实验一基本的IO实验A.I/O地址译码一、实验目的掌握I/O地址译码电路的工作原理。
二、实验原理和内容1.实验电路硬件接线图所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。
译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH, ……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。
例如:执行下面两条指令MOV DX,2A0HOUT DX,AL(或IN AL,DX)Y4输出一个负脉冲,执行下面两条指令MOV DX,2A8HOUT DX,AL(或IN AL,DX)Y5输出一个负脉冲。
批阅长沙理工大学实验报告年级光电班号姓名同组姓名实验日期月日指导教师签字:批阅老师签字:内容一、实验目的四、实验方法及步骤二、实验原理五、实验记录及数据处理三、实验仪器六、误差分析及问题讨论单片机定时器/计数器实验一、实验目的1、掌握51单片机定时器/计数器的基本结构。
2、掌握定时器/计数器的原理及编程方法。
二、实验仪器1、装有keil软件的电脑2、单片机开发板三、实验原理51单片机有2个16位的定时器/计数器,分别是T0和T1,他们有四种工作方式,现以方式1举例。
若定时器/计数器0工作在方式1,计数器由TH0全部8位和TL0全部8位构成。
方式1作计数器用时,计数范围是:1-65536(2^16);作定时器用时,时间计算公式是:T=(2^16-计数初值)×晶振周期×12。
四、实验内容1、计算计数初值单片机晶振频率为6MHz,使用定时器0产生周期为120000μs等宽方波连续脉冲,并由P1.0输出。
设待求计数初值为x,则:(2^16-x)×2×10^-6 = 120000×10^-6解得x=5536。
二进制表示为:00010101 10100000B。
十六进制为:高八位(15H),低八位(A0H)。
2、设置相关控制寄存器TMOD设置为xxxx0001B3、程序设计ORG 0000HAJMP MAINORG 30HMAIN: MOV P1,#0FFH ;关闭所有灯ANL TMOD,#0F0H ;置定时器0工作方式1ORL TMOD,#01H ;不影响T1的工作MOV TH0,#15H ;设置计数初始值MOV TL0,#0A0HSETB EA ;CPU开中断SETB ET0 ;定时器0开中断SETB TR0 ;定时器开始运行LOOP: JBC TF0,INTP ;如果TF0=1,则清TF0并转到INTPAJMP LOOP ;然跳转到LOOP处运行INTP: MOV TH0,#15H ;重新设置计数初值MOV TL0,#0A0HCPL P1.0 ;输出取反AJMP LOOPEND AJMP LOOPEND4、实验仿真新建工程项目文件中,并为工程选择目标器件为AT公司的AT89S51。
微机原理与接口技术实验《简单手势无线遥控小车》实验报告通信科学与工程于广溪113007200701.总体概况与说明1.1 选题概况与说明1.2遥控部分概况与说明1.3机动部分概况与说明2.机械部分分析实现3.硬件系统设计实现3.1电源设计实现3.1.1标准电源来源与稳压3.1.1.1电源的电压和电流要求3.1.1.2电源的纹波要求3.1.1.3 防止电源判定空载关机的方法3.1.2电源升压3.1.3电源降压3.2单片机最小系统版设计实现3.3红外光电开关部分设计实现3.4减速直流电机驱动设计实现3.5 STC单片机USB-串口下载调试实现3.6无线模块分析实现3.7系统总电路图4.软件系统设计实现4.1遥控部分软件系统设计实现4.1.1ST188时序检测方法4.1.2 nRF24L01+驱动程序说明4.1.3 遥控部分所有代码文件4.1.3.1 主文件yaokong.c:4.1.3.2 nRF24L01+驱动程序nRF24L01.c4.1.3.3延时文件delay.c4.1.3.4 52单片机寄存器头文件reg52.h4.1.3.5 所有头文件的头文件allhead.h4.1.3.6 变量声明重定义vartypeabbreviation.h4.1.3.7 电机控制命令定义motorcommand.h4.1.3.8 延时头文件delay.h4.1.3.9 nRF24L01+驱动程序头文件nRF24L01.h 4.2机动部分软件系统设计实现4.2.1直流减速电机的驱动方式说明4.2.2机动部分所有代码文件5.总结1.总体概况说明1.1选题概况与说明:本次微机原理与接口技术实验(综合)实验,我选择的题目是一个可以通过手势动作无线控制的小车。
希望实现的是在遥控端通过产生简单的5种手势动作来控制小车的运动状态和方向。
简单来说就是通过手的向前滑动,向后滑动,向左滑动,向右滑动以及在特定区域滑动实现小车的前后左右以及停止5种动作。
第一章单片机系统板说明一、概述单片机实验开发系统是一种多功能、高配置、高品质的MCS-51单片机教学与开发设备。
适用于大学本科单片机教学、课程设计和毕业设计以及电子设计比赛。
该系统采用模块化设计思想,减小了系统面积,同时增加了可靠性,使得单片机实验开发系统能满足从简单的数字电路实验到复杂的数字系统设计实验,并能一直延伸到综合电子设计等创新性实验项目。
该系统采用集成稳压电源供电,使电源系统的稳定性大大提高,同时又具备完备的保护措施。
为适应市场上多种单片机器件的应用,该系统采用“单片机板+外围扩展板”结构,通过更换不同外围扩展板,可实验不同的单片机功能,适应了各院校不同的教学需求。
二、单片机板简介本实验系统因为自带了MCS-51单片机系统,因此没有配置其他单片机板,但可以根据教学需要随时配置。
以单片机板为母板,并且有I/O接口引出,可以很方便的完成所有实验。
因此构成单片机实验系统。
1、主要技术参数(1)MSC-51单片机板板上配有ATMEL公司的STC89C51芯片。
STC89C51资源:32个I/O口;封装DIP40。
STC89C51开发软件:KEIL C51。
2、MSC-51单片机结构(1)单片机板中央放置一块可插拔的DIP封装的STC89C51芯片。
(2)单片机板左上侧有一个串口,用于下载程序。
(3)单片机板的四周是所有I/O引脚的插孔,旁边标有I/0引脚的脚引。
(4)单片机板与各个模块配合使用时,可形成—个完整的实验系统。
三、母板简介主要技术参数(1)实验系统电源实验系统内置了集成稳压电源,使整个电源具有短路保护、过流保护功能,提高了实验的稳定性。
主板的右上角为电源总开关,当把220V交流电源线插入主板后,打开电源开关,主板得电工作。
为适用多种需要,配置了+5V,+12V,—5V电压供主板和外设需要,通过右上角的插针排和插孔输出到外设。
此外,还设有螺旋保险插孔保护实验箱。
(2)RS232接口RS232接口通过MAX232芯片实现与计算机的串行通讯,通过接口引出信号。
本科实验报告课程名称:微机原理与接口技术姓名:陈肖苇学院:信息与电子工程学院专业:电子科学与技术学号:3140104580指导教师:黄凯2016年12 月23 日课程名称:微机原理与接口技术指导老师:黄凯成绩:__________________ 实验名称:单片机硬件实验一二实验一I/O控制实验1. 实验目的①掌握基本IO输入输出操作指令;②熟练运用“WAVE”环境对硬件接口进行调试。
2.预习要求①理解51单片机IO的输入、输出控制方式;理解P0、P1、P2、P3口做为普通的IO口有何区别。
②理解实现软件延时程序设计的延时时间估算;③认真预习本节实验内容,设计出器件之间的实验连接线,自行编写程序,填写实验报告。
3.基础型实验内容①8位逻辑电平显示的接口电路设计如图1-1所示,用P1口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。
用导线将MCS51模块的P1.0-P1.7端口依次与L0-L7小灯连接。
在“WAVE”环境运行该程序,观察发光二极管显示情况。
ORG 0LOOP: MOV A, #01H ;设置初值MOV R2,#8 ;设置循环次数OUTPUT: MOV P1,ARL A ;移位,让下一盏灯亮ACALL DELAY ;调用子程序来延迟DJNZ R2,OUTPUT ;循环R2次,即8次,达到依次点亮LJMP LOOP ;循环依次点亮的过程DELAY: MOV R6,#0 ;延时子程序MOV R7,#0DELAYLOOP:DJNZ R6,DELAYLOOPDJNZ R7,DELAYLOOPRETEND实验现象:LED小灯泡从右向左依次点亮,不断循环。
实验照片如下:②8位拨动开关的接口电路设计如图1-2所示,假设采用P1口控制LED显示,P2口接收拨码开关的输入值,用导线将MCS51模块的P1.0-P1.7端口依次与L0-L7小灯连接, 并将P2.0-P2.7端口依次与K0-K7开关连接。
在W A VE环境运行该程序,使用单步、断点、连续运行调试程序,查看结果。
ORG 0000HLL:MOV P2,#0FFHNOPMOV A, P2NOPMOV P1,ALJMP LLEND实验现象:当拨码开关在下面时,对应的灯灭;当拨码开关在下面时,对应的灯亮。
a)所有开关都在下面,灯全灭b)左侧两个开关在上面,左边两个灯亮③假设采用P1.0口控制外部LED,拨动开关控制外部中断,用二号导线将MCS51模块的P1.0、P3.2口分别与八位逻辑电平显示模块的L0、单次脉冲输出相连。
并在W A VE环境运行程序,观察实验现象。
ORG 0000HLJMP MAINORG 0003HLJMP INTERRUPTORG 0030HMAIN: CLR P1.0 ;P1.0输出低电平MOV TCON,#01H ;选择触发方式为下降沿触发MOV IE,#81HSJMP $ ;等待INTERRUPT: PUSH PSW ;保护现场CPL P1.0 ;P1.0电平求反POP PSW ;恢复现场RETIEND实验现象:每次点击时,LED灯状态取反,即原来熄灭的话,按一下按钮,LED灯会被点亮;原来点亮的话,按一下按钮,LED灯熄灭。
实验现象:按一下按钮,LED灯被点亮实验现象:再次按下按钮,LED灯熄灭④在上述步骤中,如果改变中断的触发方式为电平触发方式,试改动程序,并在W A VE环境运行程序,观察实验现象,说明实验结果。
ORG 0000HLJMP MAINORG 0003HLJMP INTERRUPTORG 0030HMAIN: CLR P1.0 ;P1.0输出低电平MOV TCON,#00H;选择触发方式为低电平触发MOV IE,#81HSJMP $ ;等待INTERRUPT: PUSH PSW ;保护现场CPL P1.0 ;P1.0电平求反POP PSW ;恢复现场RETIEND实验现象:当P3.2保持低电平时,LED灯被点亮,不过亮度弱于正常值(应为高频闪烁所致)。
实验现象:LED灯亮,但亮度低于正常值5.设计型实验内容画出流程并设计程序实现8位逻辑电平显示模块的奇偶位的亮灭闪烁显示,闪烁间隔为1S。
ORG 0000HLOOP: MOV A,#055HMOV R2,#2OUTPUT: MOV P1,ARL AACALL DELAYDJNZ R2,OUTPUTLJMP LOOPDELAY: MOV R6, #0AH ;延迟DLY1: MOV R5, #0C8HDLY2: MOV R4, #0F9HDLY3: DJNZ R4, DLY3DJNZ R5, DLY2DJNZ R6, DLY1RETEND设置初值55H,其二进制位为01010101表示奇偶位状态相反。
延迟时间:[(249*2+3)*200+3]*10*12/12000000=1.002030s实验二定时器计数器实验1.实验目的①掌握8051的定时器、中断系统编程方法;②了解定时器的应用、实时程序的设计和调试技巧。
2.预习要求①理解定时器的四种工作方式的异同点;②理解TMOD寄存器中GATE、C/T控制位的作用;③理解定时器中断服务程序的响应过程;④理解定时器实现精确定时的方法;⑤认真预习本节实验内容,设计出器件之间的实验连接线,自行编写程序,填写实验报告。
3.实验设备计算机 1 台;Lab8000型80C51实验开发系统 1 套;2号导线若干条;4.基础型实验内容①系统的时钟为12MHz,现欲实现10ms的精确定时,完成空白处程序填写,并在W A VE环境运行程序,观察实验现象。
(满足助教给出的要求:10ms放大至100ms,且输出到LED观察)ORG 0000HMOV TMOD, #01H ;设置T0为工作方式1LOOP1: MOV R0, #0AH ;计数十次LOOP2: MOV TL0, #0F0HMOV TH0, #0D8H ;装入初值SETB TR0JNB TF0,$CLR TF0DJNZ R0,LOOP2 ; 没到十次,继续计数CLP P1.0 ; 到10次,LED灯状态反转SJMP LOOP1 ;继续循环END实验现象:LED灯高频闪烁,每秒钟亮5次。
②假设采用P1.0口控制外部LED,用拨动开关控制外部中断,用二号导线将MCS51模块的P1.0、P3.2口分别与八位逻辑电平显示模块的L0、C6区八位逻辑电平输出K0相连。
在WA VE环境运行以下程序,分别拨动K0于高低电平位置,观察实验现象,并说明所发生实验现象的原因。
LJMP MAINORG 000BHLJMP TIMER0ORG 0030HMAIN: CLR P1.0 ;引脚设置低电平MOV TMOD,#0AH ;0000 1010 工作方式:计时器0的自动装在8位计时方式MOV TL0,#50H ;初值80,计数时间176usMOV TH0,#50H ;自动装载初值SETB TR0 ;TR0置位,且GATE0为1,由INT0引脚控制T0启停SETB EA ;开中断SETB ET0SJMP $TIMER0: CPL P1.0 ;引脚电平取反RETI ;中断返回END实验现象:当快速拨动K0时,LED灯的明暗状态不定,当拨码开关稳定在上面时,LED灯常量,不过亮度略低于正常值。
原因可能为每255us中仅176us被点亮,高频闪烁导致亮度不足。
③用二号导线将MCS51模块的P1.0与八位逻辑电平显示模块的任意一只发光二极管相连,全速运行下列程序,发光二极管隔一秒点亮一次,点亮时间为一秒。
流程图为:Tick equ 10000 ; 10000 x 100us = 1sT100us equ 40 ; 100us时间常数(12M)C100us equ 5h ; 100us记数单元LEDBuf BIT 00HLED BIT P1.0org 0000Hljmp Startorg 000BHLJMP T0IntORG 0100HT0Int: push PSWmov a, C100us+1jnz Goondec C100usGoon: dec C100us+1mov a, C100usorl a, C100us+1jnz Exit ;100us 记数器不为0, 返回mov C100us, #HIGH(TICK) ;#high(Tick)mov C100us+1, #LOW(TICK) ;#low(Tick)cpl LEDBuf ;100us 记数器为0, 重置记数器,取反LEDExit: pop PSWretiStart: mov TMOD, #02h ; 方式2, 定时器mov TH0, #t100usmov TL0, #t100usmov IE, #10000010b ; EA=1, IT0 = 1setb TR0 ; 开始定时clr LEDBufclr P1.0mov C100us, #high(Tick)mov C100us+1, #low(Tick)Loop: mov c, LEDBufmov P1.0, csjmp Loopend实验现象:全速运行实验时,发现LED等每隔一秒状态变化一次,即一秒亮,一秒暗。
5.设计型实验内容编程使第1~4和5~8发光二极管循环点亮的时间分别为0.25s、0.5s、0.75s、1s。
ORG 0000HLJMP MAINORG 001BH ;T1中断入口LJMP INT ;转T1中断服务ORG 0100HMAIN: MOV TMOD , #10H ;设置T1工作方式1MOV TH1 , #3CHMOV TL1 , #0B0H ;设置定时初值MOV R7, #0MOV P1, #1SETB EA ;CPU开中断SETB ET1 ;T1允许中断SETB TR1 ;启动T1SJMP $ ;模拟主程序ORG 0800HINT: CJNE R7, #0 , NEXT0MOV P1 , #1NEXT0:INC R7MOV TH1, #3CHMOV TL1, #0B0H ;重新装载定时初值CJNE R7 , #5 , NEXT1MOV P1 , #2RETINEXT1:CJNE R7 , #15 , NEXT2MOV P1 , #4RETINEXT2:CJNE R7 , #30 , NEXT3MOV P1 , #8RETINEXT3:CJNE R7 , #50 , NEXT4MOV P1 , #16RETINEXT4:CJNE R7 , #55 , NEXT5MOV P1 , #32RETINEXT5:CJNE R7 , #65 , NEXT6MOV P1 , #64RETINEXT6:CJNE R7 , #80 , NEXT7MOV P1 , #128NEXT7:CJNE R7 , #100 , ENDINTMOV R7 , #0ENDINT:RETI因为每个需要计时的时间都大于65ms(即定时器一次定时最大值),所以,需要选择一个合适的单位进行多次循环,在这里,我采用了50ms,即0.05秒的时间,作为一个周期单位。