南昌大学单片机实验报告

合集下载

单片机实验报告一 单片机软件实验

单片机实验报告一 单片机软件实验

南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合⃞设计⃞创新实验日期:2019.4.9 实验成绩:实验一单片机软件实验(一)实验目的1.掌握51单片机keil软件集成开发环境,能够使用汇编语言编写应用程序。

2.掌握使用集成开发环境Keil进行单片机程序开发的方法3.掌握使用集成开发环境Keil进行单片机程序跟踪调试的方法。

(二)设计要求熟悉51单片机的keil软件集成开发环境,使用汇编语言编写“1+2+3+…+100”的程序。

(三)实验原理KeilC51软件使用:在KeilC51集成开发环境下,建立一个工程并编辑源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。

(四)实验设备PC机,Keil C51集成开发环境。

(五)实验结果对汇编程序进行编译、链接、调试,在Keil C51软件中运行仿真结果如下图所示,由于“1+2+……100”运行结果超过8位二进制所能表示的范围,计算结果将存放于两个8位工作寄存器单元R2、R3中。

其中,低八位存放于R2中,高八位存放于R3中,R4中存放计算数。

下图中的寄存器窗口中可以显示计算结果为0x13ba。

调出存储器窗口Memory:选择菜单命令View →Memory Window →Memory 1:可见计算结果存放于当前工作寄存器R2(02H)与R3(03H)中,为0x13BA。

(六)结果讨论与心得体会第一次使用Keil C51软件,初步了解了软件:Keil uVision4的使用方法,初步了解了Keil软件中程序的编辑,新工程的建立运行,初步对单片机实验进行了解,加强了实验动手操作能力。

第一次尝试单步调试,能观察到内存中每一个单元的变化,感到单片机系统复杂中的严谨,收获颇丰。

(七)附录:实验源代码实验源代码如下:ORG 0000HLJMP MAINORG 0050H MAIN:MOV R2,#00HMOV R3,#00HMOV R4,#64HMOV A,#00HCLR C LOOP:MOV A,R2ADD A,R4MOV R2,AMOV A,#00HADDC A,R3MOV R3,ADJNZ R4,LOOPSJMP $END。

单片机实训实验报告总结

单片机实训实验报告总结

一、实验背景与目的随着科技的不断发展,单片机作为一种微小的计算机系统,在工业控制、智能家居、汽车电子等领域得到了广泛的应用。

为了提高学生的实践能力和创新意识,本实训课程旨在通过实际操作,让学生掌握单片机的原理、编程和调试方法,培养学生的动手能力和团队协作精神。

本次实训以51单片机为核心,结合数码管、LED灯、按键等外围电路,设计了多个实验项目,包括LED流水灯、交通灯控制系统、简易计算器、温湿度监控系统等。

通过这些实验,使学生深入了解单片机的硬件结构和软件编程,提高学生的实际操作能力和问题解决能力。

二、实验内容与过程1. 实验一:LED流水灯(1)实验目的:掌握51单片机的I/O口编程,实现LED灯的流水效果。

(2)实验步骤:① 硬件连接:将LED灯连接到P1口;② 编写程序:使用循环语句和延时函数控制LED灯的流水效果;③ 程序下载:将程序烧录到单片机中;④ 实验验证:观察LED灯的流水效果。

2. 实验二:交通灯控制系统(1)实验目的:学习单片机在交通灯控制系统中的应用,实现红黄绿灯的变换及倒计时功能。

(2)实验步骤:① 硬件连接:将LED灯连接到P1口,按键连接到外部中断INT0;② 编写程序:设置定时器中断,实现倒计时功能;编写外部中断程序,实现红黄绿灯的变换;③ 程序下载:将程序烧录到单片机中;④ 实验验证:观察交通灯的工作状态和倒计时效果。

3. 实验三:简易计算器(1)实验目的:掌握矩阵键盘扫描原理、LCD1602显示屏控制,实现基本的四则运算。

(2)实验步骤:① 硬件连接:将矩阵键盘和LCD1602显示屏连接到单片机;② 编写程序:实现矩阵键盘扫描、LCD1602显示控制和运算逻辑处理;③ 程序下载:将程序烧录到单片机中;④ 实验验证:观察计算器的工作状态和运算结果。

4. 实验四:温湿度监控系统(1)实验目的:学习单片机在温湿度监控系统中的应用,实现温度和湿度的实时显示。

(2)实验步骤:① 硬件连接:将温度传感器和湿度传感器连接到单片机,将LED灯连接到P1口;② 编写程序:实现温度和湿度的实时采集,并根据采集到的数据控制LED灯的亮灭;③ 程序下载:将程序烧录到单片机中;④ 实验验证:观察LED灯的亮灭状态和数码管上的温度、湿度值。

单片机实验报告1

单片机实验报告1

单片机实验报告1单片机实验报告1一、实验目的本实验的目的是通过学习单片机的基本知识和原理,了解单片机的工作原理,熟悉编写单片机程序并进行实验验证。

二、实验器材和软件实验器材:单片机开发板、USB数据线、LCD液晶屏、面包板、电缆线、电阻、LED等。

实验软件:KEIL C51开发软件、Proteus电路仿真软件。

三、实验原理单片机是一种集成度很高的微处理器芯片,本实验使用的单片机开发板中集成了一款8051系列的单片机。

这款单片机具有强大的数据处理能力和丰富的接口资源,可以用来实现各种功能。

四、实验内容本实验主要分为两个部分:第一部分是通过LED灯的亮灭来实现二进制数的计数;第二部分是通过LCD液晶屏显示温度和湿度数值。

1.二进制数计数利用单片机的IO口,将LED灯连接到P2口,通过对P2口的输出信号进行控制,实现二进制数的计数。

2.温湿度显示利用单片机的ADC(模数转换)功能,将温湿度传感器与单片机相连,通过ADC模块将温湿度信号转换成数字信号,并通过LCD屏幕显示出来。

五、实验步骤1.硬件连接将开发板与电脑连接,使用数据线将开发板上的USB接口与电脑的USB接口相连。

然后将LCD液晶屏和温湿度传感器连接到开发板上的相应接口,并将LED灯连接到P2口。

2.编写程序使用KEILC51软件编写程序,通过编写相应的代码,实现LED灯计数和温湿度显示功能。

4.运行实验将开发板上的拨码开关打开,开启单片机的电源。

LED灯开始计数并显示在开发板上,LCD屏幕同时显示温度和湿度的数值。

六、实验结果经过实验,LED灯能够正常进行二进制数的计数,LCD屏幕也能够准确地显示温度和湿度的数值。

七、实验总结通过本实验,我对单片机的工作原理和编程有了更深入的了解。

实验中遇到的问题,我通过查找资料、请教老师和同学进行了解决,提高了我的解决问题的能力。

通过实验,我进一步认识了单片机在各个领域中的重要性和应用价值,对未来的学习和工作有了更加明确的方向。

单片机硬件实验报告

单片机硬件实验报告

