当前位置:文档之家› 以AT89S52单片机为核心,设计出功能较强的新型单片机实验系统毕业设计

以AT89S52单片机为核心,设计出功能较强的新型单片机实验系统毕业设计

以AT89S52单片机为核心,设计出功能较强的新型单片机实验系统毕业设计
以AT89S52单片机为核心,设计出功能较强的新型单片机实验系统毕业设计

摘要

目前单片机应用已渗透到各个领域,单片机技术的发展也因此日新月异。传统的单片机实验系统,需要频繁拔插烧写单片机芯片来编程,依赖于仿真机调试,实验成本高且效率低.,已不适应现代科技开发需求。本文从微处理器、嵌入式系统和C语言等三个方面着手,以AT89S52单片机为核心,设计出功能较强的新型单片机实验系统。

以AT89S52为核心,设计出12种实验的原理图。采用电子CAD(PROTEL99SE软件)、Proteus等软件。利用C语言调整软件dev C++IDE、编译器Keil C(uVision-51)软件等技术创新,实现了Proteus仿真调试功能,将嵌入式技术融入到单片机实验系统开发与应用中,极大地提高了程序开发的效率,达到优化单片机实验系统功能的目的。

关键词:微处理器嵌入式系统 AT89S52单片机实验系统调试与仿真 Proteus

Abstract

At present the monolithic integrated circuit ( Microcontroller Unit,MCU) applications have penetrated into all fields. The traditional monolithic integrated circuit experiment system, needs frequently to pull out inserts the fever to write the monolithic integrated circuit chip to program, relies on to the simulation machine debugging, The experimental cost high also the efficiency is low, already unsuitable modern science and technology development demand. This article from the microprocessor, Embedded Systems and the C language and so on three aspects begins, to draw up take the AT89S52 monolithic. integrated circuit as a core, designs the function stronger new monolithic integrated circuit experiment system.

Took AT89S52 as the core, Designed 12 experiments. After uses electronic CAD (PROTEL99SE software), Proteus https://www.doczj.com/doc/6217561189.html,ing C language adjustment software dev C++IDE, compiler K.eil C (uVision-51) and, technical innovation and so on Proteus software, has realized the Proteus on-line simulation debugging function, Inserts the embedded technology to melt into to in the monolithic integrated circuit experiment system development and the application.

Key words:Microprocessor; Embedded Systems;AT89S52 MCU; Experimental system;Debugging and simulation;Proteus

目录

摘要............................................................................................................................... I Abstract.......................................................................................................................... II 第一章概述 (1)

第二章 Proteus 介绍 (3)

2.1 Proteus的工作过程【2】 (3)

2.2 用Proteus软件虚拟单片机实验的优点 (4)

2.3 本章小结 (4)

第三章单片机介绍 (6)

3.1 功能特征描述 (6)

3.2 引脚功能【4】 (6)

3.3 存储器结构 (9)

3.3.1 程序存储器 (9)

3.3.2 数据存储器 (9)

3.4 看门狗定时器 (9)

3.4.1 WDT的使用 (10)

3.4.2 掉电和空闲方式下的WDT (10)

3.5 UART (10)

3.6 定时器0 和定时器1 (10)

3.7 定时器2 (11)

3.7.1 捕捉方式 (11)

3.7.2 自动重载【6】 (11)

3.8 波特率发生器 (12)

3.9 可编程时钟输出 (13)

3.10 中断 (13)

3.11 晶振特性 (13)

3.12 空闲模式 (14)

3.13 掉电模式 (14)

3.14 本章小结 (14)

第四章基于Proteus的单片机系统设计与仿真 (15)

4.1 虚拟实验室的构建 (15)

4.2 虚拟实验实例 (15)

实验一彩灯控制器 (15)

实验二定时器/计数器应用实验【10】 (17)

实验三按键实验 (19)

实验四利用中断,动态数码管显示 (21)

实验五利用中断,音乐演奏 (23)

实验六 1602液晶显示的DS1302实时时钟 (25)

实验七 DS1621温度传感器实验 (27)

实验八按键控制步进电机正反转实验 (29)

实验九 ADC0809模数转换与显示 (32)

实验十 D/A转换实验 (35)

实验十一 ADC0808 PWM实验 (39)

实验十二可编程并行接口芯片8255的应用试验 (41)

4.3 本章小结 (43)

第五章结论 (45)

参考文献 (46)

附录(程序) (47)

致谢 (67)

第一章概述

随着半导体技术的飞速发展,以及移动通信、网络技术、多媒体技术在嵌入式系统设计中的应用,单片机从4位、8位、16位到32位,其发展历程一直受到广大电子爱好者的极大关注。单片机功能越来越强大,价格却不断下降的优势无疑成为嵌入式系统方案设计的首选,同时单片机应用领域的扩大也使得更多人加入到基于单片机系统的开发行列中,推动着单片机技术的创新进步。

然而传统的单片机系统开发除了需要购置诸如仿真器、编程器、示波器等价格不菲的电子设备外,开发过程也较繁琐。如图1-1所示,用户程序需要在硬件完成的情况下才能进行联调,如果在调试过程中发现需修改硬件,则要重新制板。因此无论从硬件成本还是开发周期来看,其高风险、低效率的特性显露无遗。来自英国Labcenter Electronics公司的Proteus软件很好地诠释了利用现代EDA工具方便快捷开发单片机系统的优势。它包括PROTEUS VSM(Virtual System Modelling)、PROTEUS PCB DESIGN两大组成部分,在PC机上就能实现原理图电路设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证以及形成PCB文件的完整嵌入式系统设计与研发过程。本文讲述PROTEUS VSM 单片机系统的PROTEUS设计与仿真功能,图1-2为基于PROTEUS仿真软件的单片机系统设计流程,它极大地简化了设计工作,得到众多设计师的青睐[1]。

第二章 Proteus 介绍

Proteus 与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。

2.1 Proteus的工作过程[2]

(1)运行 Proteus的ISIS程序后,进入该仿真软件的主界面。在工作前,要设置view菜单下的捕捉对齐和system下的颜色、图形界面大小等项目。通过工具栏中的p从库中选择元件命令,在pick devices窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线,编写程序;在source菜单的Define code generation tools菜单命令下,选择程序编译的工具、路径、扩展名等项目;在source菜单的Add/remove source files命令下,加入单片机硬件电路的对应程序;通过debug菜单的相应命令仿真程序和电路的运行情况。(2)Proteus软件所提供的元件资源 Proteus 软件所提供了30多个元件库,数千种元件。元件涉及到数字和模拟、交流和直流等。(3)Proteus软件所提供的仪表资源对于一个仿真软件或实验室,测试的仪器仪表的数量、类型和质量,是衡量实验室是否合格的一个关键因素。在Proteus软件包中,不存在同类仪表使用数量的问题,其提供的仪表。除了测试仪表外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似但功能更多。(4)Proteus软件所提供的调试手段 Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。对于单片机硬件电路和软件的调试,Proteus 提供了两种方法:一种是系统总体执行效果,一种是对软件的分步调试以看具体的执行情况。对于总体执行效果的调试方法,只需要执行debug菜单下的execute菜单项或F12快捷键启动执行,用debug菜单下的pause animation菜单项或pause 键暂停系统的运行;或用debug菜单下的stop animation 菜单项或shift-break组合键停止系统的运行。其运行方式也可以选择工具栏中的相应工具进行。对于软件的分步调试,应先执行 debug菜单下的start/restart debugging 菜单项命令,此时可以选择step over 、step into 和 step out命令执行程序可以用快捷键F10、F11和ctrlF11,执行的效果是单句执行、进入子程序执行和跳出子程序执行。在执行了start / restart debuging命令后,在debug菜单的下面要出现仿真中所涉及到的软件列表和单片机的系统

资源等,可供调试时分析和查看[3]。

2.2 用Proteus软件虚拟单片机实验的优点

