




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实 验 报 告实验课程: 单片机原理及接口技术实验 学生姓名: 刘麟峰 学 号: 5801213031 专业班级: 测仪131 2015年 6 月 7 日目 录 第一章 系统安装与启动第二章 MCS-51 单片机硬件接口实验部分 实验一 mcs-51基本指令应用 实验二 I/O口输入、输出实验 实验三 外部中断实验 实验四 定时计数器实验 实验五 串行静态数码显示实验 实验六 交通灯控制实验 实验七 单片机串行口与PC机通信实验第一章 系统安装与启动一、实验系统工作在 51 实验模式当用户需要进行 MCS-51 单片机实验内容时,应进入这种工作模式。1)将 JD2(CPU 插座)与 JD3(CPU51 插座)用“CPU 转接板”连接起来,JD1(CPU88 插座) 空置。2)用配套的串行通讯电缆,将 9 芯电缆的一端与实验机上(CPU 模块处)的 9 芯插座 SCOM1 相连,另一端与 PC 机的串行口相连。3)先打开电源开关,再打开直流开关,在 PC 机上打开 THGMW-51 软件,运行实验程序,具体操作参见本实验指导书后面章节内容。二、51 实验模式下各开关和跳线器的初始状态设置1)A1 区直流开关:实验内容若不用到 A 区模拟模块,则开关置位在下方,模拟模块电源 为关闭状态。2)B2 区 JT1B 跳线器:短路帽置位在左边,LED 点阵显示模块电源为关闭状态。3)B3 区 JT2B 跳线器:短路帽全部置位在下方,LCD 液晶显示模块电源、背光为关闭状态。 4)C1 区 JT1C 跳线器和 C3 区 JT2C 跳线器的短路帽位置随意,由相关实验决定。5)C3 区 JT3C 跳线器:短路帽置位在左边,语音接口模块电源为关闭状态。 6)E4 区 JT1E 跳线器:两只短路帽置位在左边,八位逻辑电平输出有效。7)E7 区 S11E、S12E 开关:开关全部置位上方(ON),由 8279 来控制键盘、显示。 8)F3 区 JT1、JT2 跳线器:短路帽全部置位在上方。9)A5 区 S4A 多位开关:开关置位最右端(温度控制),做温度控制实验用。第二章 MCS-51 单片机硬件接口实验部分实验二 I/O 口输入、输出实验一、实验目的掌握单片机P1口、P3口的使用方法。二、实验内容以P1 口为输出口,接八位逻辑电平显示,LED 显示跑马灯效果。以P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。四、实验说明和电路原理图P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。因为内部上拉电阻阻值是20K40K,故不会对外部输入产生影响。若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。本实验需要用到CPU模块(F3区)和八位逻辑电平输出模块(E4区)和八位逻辑电平显示模块(B5区),八位逻辑电平输出电路原理图参见图1-1。八位逻辑电平显示电路原理图参见图1-2。图2-1 八位逻辑电平输出图2-2 八位逻辑电平显示五、实验预习要求学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。六、实验步骤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.0 ORG 0000H LJMP START ORG 0100H START: Output1: mov a, #0fEH mov r5, #8 loop1: 3 CLR C mov C,DIR JC Output2 mov P1, a rl a Acall Delay djnz r5, loop1 Sjmp Output1 Output2: mov a, #07fH mov r5, #8 loop2: CLR C mov C,DIR JNC Output1 mov P1, a rr a Acall Delay djnz r5,loop2 Sjmp Output2Delay: mov r6,#0 DelayLoop1: mov r7,#0DelayLoop2: NOP NOP djnz r7,DelayLoop2 djnz r6,DelayLoop1 ret八、实验总结 通过做I/O 口输入、输出实验实验,我基本上掌握了单片机的输入输出使用方法,单片机中的四组并行输入 输出口,都可以作为一般的输入输出口来用,程序中用MOV 指令可以实现输入输出。学会了流水灯的实现方法和实现延时的程序编写方法。受益匪浅。实验三 外部中断实验一、实验目的学习外部中断技术的基本使用方法。二、实验内容INT0 端接单次脉冲发生器。按一次脉冲产生一次中断,CPU 使P1.0 状态发生一次反转,P1.0 接LED 灯,以查看信号反转。三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。四、实验说明和电路原理图1)外部中断的初始化设置共有三项内容:中断总允许即EA=1,外部中断允许即EXi=1(i=0或1),中断方式设置。中断方式设置一般有两种方式:电平方式和脉冲方式,本实验选用后者,其前一次为高电平后一次为低电平时为有效中断请求。因此高电平状态和低电平状态至少维持一个周期,中断请求信号由引脚INT0(P3.2)和INT1(P3.3)引入。2)中断服务的关键:a、保护进入中断时的状态。堆栈有保护断点和保护现场的功能使用PUSH 指令,在转中断服务程序之前把单片机中有关寄存单元的内容保护起来。b、必须在中断服务程序中设定是否允许中断重入,即设置EX0 位。c、用POP 指令恢复中断时的现场。3)中断控制原理:中断控制是提供给用户使用的中断控制手段。实际上就是控制一些寄存器,51 系列用于此目的的控制寄存器有四个:TCON 、IE 、SCON 及IP。4)中断响应的过程:首先中断采样然后中断查询最后中断响应。采样是中断处理的第一步,对于本实验的脉冲方式的中断请求,若在两个相邻周期采样先高电平后低电平则中断请求有效,IE0 或IE1 置“1”;否则继续为“0”。所谓查询就是由CPU 测试TCON 和SCON 中各标志位的状态以确定有没有中断请求发生以及是那一个中断请求。中断响应就是对中断请求的接受,是在中断查询之后进行的,当查询到有效的中断请求后就响应一次中断。本实验需要用到CPU 模块(F3 区)和八位逻辑电平显示模块(B5 区)、单次脉冲模块(E3区)。五、实验预习要求学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。六、实验步骤1)系统各跳线器处在初始设置状态,用导线连接单次脉冲模块的输出端到CPU 模块的P32;CPU 模块的P10 接八位逻辑电平显示模块的灯。2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。编译无误后,下载程序运行。3)连续按动单次脉冲产生电路的按键,发光二极管L0 每按一次状态取反,即隔一次点亮。七、实验参考程序;/*;文件名: EXint for MCU51;功能: 外部中断实验 ;接线: 导线连接单次脉冲模块的输出端到CPU模块的P32, ; CPU模块的P10接八位逻辑电平显示模块的L0灯。;/* LED BIT P1.0 LEDBuf BIT 20H org 0 ljmp Start org 3Interrupt0: push PSW ; 保护现场 cpl LEDBuf ; 取反LED mov c, LEDBuf mov LED, c pop PSW ; 恢复现场 retiStart: clr LEDBuf clr LED mov TCON, #01h ; 外部中断0下降沿触发 mov IE, #81h ; 打开外部中断允许位(EX0)及总中断允许位(EA)OK: ljmp OK end 八、实验总结 在本实验中,我深入了解了中断的工作原理,及其作用,中断对于单片机的实时控制,软/硬件错误检查等有着重大的意义,是程序的重要功能之一,影响着程序工作方式,同时也可作为初级的人机交互的基础。为以后的复杂程序编程打下了坚实的基础!实验四 定时/计数器实验4.1.定时/计数器的方式寄存器和控制寄存器在启动定时/计数器工作之前,CPU必须将一些命令(称为控制字)写入定时/计数器中,这个过程称为定时/计数器的初始化。定时/计数器的初始化通过定时/计数器的方式寄存器TMOD和控制寄存器TCON完成。(1)定时/计数器方式寄存器TMODTMOD为定时器0、定时器1的工作方式寄存器,其格式如下表:GATEM1M0GATEM1M0定时器1定时器0M1和M0:方式选择位。定义如下:表3-3-1 M1、M0 工作方式功能说明表M1 M0工 作 方 式功 能 说 明0 0方 式 013位计数器0 1方 式 116位计数器1 0方 式 2自动再装入8位计数器1 1方 式 3定时器0:分成两个8位计数器定时器1:停止计数(2)定时器/计数器控制寄存器TCONTCON的作用是控制定时器的启动、停止,标志定时器的溢出和中断情况。定时器控制字TCON的格式如下图:TCON(88H) 8FH8EH8DH8CH8BH8AH89H88HTF1TR1TF0TR0IE1IT1IE0IT01) TCON.7 TF1:定时器1溢出标志位。当定时器1计满数产生溢出时,由硬件自动置TF1=1。在中断允许时,向CPU发出定时器1的中断请求,进入中断服务程序后,由硬件自动清0。在中断屏蔽时,TF1可作查询测试用,此时只能由软件清0。2) TCON.6 TR1:定时器1运行控制位。由软件置1或清0来启动或关闭定时器1。当GATE=1,且为高电平时,TR1置1启动定时器1;当GATE=0时,TR1置1即可启动定时器1。3) TCON.5 TF0:定时器0溢出标志位。其功能及操作情况同TF1。4) TCON.4 TR0:定时器0运行控制位。其功能及操作情况同TR1。5) TCON.3 IE1:外部中断1( )请求标志位。6) TCON.2 IT1:外部中断1触发方式选择位。7) TCON.1 IE0:外部中断0( )请求标志位。 8) TCON.0 IT0:外部中断0触发方式选择位。 (3)定时/计数器的初始化由于定时/计数器的功能是由软件编程确定的,所以,一般在使用定时器/计数前都要对其进行初始化。初始化步骤如下: 1) 确定工作方式对TMOD赋值。例如:定时器1工作在方式1,且工作在定时器方式上。MOV TMOD, #10H2) 预置定时或计数的初值直接将初值写入TH0、TL0或TH1、TL1。定时/计数器的初值因工作方式的不同而不同。设最大计数值为M,则各种工作方式下的M值如下: 方式0:方式1: 方式2:方式3:定时器0分成两个8位计数器,所以两个定时器的M值均为256。 因定时/计数器工作的实质是做“加1”计数,所以,当最大计数值M值已知时,初值X可计算如下: X = M -计数值例如:定时器1采用方式1定时,M=65536,因要求每50 ms溢出一次,如采用11.0592 MHz晶振,则机器周期=1211.0592MHz1.0851S(65536-定时常数)*1.0851S=50mS 定时常数4C01H所以,计数初值为将4C、01分别预置给TH1、TL1。 即程序为:MOV TL1,#01H ;延时50mS的时间常数 MOV TH1,#4CH3) 根据需要开启定时/计数器中断直接对IE寄存器赋值。 若未采用中断计数方式,则无此初始化语句。4) 启动定时/计数器工作将TR0或TR1置“1”。GATE = 0时,直接由软件置位启动;GATE = 1时,除软件置位外,还必须在外中断引脚处加上相应的电平值才能启动。例:若GATE = 0,所以直接由软件置位启动,则指令为:SETB TR1例1:由8051内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次,试初始化:MOV TMOD,#10H ;置T1为方式1 MOV TL1,#01H ;延时50mS的时间常数 MOV TH1,#4CH SETB TR1 SETB ET1 SETB EA ;开中断例2:假设利用定时器T0的方式1产生一个50HZ的方波,由P1.0输出,采用12MHZ时钟,并假定CPU不作其它工作。P1.0引脚输出的方波波形,如图3-3-2所示:T=20ms10ms10ms图3-3-2 在P1.0引脚上输出波形由于CPU不作其它工作,因而可以采用查询的方式进行控制。装入计数器的初值可由下式算得:(216-X)10-6=10-2因而:X=55536=D8F0H程序如下:MOV TMOD,#01H;设置T0 为方式1SETB TR0 ;启动T0工作LOOP: MOV TH0,#0D8H ;T0置初值 MOV TL0,#0F0HLOOP1: JNB TF0,LOOP1 ;查询TF0标志是否为1,如为1,说明T0溢出,则往下执行 CLR TF0 ;T0溢出,清TF0 CPL P1.0 ;P1.0求反 SJMP LOOP4.2. 定时器实验示例1.实验要求要求编写程序模拟一时序控制装置。开机后第一秒钟L0,L2亮,第二秒钟L1,L3亮,第三秒钟L4,L6亮,第四秒钟L5,L7亮,第五秒L0,L2,L4,L6亮,第六秒钟L1,L3,L5,L7亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,L0,L2亮,然后L1,L3亮.一直循环下去。(由8051内部定时器1,按方式1工作,即作为16位定时器使用每50mS秒钟T1溢出中断一次。)2.电路原理及接线图3-3-3定时器实验电路原理及接线图注:本实验有8根连线:实验机内核的P1.0P1.7与单元的L0L7连接。NINT_T1入口保护现场置定时常数将显示的数从表中取出结 束判断是否到1秒?Y显示数据表格指针加1恢复现场3.程序流程图开 始置T1计数器置初始常数开中断等待 图3-3-5 INT_T1中断子程序框图图3-3-4 主程序框图 4.程序框架ORG 0000H AJMP START ORG 001BH ;T1中断入口地址 AJMP INT_T1 ORG 0100HSTART: MOV SP,#60H 置T1为方式1 延时50mS的时间常数 MOV R0,#00H MOV R1,#20 启动T1,允许T1工作 开中断 SJMP $INT_T1: ;T1中断服务子程序 PUSH ACC ;保护现场 PUSH PSW PUSH DPL PUSH DPH 关中断 延时50mS常数 开中断 DJNZ R1,EXIT MOV R1,#20 ;延时一秒的常数 MOV DPTR,#DATA1 ;置常数表基址 MOV A,R0 ;置常数表偏移量 MOVC A,A+DPTR ;读常数表 送P1口显示 INC R0 ANL 00,#07HEXIT: 恢复现场 RETI;LED显示常数表DATA1: DB 0FAH,0F5H,0AFH,05FH,0AAH,55H,00H,0FFH END5.实验步骤 断电按线路图接线。 上电后,按复位键(RST),编辑、编译、连接、加载程序。 全速执行(F9)程序,观察现象。4.3 定时器实验一、实验目的学习MCS-51 内部计数器的使用和编程方法。二、实验内容使用MCS-51 内部定时/计数器,定时一秒钟,CPU 运用定时中断方式,实现每一秒钟输出状态发生一次反转,即发光管每隔一秒钟亮一次。三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。四、实验说明关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。本实验使用的是定时器,定时为一秒钟。定时器有关的寄存器有工作方式寄存器TMOD 和控制寄存器TCON。TMOD 用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON 主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12 个振荡器周期。假设实验系统的晶振是12MHZ,程序工作于方式2,即8 位自动重装方式定时器, 定时器100uS中断一次, 所以定时常数的设置可按以下方法计算:机器周期=1212MHz=1uS(256-定时常数)1uS=100uS定时常数=156。然后对100uS 中断次数计数10000 次,就是1 秒钟。在本实验的中断处理程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。本实验需要用到CPU 模块(F3 区)和八位逻辑电平显示模块(B5 区)。五、实验预习要求学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。六、实验步骤1)系统各跳线器处在初始设置状态,用导线连接CPU 模块P10 到八位逻辑电平显示模块的L0。2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。编译无误后,下载程序运行。3)运行程序观察发光二极管隔一秒点亮一次,点亮时间为一秒。七、实验参考程序;/*;文件名: Timer for MCU51;功能: 定时/计数器实验;接线: 导线连接CPU模块P10到八位逻辑电平显示模块的L0.;/* Tick equ 10000 ; 10000 x 100us = 1s T100us equ 156 ; 100us时间常数(6M) C100us equ 30h ; 100us记数单元 7 LEDBuf bit 20h org 0 ljmp Start org 000bhT0Int: push PSW mov a, C100us+1 jnz Goon dec C100usGoon: dec C100us+1 mov a, C100us orl a, C100us+1 jnz Exit ; 100us 记数器不为0, 返回 mov C100us, #27H ; #high(Tick) mov C100us+1, #10H ; #low(Tick) cpl LEDBuf ; 100us 记数器为0, 重置记数器 ; 取反LEDExit: pop PSW retiStart: mov TMOD, #02h ; 方式2, 定时器 mov TH0, #t100us mov TL0, #t100us mov IE, #10000010b ; EA=1, IT0 = 1 setb TR0 ; 开始定时 clr LEDBuf clr P1.0 mov C100us, #27H ;#high(Tick) mov C100us+1, #10H ;#low(Tick)Loop: mov c, LEDBuf mov P1.0, c ljmp Loop End8、 实验总结 通过本次实验,我对单片机的定时/计数功能有了一定的了解,熟悉了定时/计数器的设置、控制和最基本的应用,初步获悉了定时/计数器的内部结构,再结合上一次实验对终端的了解,二者配合,编写一些简单的程序,完成诸如产生固定频率的方波、脉冲计数和占空比调整的功能,巩固对中断和定时/计数的知识,为下一步的学习打下坚实的基础。 实验五 串行静态数码显示实验一、实验目的1掌握静态数码显示的电路原理和驱动程序的编写。2掌握数字、字符转换成显示段码的软件译码方法。二、实验内容使用四只74LS164 组成四位静态数码管显示电路,在数码管上滚动显示“0”到“F”十六进制字符。三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。四、实验说明和电路原理图静态数码管显示电路由四只74LS164、四只共阴极LED 数码管组成。输入只有两个信号,它们是串行数据线DIN 和移位信号CLK。四只74LS164 首尾相连,每只74LS164 的并行输出作为LED 数码管的段码。本实验需要用到CPU 模块(F3 区)和静态数码管显示模块(B4 区)。静态数码管显示电路原理图参见图4-1。图4-1 静态数码管显示电路五、实验预习要求学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。六、实验步骤1)系统各跳线器处在初始设置状态。用导线对应连接静态数码管显示模块的DIN、CLK 到CPU 模块的P10、P11。2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。编译无误后,下载程序运行。3)观察数码显示结果。七、参考程序 ;/* ;文件名: 4 LED for MCU51 ;功能: 串行静态显示 ;接线: 用导线对应连接静态数码管显示模块的DIN、CLK到CPU模块的P10、P11;/* DBUF EQU 30H EBUF EQU 34H FBUF EQU 38H TEMP EQU 40H DIN BIT P1.0 CLK BIT P1.1 ORG 0000H LJMP START ORG 0003H LJMP ZDCX ORG 0080H START: MOV DBUF+3,#2 MOV DBUF+2,#0 MOV DBUF+1,#0 MOV DBUF,#9 显示“2009” MOV EBUF+3,#18 MOV EBUF+2,#15 MOV EBUF+1,#19 MOV EBUF,#20 显示“UFyH” MOV FBUF+3,#21 MOV FBUF+2,#22 MOV FBUF+1,#12 MOV FBUF,#11 显示“PLCb” MOV TCON,#01H 外部中断0下降沿触发 MOV IE,#81H 打开外部中断允许位(EX0)及总中断允许位(EA) LOOP1:MOV R4,#03H MOV R3,#30H OK: CJNE R4,#00H,OK SJMP LOOP1 ZDCX: ACALL DISP MOV A,R3 ADD A,#04H MOV R3,A DEC R4 RETI DISP: MOV R0, R3 MOV R1, #TEMP MOV R2, #4 DP10: MOV DPTR,#SEGTAB MOV A, R0 MOVC A, A+DPTR MOV R1, A INC R0 INC R1 DJNZ R2, DP10 MOV R0, #TEMP MOV R1, #4 DP12: MOV R2, #8 MOV A, R0 DP13: RLC A MOV DIN, C CLR CLK SETB CLK DJNZ R2, DP13 INC R0 DJNZ R1, DP12 RET SEGTAB: DB 3FH,06H,5BH,4FH,66H,6DH 0,1,2,3,4,5 DB 7DH,07H,7FH,6FH,77H,7CH 6,7,8,9,A,b DB 39H,5EH,7BH,71H,00H,40H C,d,e,F,- DB 3EH,6EH,76H,73H,38H,54H U,y,H,P,L,n END 八实验总结 本实验采用了静态显示数码管显示字符,采用中断和循环的程序编写方法。通过 本实验的练习,基本上掌握了静态数码显示的电路原理和驱动程序的编写,掌握了数字、字符转换成显示段码的软件译码方法。实验还进一步对中断程序和循环程序的使用方法和程序编写过程,而中断和循环是单片机中最主要的两种程序结构,通过对他们的熟悉,大大提高了单片机程序编写的能力,为以后的编程打下了基础。实验六 交通灯控制实验一、实验目的掌握十字路口交通灯控制方法。二、实验内容利用系统提供的双色LED 显示电路,和四位静态数码管显示电路模拟十字路口交通信号灯。4 位LED 数码管显示时间,LED 显示红绿灯状态。三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。四、实验说明和电路原理图交通信号灯控制逻辑如下:假设一个十字路口为东西南北走向。开始为四个路口的红灯全部亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后(20 秒),东西路口的绿灯,闪烁若干次后(3 秒),东西路口的绿灯熄灭,同时东西路口的黄灯亮,延时一段时间后(2 秒),东西路口的红灯亮,南北路口的绿灯亮,南北路口方向通车,延时一段时间后(20 秒),南北路口的绿灯闪烁若干次后(3 秒),南北路口的绿灯熄灭,同时南北路口的黄灯亮,延时一段时间后(2 秒),再切换到东西路口的绿灯亮,南北路口的红灯亮,之后重复以上过程。双色LED 是由一个红色LED 管芯和一个绿色LED 管芯封装在一起,共用负极,当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。本实验需要用到CPU 模块(F3 区)、静态数码管/双色LED 显示模块(B4 区)。双色LED显示电路原理参见图5-1。图 5-1 双色LED 显示电路五、实验程序参考框图实验示例程序参考框图如图5-2。 图5-2 程序流程图六、实验预习要求学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。七、实验步骤1)系统各跳线器处在初始设置状态。P10 同时接G1、G3;P11 同时接R1、R3;P1.2 同时接G2、G4;P1.3 同时接R2、R4;P1.6、P1.7 分别接静态数码显示的DIN、CLK。2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。编译无误后,下载程序运行。3)观察十字路口交通灯效果。八、参考程序;/*;文件名:交通灯程序 FOR MCU51;功能:双色LED模拟交通灯信号,并通过调用静态数码显示状态时间。;接线:P1.0同时接G1、G3,P1.1接R1、R3,P1.2接G2、G4,P1.3同时接R2、R4,; P1.6、P1.7接静态数码显示的DIN、CLK。;/* SECOND1 EQU 30H ;东西秒寄存器 SECOND2 EQU 31H ;南北秒寄存器 DBUF EQU 40H ;显示缓冲1 TEMP EQU 44H ;显示缓冲2 LED_G1 BIT P1.0 ;东西绿灯 LED_R1 BIT P1.1 ;东西红灯 LED_G2 BIT P1.2 ;南北绿灯 LED_R2 BIT P1.3 ;南北红灯 Din BIT P1.6 ;串行显示数据 CLK BIT P1.7 ;串行显示时钟 ORG 0000H LJMP START ORG 0100HSTART: LCALL STATE0 ;调用状态0 LCALL DELAY ;调用延时 MOV TMOD,#01H ;置T0工作方式1 MOV TH0, #3CH ;置T0定时初值50mS MOV TL0, #0B0H SETB TR0 ;启动T0 CLR EALOOP: MOV R2,#20 ;置1S计数初值 50mS*20=1S MOV R3,#20 ;红灯20S MOV SECOND1,#25 ;东西秒显示初值25S MOV SECOND2,#25 ;南北秒显示初值25S LCALL DISPLAY LCALL STATE1 ;调用状态1WAIT1: JNB TF0,WAIT1 ;查询50mS到否 CLR TF0 MOV TH0, #3CH ;恢复T0定时初值50mS MOV TL0, #0B0H SETB TR0 ;启动T0 DJNZ R2,WAIT1 ;判1S到否?未到继续状态1 MOV R2,#20 ;置50mS计数初值 DEC SECOND1 ;东西秒显示减一 DEC SECOND2 ;南北秒显示减一 LCALL DISPLAY DJNZ R3,WAIT1 ;状态1维持20S;* MOV R2,#5 ;置50mS计数初值 5*4=20 MOV R3,#3 ;绿灯闪3S MOV R4,#4 ;闪烁间隔200mS MOV SECOND1,#5 ;东西秒显示初值5S MOV SECOND2,#5 ;南北秒显示初值5S LCALL DISPLAYWAIT2: LCALL STATE2 ;调用状态2 JNB TF0,WAIT2 ;查询50mS到否 CLR TF0 MOV TH0, #3CH ;恢复T0定时初值50mS MOV TL0, #0B0H DJNZ R4,WAIT2 ;判200mS到否?未到继续状态2 CPL LED_G1 ;东西绿灯闪 MOV R4,#4 ;闪烁间隔200mS DJNZ R2,WAIT2 ;判1S到否?未到继续状态2 MOV R2,#5 ;置50mS计数初值 DEC SECOND1 ;东西秒显示减一 DEC SECOND2 ;南北秒显示减一 LCALL DISPLAY DJNZ R3,WAIT2 ;状态2维持3S;* MOV R2,#20 ;置50mS计数初值 MOV R3,#2 ;黄灯2S MOV SECOND1,#2 ;东西秒显示初值2S MOV SECOND2,#2 ;南北秒显示初值2S LCALL DISPLAYWAIT3: LCALL STATE3 ;调用状态3 JNB TF0,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司招工合同样本
- 公司委托技术咨询合同样本
- 个人和劳务公司合同样本
- 2025精简版装修合同范本
- 公司与法人合同范例
- 上海车位出租合同范例
- 临聘人员签约合同样本
- 仓库租赁及配送合同标准文本
- simtrade买卖合同样本
- 产品供货合作合同样本
- 大数据与会计专业专业的实习报告
- JT-T-4-2019公路桥梁板式橡胶支座
- 火龙罐综合灸疗法
- 特种设备使用登记表(范本)
- 汉译巴利三藏相应部5-大篇
- 2022年青海大学医学院附属藏医院医护人员招聘笔试模拟试题及答案解析
- 城市地理学-第八章城市空间分布体系
- 贵州省促进养老托育服务高质量发展实施方案
- 托利多电子秤校秤步骤
- 《DVT深静脉血栓》
- 《大豆栽培学》PPT课件.ppt
评论
0/150
提交评论