《单片机导论》课程硬件实验实验报告院系:光电信息工程学系专业:姓名:学号:一、硬件实验一(一)实验1-11、实验内容与要求编写程序,使发光二极管从左到右轮流循环点亮(用软件延时)2、实验使用的硬件模块及原理功能①流水灯模块硬件系统:②功能原理:3、程序流程及主要程序①程序流程:②主要程序:4、实验结果与讨论发光二级管从左到右依次循环电亮。

(二)实验1-21、实验内容与要求采用独立式键盘,当任一个K(K0-K7)键按下时,点亮相应的LED(LED0-LED7)。

2、实验室用的硬件模块及原理功能①独立键盘硬件模块:②原理功能:3、程序流程与主要程序①程序流程:②主要程序:4、实验结果与讨论利用独立键盘控制相应的发光二极管,每按下一个键盘,相应的二极管点亮。

(三)实验1-31、实验内容与要求编写能发出“哆”到“西”的程序,每个音均为一拍。

2、实验室用的硬件模块及原理功能①蜂鸣器硬件模块:②原理功能:3、程序流程与主要程序修改了例程欢乐颂的音频-节拍表,得到以下程序:4、实验结果与讨论利用已有的欢乐颂例程,修改最后的音频-节拍表,即得到每个音一拍的do、re、mi、fa、so、la、si。

二、硬件实验二(一)实验2-11、实验内容与要求编程使静态数码管以1s间隔循环显示9—0,循环2次后,使数码管的a bc d e f 6个段,依次点亮并循环,每个段点亮的时间为0.5秒。

(用软件延时或定时器定时)2、实验室用的硬件模块及原理功能3、程序流程与主要程序①程序流程:②主要程序:4、实验结果与讨论静态数码管循环显示9—0,每个1s,循环两次。

后使数码管的a b c d e f 6个段,依次点亮并循环,每段0.5s。

(二)实验2-21、实验内容与要求编写十字路口交通灯控制程序。

要求:东西向车道亮红灯时,南北向车道亮绿灯,东西向人行道亮红灯,南北向人行道亮绿灯,时间为5s;两个方向的车道均为黄灯,人行道均亮红灯亮,时间为2s;红绿灯显示交换方向;两个方向的车道均为黄灯,人行道均亮红灯亮,时间为2s,如此循环反复。

单片机实验报告

单片机实验报告

单片机实验报告一、实验目的本次单片机实验的主要目的是通过实际操作和编程,深入了解单片机的工作原理和应用,掌握单片机系统的设计、开发和调试方法,提高自身的动手能力和解决问题的能力。

二、实验设备1、单片机开发板2、计算机3、编程软件(如 Keil)4、下载器5、示波器6、万用表三、实验内容1、点亮 LED 灯通过编写简单的程序,控制单片机的引脚输出高低电平,从而点亮或熄灭连接在该引脚上的 LED 灯。

这是单片机最基础的操作之一,旨在熟悉单片机的编程环境和引脚控制方式。

2、数码管显示利用单片机驱动数码管,实现数字的显示。

需要了解数码管的工作原理和驱动方式,通过编程控制数码管的段选和位选信号,显示不同的数字。

3、按键输入设计按键电路,通过读取按键的状态,实现对单片机系统的输入控制。

例如,通过按键切换不同的显示模式或控制其他外部设备。

4、定时器/计数器应用使用单片机的定时器/计数器功能,实现定时、计数等操作。

例如,设计一个定时闪烁的 LED 灯,或者通过计数器统计外部脉冲的个数。

5、串口通信实现单片机与计算机之间的串口通信,将单片机采集到的数据发送到计算机上进行显示和处理,或者接收计算机发送的指令对单片机系统进行控制。

四、实验原理1、单片机的基本结构单片机通常由中央处理器(CPU)、存储器(包括程序存储器和数据存储器)、输入输出接口(I/O 口)、定时器/计数器、中断系统等部分组成。

2、编程语言本次实验采用 C 语言进行编程。

C 语言具有简洁、高效、可移植性强等优点,非常适合单片机的开发。

3、引脚功能单片机的引脚分为电源引脚、时钟引脚、复位引脚、I/O 引脚等。

通过对这些引脚的合理配置和控制,可以实现各种功能。

4、数码管驱动原理数码管分为共阴极和共阳极两种类型。

通过控制数码管的段选和位选信号,可以使数码管显示不同的数字和字符。

5、按键检测原理按键通常采用上拉电阻或下拉电阻的方式连接到单片机的I/O 引脚。

单片机实验报告

单片机实验报告

单片机实验报告引言:单片机是一种集成了处理器、存储器和输入输出设备的微型计算机,广泛应用于电子设备中。

本实验通过对单片机的学习和实践,探索了其原理和应用。

一、实验目的本次实验的目的是熟悉单片机的基本原理和操作方法,掌握单片机的编程语言和开发工具,实现简单的实时控制和数据采集。

二、实验装置及材料1. 单片机:我们选择了常用的51系列单片机,拥有较好的性能和兼容性。

2. 开发板:用于实验中运行和调试所写的程序。

3. 传感器:温度传感器、光照传感器等,用于实现数据采集。

4. LED灯和蜂鸣器:用于实现实时控制和输出。

5. 连接线:将单片机与传感器、开发板等连接起来。

三、实验过程和结果1. 单片机的编程语言:单片机主要使用汇编语言和C语言进行编程。

汇编语言能够直接操作硬件资源,灵活性较高;而C语言则更易于理解和编写,可提高开发效率。

我们选择了C语言进行编程。

2. 开发工具:为了编写和调试单片机程序,我们使用了KeilC51和Proteus软件进行开发。

Keil C51提供了编译器和调试器,可对程序进行编译和调试;Proteus能够模拟开发板的运行情况,方便我们验证程序的正确性。

3. LED控制实验:我们首先进行了LED控制实验,通过单片机的I/O口来控制LED的开灭。

编写程序后,在开发工具中进行仿真,确保程序和电路无误后,将程序下载到单片机上进行实际运行。

实验结果显示,当程序指定LED灯为高电平时,LED灯亮起;当程序指定为低电平时,LED灯熄灭。

4. 数据采集实验:接下来,我们进行了数据采集实验,利用温度传感器和光照传感器采集环境温度和光照强度。

将传感器与单片机连接后,编写相应程序进行数据读取。

实验结果显示,我们能够通过单片机读取到精确的温度和光照数值。

5. 实时控制实验:为了验证单片机的实时控制能力,我们使用蜂鸣器进行了实时报警实验。

通过编写程序,设置蜂鸣器的开关状态,当某个条件满足时,蜂鸣器会发出警报声。

单片机实验报告四 外部中断实验

单片机实验报告四 外部中断实验

南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合⃞设计⃞创新实验日期:2019. 4.30 实验成绩:实验四外部中断实验(一)实验目的1.掌握单片机外部中断原理;2.掌握数码管动态显示原理。