采用Proteus 仿真软件进行虚拟单片机实验,具有比较明显的优势,如涉及到的实验实习内容全面、硬件投入少、学生可自行实验、实验过程中损耗小、与工程实践最为接近等。当然其存在的缺点也是有的。(1)内容全面内容全面包括其能实验的内容包括软件部分的汇编、C51等语言的调试过程,也包括硬件接口电路中的大部分类型。对同一类功能的接口电路,可以采用不同的硬件来搭建完成。(2)硬件投入少,经济优势明显对于传统的采用单片机实验教学板的实验,由于硬件电路的固定,也就将单片机的CPU和具体的接口电路固定了下来。在单片机的实际学习中,如果要涉及到51系列,也要涉及到PIC16系列,那么为了学习必然要投入两种单片机的实验教学板;同时在教学过程中所涉及到的接口电路,也需要有较大的投入和储备,以利于实验的进行和在实验过程中元件损毁后的更换。Proteus所提供的元件库中,大部分可以直接用于接口电路的搭建,同时该软件所提供的仪表,不管在质量还是数量上,都是可靠和经济的。如果在实验教学中投入这样的真实的仪器仪表,仅仪表的维护来讲,其工作量也是比较大的。因此采用软件的方式进行学习,其经济优势是比较明显的。(3)学生可自行实验,锻炼解决实际工程问题的能力实验能力和实验能力的培养,是工科学生解决实际工程问题能力中较为重要的。传统的实验教学中,忽视了学生实验设计能力的培养,对于实验设计能力的培养,则很少涉及到。因此学生学习了理论,要想将其应用到实际的工程实践中,其难度是比较大的。还有,学生毕业后想对单片机控制技术或智能仪表等有较深的研究和学习,如果采用传统的实验学习方法,则学生需要购置的设备比较多,增加了他们学习和研究的投入。采用仿真软件后,学习的投入变得比较的小,而实际工程问题的研究,也可以先在软件环境中模拟通过,再进行硬件的投入,这样处理,不仅省时省力,也可以节省因方案不正确所造成的硬件投入的浪费。

2.3 本章小结

传统的实验教学方法,是学生通过做验证实验加深对原理的理解,实验的内容、步骤、电路、仪器等都是事先安排好的,有时,整个电路都是连接好的,学生只须按部就班,机械的完成实验,每次实验后,学生的实验报告基本上都是大同小异,没有创新点,效果一般。通过Proteus在实验教学中的应用,设备要求简单,只有一台装有Proteus的计算机就可以了,原来受实验条件限制无法开设的实验也可进行仿真实验了,这样使得学生有更多的锻炼与学习的机会,加强了实验能力提高。在虚拟实验室中学生可提出各种方案进行仿真,不受硬件条件的限制,并能很快获得仿真结果,做到及时发现问题,解决问题,从而可以提高学生分析问题,解决问题的能力,激发他们的求知欲和创新精神。综合上述,

Proteus应用到实验教学,能取得巨大的成效。

第三章单片机介绍

主要性能

?与MCS-51单片机产品兼容

? 8K字节在系统可编程Flash存储器

? 1000次擦写周期

?全静态操作:0Hz~33Hz

?三级加密程序存储器

? 32个可编程I/O口线

?三个16位定时器/计数器

?八个中断源

?全双工UART串行通道

?低功耗空闲和掉电模式

?掉电后中断可唤醒

?看门狗定时器

?双数据指针

?掉电标识符

3.1 功能特征描述

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

3.2 引脚功能[4]

VCC:电源

GND: 接地

P0口: P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL 逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。

P1口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。

表1

P2口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电(I IL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3口:P3 口是一个有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(I IL)。P3口亦作为

AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。

表2

RST:复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。

ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR 的第0位置“1”,ALE操作将无效。这一位置“1”,ALE 仅在执行MOVX 或MOVC 指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。

PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。

EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。

XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。

XTAL2:振荡器反相放大器的输出端。

3.3 存储器结构

MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以64K寻址。

3.3.1 程序存储器

如果EA引脚接地,程序读取只从外部存储器开始。对于89S52,如果EA接VCC,程序读写先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:2000H~FFFFH。

3.3.2 数据存储器

AT89S52 有256 字节片内数据存储器。高128 字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。当一条指令访问高于7FH 的地址时,寻址方式决定CPU 访问高128 字节RAM 还是特殊功能寄存器空间。直接寻址方式访问特殊功能寄存器(SFR)。例如,下面的直接寻址指令访问0A0H(P2口)存储单元

MOV 0A0H , #data

使用间接寻址方式访问高128 字节RAM。例如,下面的间接寻址方式中,R0 内容为0A0H,访问的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。

MOV @R0 , #data

堆栈操作也是简介寻址方式。因此,高128字节数据RAM也可用于堆栈空间。

3.4 看门狗定时器

WDT是一种需要软件控制的复位方式。WDT 由13位计数器和特殊功能寄存器中的看门狗定时器复位存储器(WDTRST)构成。WDT 在默认情况下无法工作;为了激活WDT,户用必须往WDTRST 寄存器(地址:0A6H)中依次写入01EH 和0E1H。当WDT激活后,晶振工作,WDT在每个机器周期都会增加。WDT计时周期依赖于外部时钟频率。除了复位(硬件复位或WDT溢出复位),没有办法停止WDT工作。当WDT溢出,它将驱动RSR

引脚一个高个电平输出。

3.4.1 WDT的使用

为了激活WDT,用户必须向WDTRST寄存器(地址为0A6H的SFR)依次写入0E1H和0E1H。当WDT激活后,用户必须向WDTRST写入01EH和0E1H喂狗来避免WDT溢出。当计数达到

8191(1FFFH)时,13 位计数器将会溢出,这将会复位器件。晶振正常工作、WDT激活后,每一个机器周期WDT 都会增加。为了复位WDT,用户必须向WDTRST 写入01EH 和0E1H (WDTRST 是只读寄存器)。WDT 计数器不能读或写。当WDT 计数器溢出时,将给RST 引脚产生一个复位脉冲输出,这个复位脉冲持续96个晶振周期(TOSC),其中TOSC=1/FOSC。为了很好地使用WDT,应该在一定时间内周期性写入那部分代码,以避免WDT复位。

3.4.2 掉电和空闲方式下的WDT

在掉电模式下,晶振停止工作,这意味这WDT也停止了工作。在这种方式下,用户不必喂狗。有两种方式可以离开掉电模式:硬件复位或通过一个激活的外部中断。通过硬件复位退出掉电模式后,用户就应该给WDT 喂狗,就如同通常AT89S52 复位一样。通过中断退出掉电模式的情形有很大的不同。中断应持续拉低很长一段时间,使得晶振稳定。当中断拉高后,执行中断服务程序。为了防止WDT在中断保持低电平的时候复位器件,WDT 直到中断拉低后才开始工作。这就意味着WDT 应该在中断服务程序中复位。为了确保在离开掉电模式最初的几个状态WDT不被溢出,最好在进入掉电模式前就复WDT。在进入待机模式前,特殊寄存器AUXR的WDIDLE位用来决定WDT是否继续计数。默认状态下,在待机模式下,WDIDLE=0,WDT继续计数。为了防止WDT在待机模式下复位AT89S52,用户应该建立一个定时器,定时离开待机模式,喂狗,再重新进入待机模式【5】。

3.5 UART

在AT89S52 中,UART 的操作与AT89C51 和AT89C52 一样。为了获得更深入的关于UART 的信息,可参考ATMEL 网站(http//https://www.doczj.com/doc/6217561189.html,)。从这个主页,选择“Products”,然后选择“8051-Architech Flash Microcontroller”,再选择“ProductOverview”即可。

3.6 定时器0 和定时器1

在AT89S52 中,定时器0 和定时器1 的操作与AT89C51 和AT89C52 一样。为了获得更深入的关于UART 的信息,可参考ATMEL 网站(https://www.doczj.com/doc/6217561189.html,)。从这个主页,选择“Products”,然后选择“8051-Architech Flash Microcontroller”,再选择“Product Overview”即可。

3.7 定时器2

定时器2是一个16位定时/计数器,它既可以做定时器,又可以做事件计数器。其工作方式由特殊寄存器T2CON中的C/T2位选择(如表2所示)。定时器2有三种工作模式:捕捉方式、自动重载(向下或向上计数)和波特率发生器。如表3 所示,工作模式由T2CON中的相关位选择。定时器2 有2 个8位寄存器:TH2和TL2。在定时工作方式中,每个机器周期,TL2 寄存器都会加1。由于一个机器周期由12 个晶振周期构成,因此,计数频率就是晶振频率的1/12。

表3 定时器2工作模式

在计数工作方式下,寄存器在相关外部输入角T2 发生1 至0 的下降沿时增加1。在这种方式下,每个机器周期的S5P2期间采样外部输入。一个机器周期采样到高电平,而下一个周期采样到低电平,计数器将加1。在检测到跳变的这个周期的S3P1 期间,新的计数值出现在寄存器中。因为识别1-0的跳变需要2个机器周期(24个晶振周期),所以,最大的计数频率不高于晶振频率的1/24。为了确保给定的电平在改变前采样到一次,电平应该至少在一个完整的机器周期内保持不变。

3.7.1 捕捉方式

在捕捉模式下,通过T2CON中的EXEN2来选择两种方式。如果EXEN2=0,定时器2时一个16位定时/计数器,溢出时,对T2CON 的TF2标志置位,TF2引起中断。如果EXEN2=1,定时器2做相同的操作。除上述功能外,外部输入T2EX引脚(P1.1)1至0的下跳变也会使得TH2和TL2中的值分别捕捉到RCAP2H和RCAP2L中。除此之外,T2EX 的跳变会引起T2CON 中的EXF2 置位。像TF2 一样,T2EX 也会引起中断。

3.7.2 自动重载【6】

当定时器2 工作于16 位自动重载模式,可对其编程实现向上计数或向下计数。这一功能可以通过特殊寄存器T2MOD(见表4)中的DCEN(向下计数允许位)来实现。通过复位,DCEN 被置为0,因此,定时器2 默认为向上计数。DCEN 设置后,定时器2就可以取决于T2EX向上、向下计数。DCEN=0 时,定时器2 自动计数。通过T2CON 中的EXEN2 位可以选择两种方式。如果EXEN2=0,定时器2计数,计到0FFFFH后置位TF2溢出标志。

计数溢出也使得定时器寄存器重新从RCAP2H 和RCAP2L 中加载16 位值。定时器工作于捕捉模式,RCAP2H 和RCAP2L 的值可以由软件预设。如果EXEN2=1,计数溢出或在外部T2EX (P1.1)引脚上的1到0的下跳变都会触发16位重载。这个跳变也置位EXF2中断标志位。置位DCEN ,允许定时器2向上或向下计数。在这种模式下,T2EX 引脚控制着计数的方向。T2EX 上的一个逻辑1使得定时器2向上计数。定时器计到0FFFFH 溢出,并置位TF2。定时器的溢出也使得RCAP2H 和RCAP2L 中的16位值分别加载到定时器存储器TH2和TL2中。T2EX 上的一个逻辑0 使得定时器2 向下计数。当TH2 和TL2 分别等于RCAP2H 和RCAP2L 中的值的时候,计数器下溢。计数器下溢,置位TF2,并将0FFFFH 加载到定时器存储器中。定时器2上溢或下溢,外部中断标志位EXF2 被锁死。在这种工作模式下,EXF2不能触发中断。

3.8 波特率发生器

通过设置T2CON 中的TCLK 或RCLK 可选择定时器2 作为波特率发生器。如果定时器2作为发送或接收波特率发生器,定时器1可用作它用,发送和接收的波特率可以不同。如图8 所示,设置RCLK 和(或)TCLK 可以使定时器2 工作于波特率产生模式。波特率产生工作模式与自动重载模式相似,因此,TH2 的翻转使得定时器2 寄存器重载被软件预置16位值的RCAP2H 和RCAP2L 中的值。模式1和模式3的波特率由定时器2溢出速率决定,具体如下公式:

213=

16

定时器溢出率

模式和模式波特率

定时器可设置成定时器,也可为计数器。在多数应用情况下,一般配置成定时方式(CP/T2=0)。定时器2 用于定时器操作与波特率发生器有所不同,它在每一机器周(1/12晶振周期)都会增加;然而,作为波特率发生器,它在每一机器状态(1/2晶振周期)都会增加。波特率计算公式如下:

13=

32[65536]

?-晶振频率

模式和模式波特率(RCAP2H,RCAP2L )

其中,(RCAP2H,RCAP2L )是RCAP2H 和RCAP2L 组成的16位无符号整数。特别强调,TH2的翻转并不置位TF2,也不产生中断; EXEN2置位后,T2EX 引脚上1~0的下跳变不会使(RCAP2H ,RCAP2L )重载到(TH2,TL2)中。因此,定时器2作为波特率发生器,T2EX 也还可以作为一个额外的外部中断。定时器2处于波特率产生模式,TR2=1,定时器2正常工作。TH2或TL2

不应该读写。在这种模式下,定时器在每一状态都会增加,读或写就不会准确。寄存器RCAP2可以读,但不能写,因为写可能和重载交迭,造成写和重载错误。在读写定时器2 或RCAP2寄存器时,应该关闭定时器(TR2清0)【7】。

3.9 可编程时钟输出

可以通过编程在P1.0 引脚输出一个占空比为50%的时钟信号。这个引脚除了常规的I/O 角外,还有两种可选择功能。它可以通过编程作为定时器/计数器2 的外部时钟输入或占空比为50%的时钟输出。当工作频率为16MHZ 时,时钟输出频率范围为61HZ 到4HZ 。为了把定时器2配置成时钟发生器,位C/T2(T2CON.1)必须清0,位T2OE (T2MOD.1)必须置1。位TR2(T2CON.2)启动、停止定时器。时钟输出频率取决于晶振频率和定时器2捕捉寄存器(RCAP2H ,RCAP2L )的重载值,如公式所示:

在时钟输出模式下,定时器2不会产生中断,这和定时器2用作波特率发生器一样。定时器2也可以同时用作波特率发生器和时钟产生。不过,波特率和输出时钟频率相互并不独立,它们都依赖于RCAP2H 和RCAP2L 。

3.10 中断

AT89S52 有6个中断源:两个外部中断(INT0 和INT1),三个定时中断(定时器0、1、2)和一个串行中断。每个中断源都可以通过置位或清除特殊寄存器IE 中的相关中断允许控制位分别使得中断源有效或无效。IE 还包括一个中断允许总控制位EA ,它能一次禁止所有中断。IE.6位是不可用的。对于AT89S52,IE.5位也是不能用的。用户软件不应给这些位写1。它们为AT89系列新产品预留。定时器2可以被寄存器T2CON 中的TF2和EXF2的或逻辑触发。程序进入中断服务后,这些标志位都可以由硬件清0。实际上,中断服务程序必须判定是否是TF2 或EXF2激活中断,标志位也必须由软件清0。定时器0和定时器1标志位TF0 和TF1在计数溢出的那个周期的S5P2被置位。它们的值一直到下一个周期被电路捕捉下来。然而,定时器2 的标志位TF2 在计数溢出的那个周期的S2P2被置位,在同一个周期被电路捕捉下来【8】。

3.11 晶振特性

AT89S52 单片机有一个用于构成内部振荡器的反相放大器,XTAL1 和XTAL2 分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。从外

4[65536]

=

?-晶振频率

时钟输出频率(RCAP2H,RCAP2L )

部时钟源驱动器件的话,XTAL2 可以不接,而从XTAL1 接入。由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要符合要求的。

3.12 空闲模式

在空闲工作模式下,CPU 处于睡眠状态,而所有片上外部设备保持激活状态。这种状态可以通过软件产生。在这种状态下,片上RAM和特殊功能寄存器的内容保持不变。空闲模式可以被任一个中断或硬件复位终止。由硬件复位终止空闲模式只需两个机器周期有效复位信号,在这种情况下,片上硬件禁止访问内部RAM,而可以访问端口引脚。空闲模式被硬件复位终止后,为了防止预想不到的写端口,激活空闲模式的那一条指令的下一条指令不应该是写端口或外部存储器。

3.13 掉电模式

在掉电模式下,晶振停止工作,激活掉电模式的指令是最后一条执行指令。片上RAM 和特殊功能寄存器保持原值,直到掉电模式终止。掉电模式可以通过硬件复位和外部中断退出。复位重新定义了SFR 的值,但不改变片上RAM 的值。在V CC未恢复到正常工作电压时,硬件复位不能无效,并且应保持足够长的时间以使晶振重新工作和初始化【9】。

3.14 本章小结

本章研究了嵌入式系统及其发展趋势。深入研究了AT89S52单片机的性能特点,为虚拟实验的开发打下了基础。

第四章基于Proteus的单片机系统设计与仿真

4.1 虚拟实验室的构建

Proteus支持51、PIC、AVR、RAM7等多个系列的单片机芯片,集编辑、编译、仿真调试于一体。它的界面简洁友好,可利用该软件提供的数千种数字/模拟仿真元器件以及丰富的仿真设备,使得在程序调试、系统仿真时不仅能观察到程序执行过程中单片机寄存器和存储器等内容变化,还可从工程的角度直观地看到外围电路工作情况,非常接近工程应用。另外Proteus还能与第三方集成开发环境(如Keil的μVision)进行联合仿真调试,给予开发人员莫大便利。本设计以51单片机构成的虚拟测控实验为例描述基于Proteus

的硬件设计、基于Keil C的软件设计过程。

随着嵌入式系统应用不断扩大,功能不断增强,为了对整个系统及其所操作的部件、装置等资源进行统一协调、指挥和有效控制,使开发人员只专注于应用程序设计,在嵌入式系统中引入操作系统是非常必要的。μC/OSII是源码公开的实时多任务操作系统,具备足够的稳定性和安全性,特别适合用于中小型嵌入式系统中。

Keil公司的Keil μVision3,是目前使用最为广泛的开发环境之一。这里介绍在Keil μVision3环境下基于μC/OSII嵌入式操作系统的用户程序设计。

基于Proteus电路设计、Keil程序设计以及它们联合仿真调试的方法,建立了单片机系统硬件设计、软件设计以及调试的全虚拟环境,使得全部的设计工作基于PC就能完成,显著提高了设计开发效率,降低开发风险,这对嵌入式方案设计无疑是一个很好的思路4.2 虚拟实验实例

在Proteus虚拟实验系统中能够开发设计模拟电路、数字电路和单片机系统在内的各种仿真实验。论文中只在单片机中选择了几个典型的有代表性实验项目,作为应用实例。

根据单片机编程仿真实验系统硬件资源,设计了如下实验:

实验一彩灯控制器

一、目的:

掌握可编程I/O接口芯片AT89S52的接口原理使用,熟悉对AT89S52初始化编程和输入、输出软件的设计方法。

二、内容:

编写程序,让AT89S52的发光二极管闪烁, 根据花样表进行花样变化

三、硬件说明:

P1接8只LED

晶体为12MHz

四、线路

1-1

实验线路图如图

五、程序及流程图

程序见附录1

51单片机综合实验交通灯设计报告

51单片机综合实验交通灯设计报告 班级: 学生姓名: 学号: 指导教师:

一实验题目 交通灯控制系统设计 二实验目的 1、学会用8051单片机开发简单的计算机控制系统; 2、学会用汇编语言和C语言开发系统软件; 3、学会8051单片机开发环境wave或Keil uVision3软件的使用; 4、学会Proteus软件的使用方法,会用Proteus单片机系统进行仿真; 5、学会Protel软件的使用方法,会用Protel绘制电气原理图和印制板图; 6、熟悉七位数码管显示的使用方法; 7、了解交通灯控制系统的基本组成。 三实验要求 交通灯处在十字路口上。它有红﹑黄﹑绿三种颜色的灯组成。红灯亮时道路上的车辆停止运行;黄灯是一种过渡用的信号灯,当它亮时,表示道路上的红绿色信号灯即将进行转换。下面拿东西南北四个方向来说明。当东西方向允许行车(或者左转)的时候,南北方向就禁止行车,即此时东西方向的绿灯亮红灯灭,而南北方向的绿灯灭红灯亮。反之当南北方向允许行车(或者左转)的时候,东西方向就禁止行车,即此时南北方向的绿灯亮红灯灭,而东西方向的绿灯灭红灯亮。交通灯配置示意图如图1所示。同时当有特殊的情况发生时,能手动控制各个方向的信号灯。设计任务就是将这一电路用单片机来实现具体的控制。

1 十字路口交通灯配置示意图 四 设计内容与原理 为了在后面的分析中便于说明,将南北方向允许直行命名为状态1,南北方向允许左转命名为状态2,南北方向行车到东西方向行车的转换阶段命名为状态3,将东西方向允许直行命名为状态4,东西方向允许左转命名为状态5,东西方向行车到南北方向方向行车的转换阶段命名为状态6。 假定直行绿灯点亮的时间为25s ,左转绿灯点亮的时间为20s ,黄灯点亮的时间为5s ,则对方红灯的点亮时间为50秒。黄灯每隔500ms 亮一次,之后灭500ms (亮灭一次叫作闪烁一次),一共闪烁5次,持续5s 。各个状态之间的变换情况如下: 具体显示周期如下:

单片机课程设计报告实验报告

课程设计报告 学号: 1328403028 姓名:张帅华 班级: 13电子信息工程指导老师:邓晶 苏州大学电子信息学院 2016年4月

摘要 随着时代的进步和发展,单片机技术已经成为一种比较成熟的技术,普及到我们生活、工作、科研等各个领域。本次课程设计包含四个基于STC89C52单片机的设计,分别是:基于单总线数字式温度传感器DS18b20的数字温度计的设计;基于2K位串行CMOS 的EEPROM AT24C02的数字密码锁的设计;基于SPI接口实时时钟芯片DS1302的电子日历的设计以及基于无线收发芯片nrf24L01的简单无线通讯系统的设计。 关键词:单片机 DS18B20 AT24C02 DS1302 NRF24L01

目录 摘要 (1) 目录 (2) 第1章基于DS18B20的数字温度计设计 (3) 1.1 设计要求 (3) 1.2 系统组成 (3) 1.3 系统设计 (3) 1.3.1 硬件设计 (3) 1.3.2软件设计 (4) 1.4 设计结果 (6) 第2章基于AT24C02的电子密码锁设计 (7) 2.1 设计要求 (7) 2.2 系统组成 (7) 2.3 系统设计 (8) 2.3.1 硬件设计 (8) 2.3.2 软件设计 (9) 2.4 设计结果 (9) 第3章基于DS1302的电子日历的设计 (11) 3.1 系统功能 (11) 3.2 系统组成 (11) 3.3 系统设计 (11) 3.3.1 硬件设计 (11) 3.3.2 软件设计 (13) 3.4 设计结果 (14) 第4章基于NRF24L01的无线通信系统的设计 (15) 4.1 系统功能 (15) 4.2 系统组成 (15) 4.3 系统设计 (15) 4.3.1 硬件设计 (15) 4.3.2 软件设计 (16) 4.4 设计结果 (16) 总结 (17)

单片机课程设计报告模板资料

哈尔滨远东理工学院 课题名称 专业班级 学号 学生姓名 指导教师 2015年10月14日

1、例举设计过程中遇到的问题及其解决方法(至少两例)。答:(1)问题说明: 解决方法: (2)问题说明: 解决方法: 2、教师现场提的问题记录在此(不少于2个问题)。

目录 1 设计任务 (1) 2设计方案 (2) 2.1任务分析 (2) 2.2方案设计 (2) 3 系统硬件设计 (3) 3.1时钟电路设计 (3) 3.2复位电路设计 (3) 3.3 灯控制电路设计 (3) 3.4 倒计时显示电路设计 (4) 3.5 按键控制电路设计 (5) 4 系统软件设计 (6) 4.1 1S定时 (6) 4.2 定时程序流程 (6) 4.3交通灯的设计流程图 (6) 4.4定时器0 及中断响应 (7) 5仿真与性能分析 (8) 6心得体会 (9) 参考文献 (10) 附录1 系统原理图 .......................................................................错误!未定义书签。附录2 系统PCB图 .....................................................................错误!未定义书签。附录3 程序清单 .. (11) II

1 设计任务 支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。用红、绿、黄发光二极管作信号灯。如图1.1所示。设东西向为主干道,南北为支干道。 1. 基本要求 (1) 主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。 (2) 主、支干道均有车时,两者交替允许通行,主干道每次放行30秒,支干道每次放行20秒,设立30秒、20秒计时、显示电路。 (3) 在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡。黄灯亮时,原红灯按1Hz 的频率闪烁。 (4) 要求主支干道通行时间及黄灯亮的时间均可在0~99秒内任意设置。 2. 选做 (1) 可设置紧急按钮,在出现紧急情况时可由交警手动实现全路口车辆禁行而行人通行状态,即主干道和支干道均为红灯亮。 (2) 实现绿波带。所谓‘绿波带’,是指在一定路段,只要按照规定时速,就能一路绿灯畅行无阻。“绿波带”将根据道路车辆行驶的速度和路口间的距离,自动设置信号灯的点亮时间差,以保证车辆从遇到第一个绿灯开始,只要按照规定速度行驶,之后遇到的信号灯将全是绿灯。

多模块单片机实验系统设计

多模块单片机实验系统设计 设计一种单片机实验系统,针对单片机实验系统的应用要求,采用模块化的设计方法,使得实验系统能够支持多种不同的应用,扩展方便,同时能够与多种实验系统兼容,在日常的教学实验和研发中应用广泛。 标签:单片机实验系统多模块 单片机作为一门实践性很强的专业课程,平时的实验练习不可缺少。因此作为实验载体的实验系统非常重要。常规的单片机实验系统,其功能比较单一,与别的实验系统之间也毫无联系,能够完成的实验都是单一的单片机实验。当前实验室中一般都有多种实验设备,如EDA实验箱、模电实验箱、数电实验箱、信号处理实验箱等。如何使得单片机实验系统在现有的实验条件下,能够进行更多、更复杂的实验,利用更多的实验设备,多模块实验系统为我们指出了一种设计思路。 针对实验室的条件,设计了一种模块化的单片机实验系统,可以利用现有的多种实验设备,提高单片机实验系统的灵活性和利用率。其主要模块有电源模块、核心模块、功能模块、下载模块等,下面分别介绍。 1 电源模块 作为单片机实验系统的供电部分,电源模块非常重要,直接关系到系统的稳定,为了便于扩展,同时方便实验,电源模块采用多种方式供电。利用跳线或者开关进行选择,其电路图如图1所示。利用外部供电时电源通过J1输入,当电压大于5V时,一般常见的有9V和12V,需要将J2跳线拔掉;当电源为5V时,将跳线闭合,直接供电。同时实验系统还可以通过USB直接供电,外部供电和USB供电的切换通过开关S1来实现,为了保护电脑,在USB供电中增加了保险丝。 2 CPU模块 CPU模块是单片机实验系统的中心,也即芯片所在的部分,为了能够最大限度的利用实验系统的资源,本核心模块采用锁紧卡座设计,便于芯片的安装与卸载,并且将卡座的40个引脚全部引出,便于进行二次开发。同时设计了两种不同的复位电路,以适应普通的51单片机和A VR单片机,使得实验系统能够支持两种不同的单片机进行实验。在设计时,主要通过一个跳线实现不同的复位电平,如图2所示。可以通过跳帽来选择51单片机的高电平复位和A VR单片机的低电平复位,而芯片本身的引脚差异可以通过一个小转换板子来实现,主要将I/0口对应起来,一些功能引脚进行转换即可,通过这种处理方式,可以在一个实验平台上调试两种不同的单片机系统,大大提高了外设的利用率。 3 功能模块

单片机综合性实验项目设计及实践教学研究

. 单片机综合性实验项目设计与实践教学研究 【摘要】本文分析了综合性实验项目设计课程的作用和特点。以中等职业学校单片机课程实践教学为例,对于如何充分发挥综合性实验项目设计课程的作用进行一些分析和探讨,提出了几点看法和意见。 【关键词】单片机,综合性实验,项目设计 综合性实验项目设计课程一般作为职业学校高年级的专业课中所设置的一个重要的教学环节,也有一些学校不开设综合性实验项目,而是直接以最后的毕业设计来取代。然而综合性项目设计课程本身对于专业课教学来说具有重要的价值,它的作用不容忽视。如果教学计划安排合理,教师指导适度,那么综合性项目设计课程完全可以大有作为。本文以中等职业学校单片机课程教学为例,对于如何充分发挥综合性实验项目设计课程的作用进行一些分析和探讨。 一、职业学校的单片机专业课教学现状分析 职业教育是以就业为导向的,其人才培养的特殊性不同于普通教育。中等职业学校的单片机学科的教学也不同于其他学科教学,由于单片机目前被广泛应用在工业自动化控制,具有广泛的市场需求和重要的实用价值,在教学上不仅要培养学生扎实的理论基础知识,更应注意学生动手、创新能力的培养,所以必须突出教学过程中的实践教学。 综合性实验项目设计课程是单片机教学中的重要环节,但是在过去的实践中,由于种种原因,它的作用往往得不到充分发挥。在传统的教学思想和方

法引导下,存在对单片机实践教学的“轻视性”。比如,反映到对学生学习的评价上,以学生理论学习的考试成绩作为衡量标准,因而常常出现“高分低能”现象。这种评价体系造就不少教师和学生对实践环节的轻视心理,往往就会在课程安排、在教与学的过程等各个方面导致理论与实践的脱节,而综合性实验项目设计这一原本可以在学生实践综合能力训练方面发挥重要作用的教学环节,更是难以得到落实和充分利用。 重视理论学习,可使学生系统掌握知识体系结构,本无可厚非,但是当前中等职业学校不能再以学历为导向,而是以市场、就业为导向,各个用工单位着重于考察学生的动手操作等实践能力,从近年的就业形势上明显看到这一点。 中职类学校的生源普遍存在缺乏自信心,纪律涣散,思想上不求上进,知识基础薄弱、学习积极性低甚至厌学情况严重等问题,面对有相当难度的单片机课程,他们当中很多人无所适从。而单纯的理论知识灌输,可能只会使学生增加厌学情绪,而不能较好地掌握实际技能,所以在单片机实践教学改革方面十分值得探讨。要改变这样的现状,不仅仅要求教师具备较强的专业应用能力,关键是要根据学生特点在教学上采取行之有效的好方法。 二、综合性实验项目设计的定位 类似毕业设计,综合性实验项目设计课程要求学生在一段时间内,在占用较多课时的情况下,完成覆盖多门专业课程知识的综合性设计课题,从而有机整合自己的专业知识,培养并提高自己的综合实践能力。综合性实验项目不可能像毕业设计题目一样让学生有充分的时间对大量的新知识、新理论进行资料收集和分析消化。所以,在设计题目时要立足于对学生已有理论知识的综合和应用,适当加入一些新的相关知识,锻炼学生的学习能力;同时

单片机课程设计51实验报告DOC

福建工程学院软件学院 题目:51开发洗衣机 班级:物联网工程1202 成员: 座号:04 28 指导老师: 日期:年月日课设报告

目录 1摘要 (1) 2.设计需求 (1) 2.1功能需求 (1) 2.1.1 基本功能 (1) 2.1.2扩展功能 (1) 2.2 设计要求 (2) 2.2.1 单片机芯片部件功能 (2) 2.2.2 LCD数码显示管部件功能 (2) 2.2.3 按键部件功能 (2) 2.2.4 蜂鸣器部件功能 (2) 3硬件设计及描述 (2) 3.1总体描述 (2) 3.2系统总体框图 (3) 3.3Proteus电路图 (3) 3.4各部分硬件介绍 (4) 3.4.1晶振Protues仿真 (4) 3.4.2LCDProtues仿真 (5) 3.4.3 按键Protues仿真 (5) 3.4.4上拉电阻Protues仿真 (6) 3.4.5C51芯片Protues仿真 (6) 3.4.6上电复位电路Protues仿真 (8) 3.4.7蜂鸣器Protues仿真 (9) 4 软件设计流程及描述 (10) 4.1程序流程图 (10) 4.2函数模块及功能 (10) 5功能实现 (11) 5.1程序烧入上电调试 (11) 5.2时间递增跳变 (12) 5.3比分更变 (13) 5.4比赛得分复位 (14) 5.5比赛时间复位 (14) 6 心得体会 (15) 7源程序代码: (16)

1摘要 是为了方便足球比赛时计时与计分及时与准确公开而引申出的实用产品。在此设计中接入了一个1602液晶显示屏,第一行用来记录赛程的时间,第二行用于显示比赛的得分情况。赛程计时用倒计时来计时。在比赛结束时按下相应按键蜂鸣器会响起,提醒比赛时间结束。 这次试验运用C语言进行编程,编程后利用Keil uVision来进行编译,再生成.hex文件装入芯片中,采用Proteus软件来仿真,检验功能是否能够正常实现,最后利用单片机MCS-51实机来实现功能。 本设计以AT89S51单片机作为核心,综合应用单片机定时器、中断、LCD1602 液晶显示等知识,设计一款单片机和简单外设控制的足球计分器应用,同时显示当前的比赛进行时间,比赛队伍,比分状况。 2.设计需求 2.1功能需求 2.1.1 基本功能 (1)屏上显示比赛已运行时间 (2)屏上显示A队和B队的得分 (3)屏上显示上下半场(H-L) (4)通过按键控制比分的增减 2.1.2扩展功能 (1)按键实现比赛场次的更换 (2)按键实现比赛计时的复位 (3)按键实现比赛比分的复位 (4)在比赛结束时,蜂鸣器在主裁判的控制下响起

智能小车单片机课程设计报告

题目: 智能小车设计 打开命令行终端的快捷方式: ctr+al+t:默认的路径在家目录 ctr+shift+n:默认的路径为上一次终端所处在的路径. linux@ubuntu:~$ linux:当前登录用户名. ubuntu:主机名 :和$之间:当前用户所处在的工作路径. windows下的工作路径如C:\Intel\Logs linux下的工作路径是:/.../..../ ~:代表的是/home/linux这个路径.(家目录). ls(list):列出当前路径下的文件名和目录名. ls -a(all):列出当前路径下的所有文件和目录名,包括了隐藏文件. .:当前路径 ..:上一级路径 ls -l:以横排的方式列出文件的详细信息 total 269464(当前这个路径总计所占空间的大小,单位是K) drwxr-xr-x 3 linux linux 4096 Dec 4 19:16 Desktop 第一个位置:代表的是文件的类型. linux系统下的文件类型有以下几种. b:块设备文件 c:字符设备文件 d:directory,目录 -:普通文件. l:连接文件. s:套接字文件. p:管道文件. rwxr-xr-x:权限 r:读权限-:没有相对应的权限 w:写权限

x:可执行权限 修改权限: chmod u-或者+r/w/x 文件名 chmod g-或者+r/w/x 文件名 chmod o-或者+r/w/x 文件名 第一组:用户权限 第二组:用户组的权限 第三组:其他用户的权限. chmod 三个数(权限) 文件名 首先根据你想要的权限生成二进制数,再根据二进制数转换成十进制的三位数 rwxr-x-wx 111101011 7 5 3 chmod 753 文件名 rwx--xr-x 第二个位置上的数字:对应目录下的子文件个数,如果是非目录,则数字是1 第三个位置:用户名(文件创造者). 第四个位置:用户组的名字(前边的用户所处在的用户组的名字). 第五个位置:对应文件所占的空间大小(单位为b) 第六~八个位置:Dec 4 19:16时间戳(最后一次修改文件的时间) 最后一个位置:文件名 操作文件: 1.创建一个普通文件:touch 文件名 2.删除一个文件:rm(remove) 文件名 3.新建一个目录:mkdir(make directory) 目录名 递归创建目录:mkdir -p 目录1/目录2/目录3 4.删除一个目录:rmdir 目录名.//仅删除一个空目录 rm -rf 目录名//删除一个非空目录 5.切换目录(change directory):cd 路径 linux下的路径分两种 相对路径:以.(当前路径)为起点. 绝对路径:以/(根目录)为起点, 用相对路径的方式进入Music:cd ./Music 用绝对路径的方式进入Desktop:cd /home/linux/Desktop 返回上一级:cd ..

单片机电子时钟课程设计实验报告

单片机电子时钟课程设 计实验报告 Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】

《单片机原理与应用》课程设计 总结报告 题目:单片机电子时钟(带秒表)的设计 设计人员:张保江江润洲 学号: 班级:自动化1211 指导老师:阮海容 目录 1.题目与主要功能要求 (2) 2.整体设计框图及整机概述 (3) 3.各硬件单元电路的设计、参数分析及原理说明 (3) 4.软件流程图和流程说明 (4) 5.总结设计及调试的体会 (10) 附录 1.图一:系统电路原理图 (11) 2.图二:系统电路 PCB (12) 3.表一:元器件清单 (13) 4.时钟程序源码 (14)

题目:单片机电子时钟的设计与实现 课程设计的目的和意义 课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。 课程设计的基本任务 利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。 主要功能要求 最基本要求 1)使用MCS-51单片机设计一个时钟。要求具有6位LED显示、3个按键输入。 2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。 3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。开始计时时为000000,到235959后又变成000000。 4)使用3个键分别作为小时、分、秒的调校键。每按一次键,对应的显示值便加1。分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。在调校时均不向上一单位进位 (例如分加到59后变为00,但小时不发生改变)。 5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。 6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。7)掌握硬件和软件联合调试的方法。 8)完成系统硬件电路的设计和制作。 9)完成系统程序的设计。 10)完成整个系统的设计、调试和制作。