(二)设计要求1.使用外部中断0和外部中断1;2.在动态数码管上显示中断0次数,中断1用作次数清0,数码管采用74HC595驱动。

(三)实验原理1.中断:计算机执行主程序过程中,由于临时重要事件,需要暂停当前程序的运行,转到中断服务程序去处理临时事件,处理完后又返回原程序的断点处继续运行。

图1STC15单片机的中断系统包含21个中断源,2个中断优先级,二级中断服务嵌套,中断允许寄存器IE、IE2和INT_CLKO控制中断允许。

中断优先级寄存器IP、IP2管理中断优先级。

同优先级中断同时提出中断请求时,由内部的查询逻辑确定响应次序。

中断请求源中的外部中断0(INT0)和外部中断1(INT1)详述如下:1)外部中断0(INT0):中断信号由P3.2引脚输入。

通过IT0来设置中断请求的触发方式。

当IT0为“1”时,外部中断0为下降沿触发;当IT0为“0”时,无论是上升沿还是下降沿,都会引发外部中断0.一旦输入信号有效,则置位IE0标志,向CPU申请终端。

2)外部中断1(INT1):中断信号由P3.3引脚输入。

通过IT1来设置中断请求的触发方式。

当IT1为“1”时,外部中断0为下降沿触发;当IT1为“0”时,无论是上升沿还是下降沿,都会引发外部中断0.一旦输入信号有效,则置位IE0标志,向CPU申请终端。

2.LED数码管是显示数字和字母的常见显示器件,由8个发光二极管构成,结构如图2:图2段码:a、b、c、d、e、f、g、dp段的二进制代码(a为最低位),控制显示字型。

位选:公共端com,控制数码管是否显示。

3.数码管动态显示原理:任何时刻只有一个数码管处于显示状态,单片机采用“扫描”方式控制各个数码管轮流显示,通常将所有数码管段码线的相应段并联在一起,由一个8位I/O 端口控制。

单片机实验报告

单片机实验报告

单片机实验报告1. 实验背景单片机(Microcontroller Unit,简称MCU)是一种集成了微处理器核心、内存、计时器、I/O接口等功能的集成电路芯片。

它具有体积小巧、功耗低、性能高等优点,在嵌入式系统中应用广泛。

本实验旨在通过对单片机的实际操作,加深对单片机原理及应用的理解。

2. 实验目的本次实验的主要目的是:- 掌握单片机的基础知识,包括单片机的结构、工作原理等;- 学习单片机的编程方法,初步掌握单片机的编程技巧;- 进行简单的单片机应用实验,提高对实际应用的理解。

3. 实验设备与材料实验所需的设备和材料包括:- 单片机开发板;- 计算机;- 连接线等。

4. 实验过程与结果在本实验中,我们使用XXX型单片机开发板作为实验平台,通过连接计算机进行编程。

具体的实验过程如下:4.1 硬件连接将单片机开发板与计算机通过连接线连接,并确保连接正常。

接下来,将我们设计好的电路按照要求连接到开发板的相应引脚上。

4.2 编程使用XXX软件对单片机进行编程。

根据实验要求,编写相应的程序代码,并将代码下载到单片机开发板中。

验证代码是否编译通过,并将运行结果显示在数码管、液晶显示屏等外设上。

4.3 实验结果实验结果根据不同的实验要求而定,可以是对某个外设的控制、信号的采集、数据的处理等。

在实验过程中需记录实验结果,并进行分析。

5. 实验总结通过本次实验,我对单片机的基本原理及应用有了更深入的了解。

掌握了单片机的硬件连接方法和编程技巧,并成功完成了实验要求。

实验结果表明,单片机在各个领域都有广泛的应用前景,对于嵌入式系统的开发起着重要作用。

当然,本次实验只是单片机应用的初步探索,还有很多更深入的研究和应用值得去探索。

在今后的学习与实践中,我将进一步深化对单片机的理解,并将其灵活应用于各种项目中。

6. 参考文献[参考文献1][参考文献2][参考文献3](文章内容仅供参考,具体实验过程和结果以实际情况为准。

)。

单片机实验报告

单片机实验报告

一、实验目的1. 熟悉单片机的硬件组成和基本工作原理。

2. 掌握单片机最小系统的搭建方法。

3. 学习使用单片机编程软件进行程序编写和调试。

4. 通过实际操作,加深对单片机应用的理解。

二、实验环境1. 实验设备:MCS-51单片机实验板、电源模块、面包板、连接线、LED灯、蜂鸣器、按键等。

2. 软件环境:Keil uVision5、Proteus仿真软件。

三、实验内容1. 点亮LED灯(1)实验目的:掌握单片机I/O口的使用,实现LED灯的点亮。

(2)实验步骤:① 将LED灯的阳极连接到单片机的P1.0口,阴极连接到GND。