单片机课程设计报告

课程设计报告 课程名称单片机原理及应用 设计题目电子琴的设计 专业班级自动化1142 姓名周太永 学号1104421242 指导教师蔡长青张卓 起止时间2014.6.23-2014.7.11 成绩评定 考核内容设计 表现 设计 报告 答辩 综合 评定 成绩 电气与信息学院

2013/2014学年第二学期 《单片机控制系统设计与调试》课程设计任务书 指导教师:蔡长青班级:自动化1141、2班 地点:机房、单片机实验室(实训中心415) 课程设计题目:基于单片机原理的电子琴设计 一、课程设计目的 1.灵活运用单片机的基础知识,依据课程设计内容,能够完成从硬件电路图设计, 到PCB制版,再到软件编程及系统调试实现系统功能,完成课程设计,加深对单片机基础知识的理解,并灵活运用,将各门知识综合应用。 2.能够上网查询器件资料,培养对新知识新技术的独立的学习能力和应用能力。 3.独立完成一个小的系统设计,从硬件设计到软件设计,增强分析问题、解决问 题的能力,为日后的毕业设计及科研工作奠定良好的基础。 二、课程设计内容(包括技术指标) 1.焊接。认真、仔细,避免缺焊、漏焊。 2.频率计算。会计算脉冲值与频率的关系。 3.工作过程。开机时,第一步是对定时器T0进行初始化,设定它的工作状态(对 于本系统将T0设定为工作方式0);然后判断是否有键按下,如果没有按键按下,继续判断,如果有按键按下,则判断是哪个键按下;再根据按键的功能将计数初值装入定时器T0中中并启动T0,当T0定时完毕后,重新装入计数初值继续定时并将P3.3取反,再次定时完毕后再一次的装入计数初值 继续定时并将P3.3取反,一直循环此操作直到按键释放为止,按键释放后 停止T0工作并再次判断是否又有按键按下,并继续执行以前的过程。 三、时间安排 1.布置任务、查资料1天 2.硬件电路图设计及PCB制版3天 3.硬件电路图及PCB制版验收、电路板焊接1天 4.软件编程设计3天 5.系统调试3天 6.调试验收1天 7.完成设计报告3天 四、基本要求 1.画出硬件电路图,完成PCB制版; 2.画出软件流程图,编写程序(C51语言/汇编语言); 3.完成系统调试; 4.提交设计报告。

基于单片机的CAN实验系统设计

基本单片机的CAN实验系统设计(CAN教学案例设计) 邵健2014秋季学期

目录 摘要......................................................... 错误!未定义书签。前言......................................................... 错误!未定义书签。 1 总体设计方案 (3) 1.1设计任务 (3) 1.2总体CAN网络设计框图 (4) 1.3 CAN节点结构 (4) 2 系统的硬件设计 (5) 2.1 电源模块设计 (6) 2.2 单片机最小系统 (7) 2.3 MAX232组成的单片机和PC机通信电路 (8) 2.4 看门狗电路设计 (9) 2.5 键盘输入电路模块 (10) 2.6 显示电路模块 (11) 2.7 扩展ROM功能模块 (12) 2.8 CAN通信模块 (12) 3 系统的软件设计 (15) 3.1 CAN控制器初始化函数CANINI (15) 3.2 CAN接收函数CANREC (16) 3.3 CAN发送函数TDATA (16) 3.4 主程序流程图 (17) 3.5 总程序清单........................................... 错误!未定义书签。 4 总结....................................................... 错误!未定义书签。 4.1 结束语............................................... 错误!未定义书签。

51单片机电子时钟课程设计实验报告

《单片机原理与应用》课程设计 总结报告 题目:单片机电子时钟(带秒表)的设计 设计人员:张保江江润洲 学号:2012197213 2012118029 班级:自动化1211 指导老师:阮海容