② 在Keil uVision5中新建工程,编写程序如下:```cvoid main() {while (1) {P1 = 0xFF; // 点亮LED灯delay(500000); // 延时P1 = 0x00; // 熄灭LED灯delay(500000); // 延时}}③ 将程序编译并下载到单片机中,观察LED灯的点亮效果。

2. 蜂鸣器控制(1)实验目的:掌握单片机I/O口的使用,实现蜂鸣器的控制。

(2)实验步骤:① 将蜂鸣器的正极连接到单片机的P1.1口,负极连接到GND。

② 在Keil uVision5中编写程序如下:```cvoid main() {while (1) {P1 = 0x02; // 使能蜂鸣器delay(100000); // 延时P1 = 0x00; // 禁止蜂鸣器delay(100000); // 延时}}```③ 将程序编译并下载到单片机中,观察蜂鸣器的鸣叫效果。

3. 按键扫描(1)实验目的:掌握单片机I/O口的使用,实现按键的扫描和识别。

(2)实验步骤:① 将两个按键分别连接到单片机的P1.2和P1.3口。

② 在Keil uVision5中编写程序如下:void main() {while (1) {if (P1 & 0x04) { // 检测按键1是否按下// 执行按键1按下后的操作}if (P1 & 0x08) { // 检测按键2是否按下// 执行按键2按下后的操作}}}```③ 将程序编译并下载到单片机中,观察按键的扫描和识别效果。

单片机实训实验报告

单片机实训实验报告

一、实验名称单片机原理及应用实验二、实验目的1. 熟悉单片机的基本结构和原理,了解单片机在电子系统中的应用。

2. 掌握单片机编程语言C的基本语法和编程技巧。

3. 学会使用单片机进行简单控制,实现LED流水灯、数码管显示等基本功能。

4. 提高动手实践能力,培养团队合作精神。

三、实验仪器与设备1. 单片机实验箱:包括单片机、电源、按键、LED灯、数码管等。

2. 电脑:用于编程和仿真。

3. 编程软件:Keil uVision5或IAR EWARM等。

四、实验原理单片机是一种集成度高、功能强大的微控制器,具有运算速度快、功耗低、体积小等优点。

本实验以51单片机为例,介绍其基本原理和编程方法。

51单片机主要由以下几个部分组成:1. 中央处理器(CPU):负责执行指令,控制整个单片机系统。

2. 存储器:包括程序存储器(ROM)和数据存储器(RAM),用于存储程序和数据。

3. 输入/输出接口:用于与外部设备进行数据交换。

4. 定时器/计数器:用于实现定时和计数功能。

5. 中断系统:用于处理中断事件。

本实验主要涉及以下几个方面:1. 单片机基本结构和工作原理。

2. 单片机编程语言C的基本语法和编程技巧。

3. 单片机I/O口的使用和驱动能力。

4. 定时器/计数器的使用和编程。

5. 中断系统的使用和编程。

五、实验内容1. 实验一:LED流水灯(1)实验目的:掌握单片机I/O口的使用,实现LED流水灯效果。

(2)实验原理:通过单片机I/O口输出高低电平,控制LED灯的亮灭,实现流水灯效果。

(3)实验步骤:① 连接实验箱电路,将LED灯连接到单片机的P1口。

② 编写程序,设置P1口为输出模式,通过循环改变P1口输出电平,实现LED流水灯效果。

③在电脑上编译、下载程序,观察实验效果。

2. 实验二:数码管显示(1)实验目的:掌握单片机I/O口的使用,实现数码管显示功能。

(2)实验原理:通过单片机I/O口输出高低电平,控制数码管显示数字。

南昌大学单片机实验二 交通灯控制实验

南昌大学单片机实验二 交通灯控制实验

实验二交通灯控制实验一、实验目的掌握十字路口交通灯控制方法。

二、实验内容利用系统提供的双色LED 显示电路,和四位静态数码管显示电路模拟十字路口交通信号灯。

4 位LED 数码管显示时间,LED 显示红绿灯状态。

三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。

四、实验说明和电路原理图交通信号灯控制逻辑如下:假设一个十字路口为东西南北走向。

开始为四个路口的红灯全部亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后(20 秒),东西路口的绿灯,闪烁若干次后(3 秒),东西路口的绿灯熄灭,同时东西路口的黄灯亮,延时一段时间后(2 秒),东西路口的红灯亮,南北路口的绿灯亮,南北路口方向通车,延时一段时间后(20 秒),南北路口的绿灯闪烁若干次后(3 秒),南北路口的绿灯熄灭,同时南北路口的黄灯亮,延时一段时间后(2 秒),再切换到东西路口的绿灯亮,南北路口的红灯亮,之后重复以上过程。

双色LED 是由一个红色LED 管芯和一个绿色LED 管芯封装在一起,共用负极,当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。

本实验需要用到CPU 模块(F3 区)、静态数码管/双色LED 显示模块(B4 区)。

双色LED显示电路原理参见图2-1。

图 2-1 双色LED 显示电路五、实验程序参考框图实验示例程序参考框图如图2-2。

图2-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 软件,输入源程序,并编译源程序。

编译无误后,下载程序运行。

南昌大学单片机课程设计报告

南昌大学单片机课程设计报告

课程设计报告课程名称:微机原理课程设计题目:基于单片机的电子时钟设计学院:环境与化学工程系:过程装备与测控工程专业:测控技术与仪器班级:测仪091班学号:学生姓名:起讫日期:2011-12-19~2011-12-26指导教师:杨俊清、杨大勇摘要20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。

由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。

尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时器功能也可以完成数字钟电路的设计,因此进行数字钟的设计是必要的,研究数字钟及扩大其应用,有着非常现实的意义。

单片机数字时钟就是其中的一款设计。

它具有编程灵活,便于电子钟功能的扩充,即可用该电子钟发出各种控制信号,精确度高等特点,同时可以用该电子钟发出各种控制信号,单片机数字钟是单片机为核心。

时钟,本设计是以单片机STC89C52配备LCD1602显示,数字钟采用24小时制方式显示时间,带有日期和时间的设置功能。

关键词:单片机电子时钟C语言目录一、设计任务、要求 (1)二、方案总体设计与论证 (1)三、硬件设计 (2)四、系统仿真与调试 (5)五、设计总结、心得体会等 (14)六、参考文献 (14)一、设计任务、要求1、设计任务:利用单片机的C语言、STC89C52单片机及独立按键和LCD1602设计出电子时钟,且完成课程设计报告。

2、设计要求:○1、用LCD1602液晶显示。

○2、可以分别设定小时,分钟和秒,复位后时间为:00:00:00○3、能实现日期的设置,年、月、日3.创新部分:具有显示星期功能。

南昌大学单片机实验报告

南昌大学单片机实验报告

实验一 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灯循环点亮。

单片机实习报告(精选8篇)

单片机实习报告(精选8篇)

单片机实习报告(精选8篇)单片机篇1这次实习我们使用控制电路的单片机是AT89S51型号的。

透过它实现对八盏双色灯发光二极管的控制P0和《单片机实习报告总结》正文开始》这次实习我们使用控制电路的单片机是AT89S51型号的。

透过它实现对八盏双色灯发光二极管的控制P0和P2口控制四盏灯。

在AT89S51的9引脚接复位电路,对电路实现复位控制。

在电路中接入74S164译码器和共阴极数码管,透过AT89S51的P3口数据的输入对共阴极数码管的控制。

同时也可实现双色发光的二极管与共阴极数码管的共同作用。

在AT89S51的P3。

2口接上中断控制电路,P3。

5口接入蜂鸣器,使电路实现中断作用,也使电路便于检测。

尽量朝“单片”方向设计硬件系统。

系统器件越多,器件之间相互干扰也越强,功耗也增大,也不可避免地降低了系统的稳定性。

系统中的相关器件要尽可能做到性能匹配。

如选用CMOS芯片单片机构成低功耗系统时,系统中所有芯片都应尽可能选取低功耗产品。

硬件电路设计:1)确保硬件结构和应用软件方案相结合。

硬件结构与软件方案会相互影响,软件能实现的功能尽可能由软件实现,以简化硬件结构。

务必注意,由软件实现的硬件功能,一般响应时光比硬件实现长,且占用CPU时光;2)可靠性及抗干扰设计是硬件设计必不可少的一部分,它包括芯片、器件选取、去耦滤波、印刷电路板的合理布线、各元器相互隔离等;3)尽量朝“MCS-51单片”方向设计硬件系统。

系统器件越多,器件之间相互干扰也越强,所消耗功耗也增大,也不可避免地降低了系统的稳定性;4)系统中的相关器件要尽可能做到性能匹配。

如选用CMOS芯片单片机构成低功耗系统时,系统中所有芯片都应尽可能选取低功耗产品。

1。

1单片机型号及特性单片机型号是AT89S51。

特性是:⑴8031CPU与MCS-51⑵兼容4K字节可编程FLASH存储器(寿命:1000写/擦循环)⑶全静态工作:0Hz-24KHz⑷三级程序存储器保密锁定⑸128*8位内部RAM⑹32条可编程I/O线⑺两个16位定时器/计数器⑻6个中断源⑼可编程串行通道⑽低功耗的闲置和掉电模式⑾片内振荡器和时钟电路1。

南昌大学单片机实验

南昌大学单片机实验

南昌大学实验一清零实验(基础实验)一、实验目的1. 掌握存储器读写方法。

2. 了解存储器的块操作方法。

二、实验内容1. 指定内部RAM中某块的起始地址和长度,要求能将其内容清零。

2. 指定外部RAM中某块的起始地址和长度,要求能将其内容清零。

3. 指定外部RAM中某块的起始地址和长度,要求能将其内容置为某固定值(如0FFH)。

三、实验说明通过本实验,学生可以了解单片机的存储器结构及读写存储器的方法,同时也可以了解单片机编程、调试方法。

四、实验仪器和设备PC机、W A VE软件。

五、参考程序框图设置块起始地址设置块长度当前地址内容清零地址加1否是否清除完?是结束存储器块清零参考程序框图六、参考程序(略)实验二拆字程序(基础实验)一、实验目的掌握汇编语言设计和调试方法。

二、实验内容把7000H的内容拆开,高位送7001H低位,低位送7002H低位。

7001H、7002H高位清零,一般本程序用于把数据送显示缓冲区时用。

三、实验说明通过本实验,屏蔽半字节及拆字的方法,同时也可以了解单片机编程、调试方法。

四、主要仪器设备及耗材PC机、W A VE软件五、参考程序框图六、参考程序(略)开始7000内容送A高低位交换屏蔽高位后送7001H 7000H内容送A屏蔽高位后送7002H结束实验三拼字程序(基础实验)一、实验目的掌握汇编语言设计和调试方法。

二、实验内容把7000H的低四位BCD数和7001H的低四位BCD数,拼成压缩BCD码的形式存放在7002H。

三、实验说明通过本实验,掌握拼字的编程方法,同时也可以了解单片机编程、调试方法。

四、主要仪器设备及耗材PC机、W A VE软件五、参考程序框图开始7001H内容送A,A-〉30H,7000H内容送AA中低四位和30H低四位相拼,存AA-〉7002H结束六、参考程序(略)实验四数据块移动(基础实验)一、实验目的1.了解内存的移动方法。

2.加深对存储器读写的认识。

单片机实训教程实验报告

单片机实训教程实验报告

一、实验目的1. 熟悉单片机的基本结构和工作原理。

2. 掌握单片机的编程方法,包括C语言和汇编语言。

3. 学习单片机的接口技术和应用系统设计。

4. 培养动手能力和解决实际问题的能力。

二、实验环境1. 单片机开发系统:STC89C52单片机开发板2. 编译器:Keil uVision3. 调试器:Proteus4. 实验指导书:《单片机实训教程》三、实验内容1. 单片机基本原理实验(1)实验目的:了解单片机的结构、工作原理和引脚功能。

(2)实验步骤:1)搭建实验电路,连接单片机开发板与Proteus仿真软件;2)编写程序,设置单片机的工作模式;3)通过Proteus仿真软件观察单片机的运行状态。