目录 1.题目与主要功能要求 (2) 2.整体设计框图及整机概述 (3) 3.各硬件单元电路的设计、参数分析及原理说明 (3) 4.软件流程图和流程说明 (4) 5.总结设计及调试的体会 (10) 附录 1.图一:系统电路原理图 (11) 2.图二:系统电路PCB (12) 3.表一:元器件清单 (13) 4.时钟程序源码 (14)

题目:单片机电子时钟的设计与实现 课程设计的目的和意义 课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。 课程设计的基本任务 利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。 主要功能要求 最基本要求 1)使用MCS-51单片机设计一个时钟。要求具有6位LED显示、3个按键输入。 2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。开始计时时为000000,到235959后又变成000000。 4)使用3个键分别作为小时、分、秒的调校键。每按一次键,对应的显示值便加1。分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。在调校时均不向上一单位进位(例如分加到59后变为00,但小时不发生改变)。 5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。 6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。 7)掌握硬件和软件联合调试的方法。 8)完成系统硬件电路的设计和制作。 9)完成系统程序的设计。 10)完成整个系统的设计、调试和制作。 11)完成课程设计报告。 基本要求 1)实现最基本要求的1~10部分。 2)键盘输入可以控制电子时钟的走时/调试。 3)设计键盘输入电路和程序并调试。 4)掌握键盘和显示配合使用的方法和技巧。 提高发挥部分

51单片机课程设计

课程设计说明书
课程设计名称






学生姓名
指导教师
单片机原理及应用课程设计 电子信息工程 140405 20141329 李延琦 胡黄水
2016 年 12 月 26 日

课程设计任务书
课程设计 题目
酒精测试仪
起止日期
2016 年 12 月 26 日— 2017 年 1 月 6 日
设计地点
计算机科学与工程学 院单片机实验室 3409
设计任务及日程安排: 设计任务:分两部分: (一)、设计实现类:进行软、硬件设计,并上机编程、联线、调试、 实现; 1.电子钟的设计 2.交通灯的设计 3.温度计的设计 4.点阵显示 5.电机调速 6.电子音乐发声(自己选曲) 7.键盘液晶显示系统 (二)、应用系统设计类:不须上机,查资料完成软、硬件设计画图。 查资料选定题目。 说明:第 1--7 题任选其二即可。(二)里题目自拟。 日程安排: 本次设计共二周时间,日程安排如下: 第 1 天:查阅资料,确定题目。 第 2--4 天:进实验室做实验,连接硬件并编写程序作相关的模块实验。 第 5--7 天:编写程序,并调试通过。观察及总结硬件实验现象和结果。 第 8--9 天:整理资料,撰写课程设计报告,准备答辩。 第 10 天:上交课程设计报告,答辩。 设计报告要求:
1. 设计报告里有两个内容,自选题目内容+附录(实验内容),每 位同学独立完成。 2. 自选题目不须上机实现,要求能正确完成硬件电路和软件程序 设计。内容包括: 1) 设计题目、任务与要求 2)硬件框图与电路图 3) 软件及流程图 (a)主要模块流程图 (b)源程序清单与注释 4) 总结 5) 参考资料 6)附录 实验上机调试内容
注:此任务书由指导教师在课程设计前填写,发给学生做为本门课程设计 的依据。

单片机课程设计报告模板

单片机系统课程设计报告 专业:自动化 学生姓名: 学号: 指导教师: 完成日期:2011 年 3 月17 日

目录 1 设计任务和性能指标 (3) 1.1设计任务............................................................................ 错误!未定义书签。 2 设计方案 (4) 2.1任务分析 (4) 2.2方案设计 (4) 3 系统硬件设计 (5) 3.1时钟的电路设计 (5) 3.2复位电路设计 (5) 3.3灯控电路设计 (5) 3.4倒计时电路设计 (6) 3.5按键控制电路设计 (7) 4 系统软件设计 (8) 4.11秒定时 (8) 4.2定时程序流程 (8) 4.3交通灯的设计流程图 (9) 4.4定时器0与中断响应 (10) 5 仿真及性能分析 (10) 5.1仿真结果图 (11) 5.2仿真结果与分析 (12) 6 心得体会 (13) 参考文献 (14) 附录1 系统原理图 (15) 附录2 系统PCB图 .................................................................. 错误!未定义书签。附录3 程序清单 (17)

1.1设计任务 利用单片机完成交通信号灯控制器的设计,该交通信号灯控制器由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。用红、绿、黄发光二极管作信号灯。如图5.1所示。设东西向为主干道,南北为支干道。 图5.1 交通灯示意图 1. 基本要求 (1) 主干道处于常允许通行的状态,支干道有车来时才允许通行。主干 道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。 (2) 主、支干道均有车时,两者交替允许通行,主干道每次放行30秒, 支干道每次放行20秒,设立30秒、20秒计时、显示电路。 (3) 在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡。 黄灯亮时,原红灯按1Hz 的频率闪烁。 (4) 要求主支干道通行时间及黄灯亮的时间均可在0~99秒内任意设置。 2. 选做 (1) 可设置紧急按钮,在出现紧急情况时可由交警手动实现全路口车辆 禁行而行人通行状态,即主干道和支干道均为红灯亮。 (2) 实现绿波带。所谓‘绿波带’,是指在一定路段,只要按照规定时速, 就能一路绿灯畅行无阻。“绿波带”将根据道路车辆行驶的速度和路口间的距离,自动设置信号灯的点亮时间差,以保证车辆从遇到第一个绿灯开始,只要按照规定速度行驶,之后遇到的信号灯将全是绿灯。 南 北 东 西

《单片机系统设计》实验报告

短学期实验报告 (单片机系统设计) 题目: 专业: 指导教师: 学生姓名: 学号: 完成时间: 成绩:

基于单片机的交流电压表设计 目录 1系统的设计要求 (2) 2系统的硬件要求 (2) 2.1真有效值转换电路的分析 (2) 2.2放大电路的设计 (3) 2.3A/D转换电路的设计 (3) 2.4单片机电路的分析 (4) 2.5显示电路 (4) 3 软件设计 (5) 3.1 软件的总流程图 (5) 3.2 初始化定义与定时器初始化流程图 (5) 3.3 A/D转换流程图 (6) 3.4 数据处理流程图 (6) 3.5 数据显示流程图 (7) 4 调试 (7) 4.1 调试准备 (7) 4.2 关键点调试 (7) 4.3 测试结果 (8) 4.4 误差分析 (8) 5结束语 (8) 5.1 总结 (9) 5.2 展望 (9) 附录1 总原理图 (10) 附录2 程序 (10) 附录3 实物图 (14)

基于单片机的交流电压表设计 ****学院 ****专业 姓名 指导老师:******* 1 设计要求 (1)运用单片机实现真有效值的检测和显示。 (2)数据采集使用中断方式,显示内容为有效值与峰值交替进行。 2 硬件设计 本系统是完成一个真有效值的测量和显示,利用AD737将交流电转换成交流电压的有效值,用ADC0804实现模数转换,再通过单片机用数码管来显示。系统原理框图如图2-1所示。系统框图由真有效值转换电路、放大电路、A/D 转换电路、单片机电路、数码管显示电路五部分。 图2-1 原理框图 2.1 真有效值转换电路 真有效值转换电路主要是利用AD737芯片来实现真有效值直流变换的,即将输入的交流信号转换成直流信号的有效值,其原理图如图2-2所示。 图2-2 真有效值转换电路 由于AD737最大输入电压为200mV, 所以需要接两个二极管来限制输入电压,起到限幅的作用。如图中D1、D2,由IN4148构成,电容C6是耦合电容,电阻R1是限流电阻。 2.2 放大电路设计 放大电路主要是利用运放uA741来进行放大,电路原理图如图2-3所示。 A/D 转换 单片机 电路 显示 电路 转换 电路 交流 信号 放大 电路