(3)实验结果:通过仿真软件,观察到单片机能够按照程序的要求进行运行,实现了实验目的。

2. 单片机C语言编程实验(1)实验目的:掌握单片机的C语言编程方法。

(2)实验步骤:1)在Keil uVision中创建新项目,选择STC89C52单片机;2)编写C语言程序,实现LED灯闪烁功能;3)编译、烧录程序到单片机,观察LED灯闪烁效果。

(3)实验结果:程序编译成功,烧录到单片机后,LED灯按照预期进行闪烁,实现了实验目的。

3. 单片机汇编语言编程实验(1)实验目的:掌握单片机的汇编语言编程方法。

(2)实验步骤:1)在Keil uVision中创建新项目,选择STC89C52单片机;2)编写汇编语言程序,实现LED灯闪烁功能;3)编译、烧录程序到单片机,观察LED灯闪烁效果。

(3)实验结果:程序编译成功,烧录到单片机后,LED灯按照预期进行闪烁,实现了实验目的。

4. 单片机接口技术实验(1)实验目的:了解单片机的接口技术,掌握常用接口的编程方法。

(2)实验步骤:1)搭建实验电路,连接单片机开发板与外部设备;2)编写程序,实现单片机与外部设备的通信;3)通过Proteus仿真软件观察通信过程。

(3)实验结果:通过仿真软件,观察到单片机与外部设备能够成功通信,实现了实验目的。

单片机实验报告

单片机实验报告

单片机实验报告《单片机系统实验》实验报告院系:学号:姓名:2017年12月一、实验目的1.了解32位单片机(STM32系列)原理及其应用,熟悉单片机的资源,掌握单片机的最小系统设计及扩展技术,掌握单片机的编程语言。

2.通过本实验了解LCD液晶工作原理,能通过编程操作液晶的显示。

二、实验设备STM32实验系统一套,PC机一台。

三、实验原理(1)I/O口及定时器实验:STM32的GPIO口控制4个发光二极管,了解其硬件连接方式,学会使用STM32的一个定时器,掌握对定时器计时方式的编程。

编写程序循环点亮4个发光二极管,控制点亮时间为1秒钟闪烁。

(2)外部中断实验:掌握STM32单片机外部中断的用法,学会设置中断优先级,在实验(1)的基础上完成,如果有外部中断发生改变发光二极管的发光规律。

(如,仅其中2个灯亮,再次触发外部中断后,发光二极管重新变成4个灯循环点亮。

)(3)串行口通信实验:掌握STM32单片机与计算机之间的硬件连接方式,了解二者之间的传输协议,进行数据传输。

(4)LCD实验:掌握STM32单片机与液晶之间的硬件连接方式,单片机如何驱动液晶进行显示。

四、内容与步骤1.学会使用IAR或KEIL的编译链接调试环境,熟悉有关STM32使用到的库,并能顺利建立包含各种库文件的工程。

(2学时)2.I/O口实验:在建立工程的基础上能点亮发光二极管。

(2学时)3.定时器实验:循环定时(用定时器做)点亮4个灯,即每1秒闪烁点亮一个灯,循环往复(或叫跑马灯实验)。

(2学时)4.外部中断实验:按键作为触发外部中断的条件,中断发生时,改变发光二极管的点亮规律。

(2学时)5.串行口通信实验:编写串行口通信实验程序,能在计算机与STM32系统间进行ASCII码的传输。

(2学时)6.LCD实验:通过自行编写库文件和了解液晶显示字库,能在液晶上显示“北京航空航天大学机械工程及自动化学院”字样。

(6学时)五、关键代码1.I/O口及定时器实验/*通过定时器3中断函数实现跑马灯,现象为每个LED灯依次点亮1秒后熄灭*/void TIM3_IRQHandler(void){extern uint8_t LED_Status[5];if(TIM3->SR&0X0001)//溢出中断{if(LED_Status[1]==0){LED1_ON;LED2_OFF;LED3_OFF;LED4_OFF;LED_Status[1]=1;}else if(LED_Status[1]==1){LED1_OFF;LED2_ON;LED3_OFF;LED4_OFF;LED_Status[1]=2;}else if(LED_Status[1]==2){LED1_OFF;LED2_OFF;LED3_ON;LED4_OFF;LED_Status[1]=3;}else if(LED_Status[1]==3){LED1_OFF;LED2_OFF;LED3_OFF;LED4_ON;LED_Status[1]=0;}}TIM3->SR&=~(1<<0);//清除中断标志位}2.外部中断实验/*LED灯的发光规律有两种:一种是每个LED灯依次点亮1秒后熄灭,另一种是每次2个LED灯同时点亮,持续1秒后向前移动1个LED灯的位置。

单片机实验报告(学期全部实验)

单片机实验报告(学期全部实验)

单片机程序设计实验报告姓名:学号:专业班级:第二节课:实验一:1357,2468位置的灯交替闪烁一实验要求1357,2468位置的灯交替闪烁。

二硬件连接图与结果三原理简述程序直接控制LED各位置的灯亮灭,时间间隔简单的用了一个延时的语句。

四程序#include<reg51.h>main (){int i;P0=0XAA; //1357四个灯亮for (i=0;i<=25000;i++); //延时程序P0=0X55; //2468四个灯亮for (i=0;i<=25000;i++); //延时程序}五所遇问题与解决方式程序比较简单,没有遇到问题。

实验二:流水灯一实验要求流水灯,一个接一个的灯亮,亮到最后一个后,全部的灯亮,然后重头开始。

二硬件连接图与结果三原理简述程序定义第一个位置的灯亮,通过一个时间间隔,运用一个循环移位程序转移到下一个灯,移位7次后全部的灯亮,最后定义整个循环。

时间间隔简单的用了一个延时的语句。

因为移位时是直接补0,发送低电平不亮,所以直接移位达到要求。

四程序//流水灯#include<reg51.h>main (){int i,j;while(1){P0=0X01; //第1个灯亮for (i=0;i<=30000;i++); //延时程序for(j=0;j<=7;j++) //移位循环程序{P0=P0<<1; //移位for (i=0;i<=30000;i++); //延时程序}P0=0xff; //全亮for (i=0;i<=30000;i++); //延时程序}}五所遇问题与解决方式程序比较简单,没有遇到问题。

实验三:跑马灯一实验要求一个接一个的灯亮,前面亮过的等依旧亮,直到最后一个灯,最后重新开始,循环。

二硬件连接图与结果三原理简述程序定义第一个位置的灯亮,通过一个时间间隔,运用一个循环移位程序转移到下一个灯,移位7次后全部的灯亮,最后定义整个循环。

单片机课程设计实验报告

单片机课程设计实验报告

单片机课程设计实验报告一、课程目标知识目标:1. 让学生理解单片机的基本原理和功能,掌握其内部结构及工作流程。

2. 使学生掌握单片机编程的基本语法和编程技巧,能独立完成简单的程序编写。

3. 帮助学生了解单片机在现实生活中的应用,提高对新技术、新领域的认识。

技能目标:1. 培养学生运用单片机进行实验设计和实践操作的能力。

2. 培养学生分析问题、解决问题的能力,提高创新思维和动手实践能力。

3. 提高学生的团队协作和沟通能力,学会在实验过程中相互交流、共同进步。

情感态度价值观目标:1. 激发学生对单片机及电子技术的兴趣,培养主动学习的习惯。

2. 培养学生严谨、细致的实验态度,养成良好的实验操作习惯。

3. 增强学生的自信心和责任感,使他们认识到学习单片机对国家科技发展的意义。

课程性质分析:本课程为单片机课程设计实验,侧重于实践操作和实际应用。

课程要求学生具备一定的电子技术基础和编程能力,通过实验深入了解单片机的工作原理和应用领域。

学生特点分析:本课程面向高年级学生,他们在之前的学习中已掌握了基本的电子技术和编程知识,具备一定的自学能力和动手实践能力。

但学生在单片机应用方面的实践经验不足,需要通过本课程加强实践锻炼。

教学要求:1. 结合课本内容,注重理论与实践相结合,提高学生的实际操作能力。

2. 注重启发式教学,引导学生主动思考、探索,培养学生的创新精神和实践能力。

3. 关注学生的个体差异,给予个别辅导,确保每位学生都能达到课程目标。

二、教学内容1. 单片机基础知识:- 单片机原理与结构- 单片机内部资源及功能- 单片机编程语言(汇编语言、C语言)2. 单片机编程与实验:- 基本输入输出编程- 定时器、中断编程- 模数转换、串行通信编程3. 单片机应用案例:- 实例分析:温度控制器、智能小车等- 创新设计:学生自主选题,设计单片机应用项目4. 实验操作与调试:- 实验步骤与方法- 常用工具与仪器的使用- 故障分析与调试技巧教学大纲安排:第一周:单片机基础知识学习,包括原理、结构、编程语言等第二周:基本输入输出编程,实验一:LED灯控制第三周:定时器、中断编程,实验二:简易电子时钟第四周:模数转换、串行通信编程,实验三:温度传感器数据采集第五周:单片机应用案例分析,学生自主选题,设计单片机应用项目第六周:实验操作与调试,完成设计项目,撰写实验报告教材章节关联:教学内容与教材《单片机原理与应用》相关章节紧密关联,具体包括:- 第一章:单片机概述- 第二章:单片机的结构与原理- 第三章:单片机编程语言- 第四章:单片机内部资源及应用- 第五章:单片机实验与调试教学内容确保科学性和系统性,以培养学生的实际操作能力为目标,注重理论与实践相结合,提高学生的创新能力和实践技能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一I/O口输入输出实验一、实验目的掌握单片机P1口、P3口的使用方法。

二、实验内容以P1口为输出口,接八位逻辑电平显示,LED显示跑马灯效果。

以P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。

三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。

四、实验步骤1)系统各跳线器处在初始设置状态。

用导线连接八位逻辑电平输出模块的K0到CPU 模块的RXD(P3.0 口);用8位数据线连接八位逻辑电平显示模块的JD4B 到CPU 模块JD8(P1 口)。

2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。

编译无误后,下载程序运行。

3)观察发光二极管显示跑马灯效果,拨动K0 可改变跑马灯的方向。

五、实验参考程序;//******************************************************************;文件名: PortforMCU51;功能:I/O口输入、输出实验;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口);; 用8位数据线连接八位逻辑电平显示模块的JD2B到CPU模块的JD8(P1口)。

;//******************************************************************DIR BITP3.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,DELAYLOOP1RETEND六、实验结果当八位逻辑电平的K0拨到上方,即输出高电平时,实验箱B5区的八个LED灯从左至右循环点亮,当K0拨到下方,即输出低电平时,八个LED灯从右至左循环点亮。