51单片机课程设计实验报告

51单片机课程设计报告 学院: 专业班级: 姓名: 指导教师: 设计时间:

51单片机课程设计 一、设计任务与要求 1.任务:制作并调试51单片机学习板 2.要求: (1)了解并能识别学习板上的各种元器件,会读元器件标示; (2)会看电路原理图; (3)制作51单片机学习板; (4)学会使用Keil C软件下载调试程序; 用调试程序将51单片机学习板调试成功。 二、总原理图及元器件清单 1.总原理图 2.元件清单 三、模块电路分析 1. 最小系统: 单片机最小系统电路分为振荡电路和复位电路, 振荡电路选用12MHz 高精度晶振, 振荡电容选用22p和30p 独石电容;

图 1 图 2 复位电路使用RC 电路,使用普通的电解电容与金属膜电阻即可; 图 3 当单片机上电瞬间由于电容电压不能突变会使电容两边的电位相同,此时RST 为高电平,之后随着时间推移电源负极通过电阻对电容放电,放完电时RST 为低电平。正常工作为低电平,高电平复位。 2. 显示模块: 分析发光二极管显示电路: 图 4 发光二极管显示电路分析:它是半导体二极管的一种,可以把电能转化成光能,常简写为

LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,产生自发辐射的荧光。图中一共有五个发光二极管 其中一个为电源指示灯,当学习板通电时会发光以指示状态。其余四个为功能状态指示灯,实际作用与学习板有关 分析数码管显示电路 图 5 数码管显示电路分析:数码管按段数分为七段数码管和八段数码管,图中所用为八段数码管(比七段管多了一个小数点显示位),按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管.共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。数码管主要用来显示经电路板处理后的程序的运行结果。图中使用了八个八段数码管,可以显示八个0-15的数字。使用数码管可以直观的得到程序运行所显示的结果.也可以显示预置在学习板上的程序,主要通过16个开关来控制。 四、硬件调试 1、是否短路 用万用表检查P2两端是短路。电阻为0,则短路,电阻为一适值,电路正常。 2、焊接顺序 焊接的顺序很重要,按功能划分的器件进行焊接,顺序是功能部件的焊接--调试--另一功能部件的焊接,这样容易找到问题的所在。 3、器件功能 1)检查原理图连接是否正确 2)检查原理图与PCB图是否一致 3)检查原理图与器件的DA TASHEET上引脚是否一致 4)用万用表检查是否有虚焊,引脚短路现象 5)查询器件的DA TASHEET,分析一下时序是否一致,同时分析一下命令字是否正确 6)通过示波器对芯片各个引脚进行检查,检查地址线是否有信号的 7)飞线。用别的的口线进行控制,看看能不能对其进行正常操作,多试验,

89C51单片机课程设计之秒表设计实验报告

单片机课程设计报告 单 片 机 秒 表 系 统 课 程 设 计 班级: 课程名称:秒表设计 成员: 实训地点:北校机房 实训时间:6月4日至6月15日

目录 1课程设计的目的和任务 1.1 单片机秒表课程设计的概述 1.2课程设计思路及描述 1.3 课程设计任务和要求 2硬件与软件的设计流程 2.1系统硬件方案设计 2.2所需元器件 3 程序编写流程及课程设计效果 3.1源程序及注释 3.2原理图分析 3.3课程设计效果 4 心得体会

1. 课程设计的目的和任务 1.1单片机秒表课程设计的概述 一、课程设计题目 秒表系统设计——用STC89C51设计一个4位LED数码显示“秒表”,显示时间为000.0~9分59.9秒,每10毫秒自动加一,每1000毫秒自动加一秒。 二、增加功能 增加一个“复位”按键(即清零),一个“暂停”和“开始”按键。 三、课程设计的难点 单片机电子秒表需要解决几个主要问题,一是有关单片机定时器的使用;二是如何实现LED的动态扫描显示;三是如何对键盘输入进行编程;四是如何进行安装调试。 四、课程设计内容提要 本课程利用单片机的定时器/计数器定时和记数的原理,结合集成电路芯片8051、LED数码管以及课程箱上的按键来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。其中本课程设计有三个开关按键:其中key1按键按下去时开始计时,即秒表开始键,key2按键按下去时数码管清零,复位为“00.00”. key3按键按下去时数码管暂停。 五、课程设计的意义 1)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的 应用进一步的了解。 2)掌握定时器、外部中断的设置和编程原理。 3)通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。 4)该课程通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统, 拥有正确的计时、暂停、清零,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义 1.2课程设计思路及描述

《单片机系统设计技术》实验指导

《单片机系统设计技术》 实验指导书 适用专业: 电气、自动化、信息等 编写单位: 电气信息学院 编写人: 曹 林 审核人: 审批人: 批准时间:年月日

目 录 实验1 IO控制LED流水灯实验 (3) 实验2 IO控制数码管动态扫描实验 (5) 实验3 外部中断实验 (8) 实验4 定时器应用控制实验 (10) 实验5 UART实验 (12) 实验6 键盘扫描输入编程 (14) 实验7 UART与PC对话实验 (17) 实验8 ADC数据采集实验 (19)

实验1 IO控制LED流水灯实验 1.实验目的 1)、熟悉KEIL编程环境和调试环境。 2)、掌握单片机汇编语言和指令的用法。 3)、理解简单的IO控制程序,延迟子程序,并对其修改,使其功能改变。 2.实验设备 硬件: PC 机,单片机教学实验开发平台; 软件: KEIL集成开发环境、STC ISP程序下载软件。 3.实验内容 使用P0口控制8个LED 进行流水灯显示。 4.实验预习要求和实验准备要求 预习教科书关于单片机硬件架构内容、IO口的内容,特殊寄存器内容。 预习汇编程序编写、MCS-51指令表。 带上教科书、U盘、具备二进制和十六进制转换的科学计算器。 5.实验原理和步骤 1)实验原理 (1)实验原理图 图1 P0口连接的8盏LED灯 从图1中可以看出:如果需要把LED点亮有两个条件,其一是需要用短接帽把J1的2脚和3脚短接,在PCB上就是将电路板左上角LED和VCC短接起来;其二是P0.X口给出低电平,让电流从VCC开始流经限流电阻、LED后进入单片机的P0.X口,最后到单片机内部的地线上。因此,简单地说就是在短接帽接好的前提下,向P0.X口写0则LED将点亮,写1则LED将熄灭。图中网络标识PORT0_0、PORT0_1……PORT0_7和单片机P0.0、P0.1……P0.7连接,可观察原理图上单片机P0口的网络标识也是PORT0_0、 PORT0_1……PORT0_7。

基于51单片机的计算器课程设计实验报告

项目一:简单计算器 1.实验题目:用51单片机实现简单的计算器功能 2.实验截图: 1).实验运行前截图: 2).实验运行后截图:

3.实验代码: #include #include #include #include #include unsigned char table1[16]; //1602第一行显示字符unsigned char table2[16]; //1602第二行显示字符unsigned char code table_error[] = "error"; /* 键扫描函数 */ unsigned char keyscan() //扫描键盘函数 { unsigned char key_l,key_h,addres,num; P0=0x0f; key_l=P0; P0=0xf0; key_h=P0; addres=key_l | key_h; if(addres!=0xff) { Delayms(1); if(addres!=0xff) {

P0=0x0f; key_l=P0; P0=0xf0; key_h=P0; addres=key_l | key_h; switch(addres) { case 0xee:num='1';break; case 0xde:num='2';break; case 0xbe:num='3';break; case 0xed:num='4';break; case 0xdd:num='5';break; case 0xbd:num='6';break; case 0xeb:num='7';break; case 0xdb:num='8';break; case 0xbb:num='9';break; case 0xd7:num='0';break;//按键0 case 0xe7:num='C';break;//按键* case 0xb7:num='=';break;//按键# case 0x7e:num='/';break;//按键A case 0x7d:num='*';break;//按键B case 0x7b:num='-';break;//按键C case 0x77:num='+';break;//按键D } while(addres!=0xff) { P0=0x0f; key_l=P0; P0=0xf0; key_h=P0; addres=key_l | key_h; } return num; } } return 0; } void clear_lcd(void) //清屏 { unsigned char j;

相关主题
文本预览
相关文档 最新文档