七、结果分析程序通过查询方式不断检测P3.0口的输入状态,当P3.0输入为0时,由P1口通过左移指令RL轮流输出低电平驱动LED发光,在左移时通过软件延时控制LED亮的时间;当P3.0输入为1时,由P1口通过右移指令RR轮流输出低电平驱动LED发光,在右移时同样通过软件延时控制LED 亮的时间,如此循环扫描查询,便可实现流水灯的效果。

实验二外部中断实验一、实验目的学习外部中断技术的基本使用方法。

二、实验内容INT0 端接单次脉冲发生器。

按一次脉冲产生一次中断,CPU使P1.0 状态发生一次反转,P1.0接LED 灯,以查看信号反转。

三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。

四、实验步骤1)系统各跳线器处在初始设置状态,用导线连接单次脉冲模块的输出端到CPU 模块的P32;CPU 模块的P10接八位逻辑电平显示模块的灯。

2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。

编译无误后,下载程序运行。

3)连续按动单次脉冲产生电路的按键,发光二极管L0 每按一次状态取反,即隔一次点亮。

五、实验参考程序;//*************************************************;文件名:EXint forMCU51;功能:外部中断实验;接线:导线连接单次脉冲模块的输出端到CPU模块的P32,; CPU模块的P10接八位逻辑电平显示模块的L0灯。

;//*************************************************LED BIT P1.0LEDBUF BIT 20HORG 0LJMP STARTORG 3INTERRUPT0:PUSH PSW ; 保护现场CPL LEDBUF ; 取反LEDMOV C, LEDBUFMOV LED, CPOP PSW ;恢复现场RETISTART:CLR LEDBUFCLR LEDMOV TCON,#01H ; 外部中断0下降沿触发MOV IE, #81H ; 打开外部中断允许位(EX0)及总中断允许位(EA)OK: LJMP OKEND六、实验结果每按下E3区的单次脉冲触发按钮时,B5区的发光二极管状态取反一次,即原来是亮按下时灭,原来是灭则按下时亮。

七、结果分析程序由外部中断0实现,外部中断0由下降沿触发,外部输入由单次脉冲触发器输入,每次按下按钮时会触发单次脉冲,产生一个下降沿,从而使程序产生中断,在中断服务函数的程序里面对P1.0取反,由P1.0驱动LED,就可实现本实验的功能。

实验三定时/计数器实验一、实验目的学习MCS-51内部计数器的使用和编程方法。

二、实验内容使用MCS-51 内部定时/计数器,定时一秒钟,CPU运用定时中断方式,实现每一秒钟输出状态发生一次反转,即发光管每隔一秒钟亮一次。

三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。

四、实验步骤1)系统各跳线器处在初始设置状态,用导线连接CPU模块P10到八位逻辑电平显示模块的L0。

2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。

编译无误后,下载程序运行。

3)运行程序观察发光二极管隔一秒点亮一次,点亮时间为一秒。

五、实验参考程序;//*************************************************;文件名: TIMERFOR MCU51;功能:定时/计数器实验;接线: 导线连接CPU模块P10到八位逻辑电平显示模块的L0.;//*************************************************TICKEQU 10000 ; 10000 X 100US = 1ST100US EQU 156; 100US时间常数(6M)C100US EQU 30H ; 100US记数单元LEDBUF BIT 20HORG 0LJMP STARTORG 000BHT0INT:PUSH PSWMOV A, C100US+1JNZGOONDECC100USGOON:DEC C100US+1MOV A, C100USORL A, C100US+1JNZ EXIT ; 100US 记数器不为0, 返回MOV C100US, #27H ; #HIGH(TICK)MOV C100US+1, #10H;#LOW(TICK)CPL LEDBUF ; 100US记数器为0, 重置记数器;取反LEDEXIT:POP PSWRETISTART:MOVTMOD, #02H ; 方式2,定时器MOV TH0, #T100USMOVTL0, #T100USMOV IE, #10000010B ; EA=1, IT0 = 1SETB TR0 ;开始定时CLR LEDBUFCLR P1.0MOVC100US, #27H ;#HIGH(TICK) MOVC100US+1, #10H ;#LOW(TICK)LOOP:MOV C, LEDBUFMOV P1.0, CLJMP LOOPEND六、实验结果运行程序之后,B5区的发光二极管L0隔一秒点亮一次,每次点亮时间为一秒。

七、结果分析本实验通过定时器0的方式2实现精确定时,但定时器的最长定时时间达不到一秒,所以通过一个时间变量实现,总的定时时间等于定时器定时时间乘以时间变量初值,这样就可实现一秒的定时,程序通过扫描不断检测时间变量的值,当定时时间一秒到时,对P1.0的状态取反,实现L0每隔一秒亮一次。

实验四交通灯控制实验一、实验目的掌握十字路口交通灯控制方法。

二、实验内容利用系统提供的双色LED显示电路,和四位静态数码管显示电路模拟十字路口交通信号灯。

4位LED数码管显示时间,LED显示红绿灯状态。

三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。

四、实验步骤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。

;//*******************************************************************SECOND1EQU 30H ;东西秒寄存器SECOND2 EQU 31H ;南北秒寄存器DBUF EQU40H ;显示缓冲1TEMP EQU44H ;显示缓冲2LED_G1 BIT P1.0 ;东西绿灯LED_R1 BIT P1.1 ;东西红灯LED_G2 BIT P1.2 ;南北绿灯LED_R2 BIT P1.3 ;南北红灯DIN BITP1.6;串行显示数据CLK BIT P1.7 ;串行显示时钟ORG 0000HLJMP STARTORG 0100HSTART:LCALL STATE0 ;调用状态0LCALLDELAY ;调用延时MOV TMOD,#01H;置T0工作方式1MOV TH0, #3CH ;置T0定时初值50MSMOVTL0,#0B0HSETB TR0 ;启动T0CLR EALOOP:MOVR2,#20 ;置1S计数初值50MS*20=1S MOV R3,#20 ;红灯20SMOV SECOND1,#25 ;东西秒显示初值25SMOV SECOND2,#25 ;南北秒显示初值25SLCALL DISPLAYLCALL STATE1 ;调用状态1WAIT1: JNB TF0,WAIT1 ;查询50MS到否CLR TF0MOV TH0, #3CH ;恢复T0定时初值50MSMOV TL0, #0B0HSETBTR0 ;启动T0DJNZ R2,WAIT1;判1S到否?未到继续状态1MOV R2,#20 ;置50MS计数初值DEC SECOND1 ;东西秒显示减一DEC SECOND2 ;南北秒显示减一LCALL DISPLAYDJNZ R3,WAIT1;状态1维持20SMOV R2,#5 ;置50MS计数初值5*4=20MOV R3,#3 ;绿灯闪3SMOV R4,#4 ;闪烁间隔200MSMOV SECOND1,#5 ;东西秒显示初值5SMOV SECOND2,#5 ;南北秒显示初值5SLCALL DISPLAYWAIT2: LCALLSTATE2 ;调用状态2JNBTF0,WAIT2 ;查询50MS到否CLR TF0MOV TH0, #3CH ;恢复T0定时初值50MSMOV TL0,#0B0HDJNZ R4,WAIT2 ;判200MS到否?未到继续状态2CPL LED_G1 ;东西绿灯闪MOV R4,#4 ;闪烁间隔200MSDJNZ R2,WAIT2;判1S到否?未到继续状态2MOV R2,#5 ;置50MS计数初值DEC SECOND1 ;东西秒显示减一DEC SECOND2 ;南北秒显示减一LCALLDISPLAYDJNZ R3,WAIT2 ;状态2维持3SMOV R2,#20 ;置50MS计数初值MOV R3,#2 ;黄灯2SMOV SECOND1,#2 ;东西秒显示初值2S MOV SECOND2,#2 ;南北秒显示初值2SLCALL DISPLAYWAIT3: LCALL STATE3 ;调用状态3JNB TF0,WAIT3 ;查询30MS到否CLR TF0MOVTH0, #3CH ;恢复T0定时初值50MSMOV TL0, #0B0HDJNZ R2,WAIT3 ;判1S到否?未到继续状态3 MOV R2,#20 ;置50MS计数初值DEC SECOND1 ;东西秒显示减一DEC SECOND2 ;南北秒显示减一LCALLDISPLAYDJNZ R3,WAIT3 ;状态3维持2SMOVR2,#20 ;置50MS计数初值MOV R3,#20 ;红灯20SMOV SECOND1,#25 ;东西秒显示初值25SMOV SECOND2,#25 ;南北秒显示初值25SLCALL DISPLAYWAIT4: LCALL STATE4 ;调用状态4JNB TF0,WAIT4 ;查询50MS到否CLRTF0MOV TH0, #3CH ;恢复T0定时初值50MSMOV TL0, #0B0HDJNZR2,WAIT4 ;判1S到否?未到继续状态4MOV R2,#20 ;置50MS计数初值DEC SECOND1;东西秒显示减一DEC SECOND2 ;南北秒显示减一LCALL DISPLAYDJNZ R3,WAIT4 ;状态4维持20SMOV R2,#5 ;置50MS计数初值 5*4=20 MOV R4,#4;闪烁间隔200MSMOVR3,#3 ;绿灯闪3SMOV SECOND1,#5 ;东西秒显示初值5SMOV SECOND2,#5 ;南北秒显示初值5SLCALL DISPLAYWAIT5: LCALLSTATE5 ;调用状态5JNBTF0,WAIT5 ;查询50MS到否CLR TF0MOV TH0, #3CH ;恢复T0定时初值100MSMOV TL0, #0B0HDJNZ R4,WAIT5 ;判200MS到否?未到继续状态5 CPL LED_G2 ;南北绿灯闪MOV R4,#4 ;闪烁200MSDJNZ R2,WAIT5;判1S到否?未到继续状态5MOV R2,#5 ;置100MS计数初值DEC SECOND1 ;东西秒显示减一DEC SECOND2 ;南北秒显示减一 LCALL DISPLAYDJNZ R3,WAIT5 ;状态5维持3SMOV R2,#20 ;置50MS计数初值MOV R3,#2 ;黄灯2SMOV SECOND1,#2;东西秒显示初值2S MOV SECOND2,#2 ;南北秒显示初值2SLCALL DISPLAYWAIT6: LCALL STATE6 ;调用状态6JNB TF0,WAIT6 ;查询100MS到否CLR TF0MOV TH0, #3CH ;恢复T0定时初值100MSMOV TL0, #0B0HDJNZ R2,WAIT6 ;判1S到否?未到继续状态6MOV R2,#20 ;置100MS计数初值DEC SECOND1 ;东西秒显示减一DECSECOND2 ;南北秒显示减一LCALL DISPLAYDJNZR3,WAIT6 ;状态6维持2SLJMPLOOP ;大循环STATE0:;状态0MOV P1,#0CLR LED_G1SETB LED_R1 ;东西红灯亮CLR LED_G2SETBLED_R2 ;南北红灯亮RETSTATE1: ;状态1SETB LED_G1 ;东西绿灯亮CLR LED_R1CLR LED_G2SETB LED_R2 ;南北红灯亮RETSTATE2: ;状态2CLRLED_R1CLR LED_G2SETB LED_R2 ;南北红灯亮RETSTATE3: ;状态3SETB LED_G1SETB LED_R1 ;东西黄灯亮CLR LED_G2SETBLED_R2 ;南北红灯亮RETSTATE4: ;状态4CLR LED_G1SETB LED_R1 ;东西红灯亮SETB LED_G2 ;南北绿灯亮CLR LED_R2RETSTATE5: ;状态5CLR LED_G1SETB LED_R1 ;东西红灯亮CLR LED_R2RETSTATE6: ;状态6CLR LED_G1SETB LED_R1;东西红灯亮SETB LED_G2SETB LED_R2 ;南北黄灯亮RETDISPLAY: ;数码显示MOVA, SECOND1;东西秒寄存器MOV B,#10 ;16进制数拆成两个10进制数 DIV ABMOV DBUF+1,AMOV A,BMOV DBUF, AMOVA, SECOND2;南北秒寄存器MOV B, #10 ;16进制数拆成两个10进制数DIV ABMOV DBUF+3,AMOVA,BMOV DBUF+2, AMOV R0,#DBUFMOVﻩR1,#TEMPﻩMOVﻩ R7,#4DP10:MOV DPTR,#LEDMAPﻩMOVﻩA,@R0MOVC A,@A+DPTRﻩMOVﻩ @R1,AﻩINC R0ﻩINCﻩ R1ﻩDJNZ R7,DP10ﻩMOV R0,#TEMPMOV R1,#4DP12:ﻩMOV R7,#8MOVﻩA,@R0DP13:RLCﻩAMOVDIN,CﻩCLRﻩ CLKSETB CLKﻩDJNZR7,DP13INC R0DJNZ R1,DP12RETLEDMAP: DB 3FH,6,5BH,4FH,66H,6DH ;0,1,2,3,4,5DB 7DH,7,7FH,6FH,77H,7CH ;6,7,8,9,A,BDB 58H,5EH,7BH,71H,0,40H ;C,D,E,F, , -DELAY: MOV R5, #5DLOOP0:MOV R6, #0DLOOP1:MOV R7, #0DLOOP2:NOPNOPDJNZ R7, DLOOP2DJNZ R6, DLOOP1DJNZ R5, DLOOP0RETEND六、实验结果程序开始运行后,B5区模拟的东西红灯亮,南北绿灯亮,同时两个方向的数码管分别从25秒开始倒计时,当倒计时到5秒时,南北绿灯闪亮3秒后变黄,再过2秒,即倒计时到0时,变为东西绿灯亮,南北红灯亮,同时两个方向的数码管分别同时从25秒开始倒计时,但倒计时到5秒时,东西绿灯闪亮3秒后变黄,再过2秒之后又回到初始状态,继续循环运行。

相关文档
最新文档