跑马灯电路课程设计6

跑马灯电路课程设计6
跑马灯电路课程设计6

淮北师范大学

硬件课程设计

跑马灯电路课程设计

学院计算机科学与技术

专业计算机科学与技术(非师范) 学生姓名徐龙龙

学号 20081202096 指导教师宋文

2010年12月15日星期三

摘要:

21世纪人类将全面进入信息化社会,对微电子信息技术和微电子VLSI基础技术将不断提出更高的发展要求,微电子技术仍将继续是21世纪若干年代中最为重要的和最有活力的高科技领域之一。而集成电路(IC)技术在微电子领域占有重要的地位。伴随着IC技术的发展,电子设计自动化(Electronic Design Automation EDA)己经逐渐成为重要设计手段,其广泛应用于模拟与数字电路系统等许多领域。

VHDL是广泛使用的设计输人硬件语言,可用于数字电路与系统的描述、模拟和自动设计。CPLD/FPGA(复杂可编程逻辑器件/现场可编程门阵列)为数字系统的设计带灵活性,兼有串!并行工作方式和高集成度!高速!高可靠性等明显的特点,CPLD/FPGA的时钟延迟可达纳秒级,结合其并行工作方式,在超高速领域和实时测控方面有非常广泛的应用。

关键字:

ATMEL的AT89C51、Quartus、VHDL语言、EDAD等等

目录

引言 (4)

1.总体方案设计 (5)

1.1EDA简介 (5)

1.2使用EDA设计方法过程 (5)

1.3常用EDA工具Quartus简介 (5)

2.VHDL语言应用 (7)

2.1设计要求定义 (7)

2.2用VHDL语言进行设计描述 (7)

2.3用VHDL仿真器对VHDL原代码进行功能仿真 (7)

2.4对VHDL原代码进行综合优化处理 (8)

2.5配置 (8)

3.跑马灯设计基本原理 (9)

4.跑马灯原理图 (10)

5.详细设计 (11)

6.课程设计体会 (15)

参考文献 (15)

致谢 (15)

引言:

在电子设计技术领域,可编程逻辑器件(如PLD, GAL)的应用,已有了很好的普及。这些器件为数字系统的设计带来极大的灵活性。由于这类器件可以通过软件编程而对其硬件的结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程、乃至设计观念。

电子设计自动化(EDA)是一种实现电子系统或电子产品自动化设计的技术,它与电子技术、微电子技术的发展密切相关,吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,是20世纪90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。EDA技术就是以计算机为工具,在EDA软件平台上,根据硬件描述语言HDL完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局线、仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。设计者的工作仅限于利用软件的方式来完成对系统硬件功能的描述,在EDA工具的帮助下和应用相应的FPGA/CPLD器件,就可以得到最后的设计结果。尽管目标系统是硬件,但整个设计和修改过程如同完成软件设计一样方便和高效。本次课题设计要求使用的是Altera公司的综合性PLD开发软件——Quartus II,通过VHDL语言仿真跑马灯的运行并且输出电路图,完成从设计输入到硬件配置的完整PLD的设计流程。

1、总体方案设计

1.1EDA简介

EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。

这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。

1.2使用EDA设计方法过程

1.2.1 分为前端设计(系统建模RTL 级描述)和后端设计(FPGAASIC)

统建模

1.2.2 仿真:包括功能仿真和时序仿真,主要验证系统功能的正确性

及时序特性。

1.2.3 IP复用

1.2.4 前端设计

1.2.5 系统描述:建立系统的数学模型。

1.2.6 功能描述:描述系统的行为或各子模块之间的数据流图。

1.2.7 逻辑设计:将系统功能结构化,通常以文本、原理图、逻辑图、

布尔表达式来表示设计结果。

1.3常用EDA工具Quartus简介

使用基于EDA技术的Quartus开发可以从根本上解决MCU所遇到的问题。与汇编相比,FPGA/CPLD的优势是多方面的和根本性的:

编程方式简便、先进:诸如Quartus的FPGA/CPLD产品作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。

高速:FPGA/CPLD的时钟延迟可达纳秒级,结合其并行工作方式,在超高速应用领域和实时测控方面有非常广阔的应用前景。

高可靠性:在高可靠应用领域,MCU的缺憾为FPGA/CPLD的应用留下了很大的用武之地。除了不存在MCU所特有的复位不可靠与PC可能跑飞等固有缺陷外,FPGA/CPLD的高可靠性还表现在几乎可将整个系统下载于同一芯片中,从而大大缩小了体积,易于管理和屏蔽。

开发工具和设计语言标准化,开发周期短:由于FPGA/CPLD的集成规模非常大,集成度可达数百万门。因此,FPGA/ CPLD的设计开发必须利用功能强大的EDA工具,通过符合国际标准的硬件描述语言(如VHDL或Verilog-HDL)来进行电子系统设计和产品开发。由于开发工具的通用性、设计语言的标准化以及设计过程几乎与所用的FPGA/ CPLD器件的硬件结构没有关系。

所以设计成功的各类逻辑功能块软件有很好的兼容性和可移植性,它几乎可用于任何型号的FPGA/ CPLD中,由此还可以知识产权的方式得到确认,并被注册成为所谓的IP芯片,从而使得片上系统的产品设计效率大幅度提高。由于相应的EDA软件功能完善而强大,仿真方式便捷而实时,开发过程形象而直观。功能强大,应用广阔。目前,FPGA/ CPLD可供选择范围很大,可根据不同的

应用选用不同容量的芯片。利用它们可实现几乎任何形式的数字电路或数字系

统的设计。随着这类器件的广泛应用和成本的大幅度下降。

2. VHDL语言应用

2.1设计要求定义

在从事设计进行编写VHDL代码之前,必须先对你的设计目的和要求有一个明确的认识。确定要实现的功能、对所需的信号建立时间、时钟/输出时间、最大系统工作频率、关键的路径等这些要求,要有一个明确的定义,然后对比设计,再选择适当的设计方式和相应的器件结构,进行设计的综合。

2.2用VHDL语言进行设计描述

1. 应决定设计方式,设计方式一般说来有三种:自顶向下设计,自底向上

设阶层的生成,而后一种方式将描述的电路当作单模块电路来进行的。

自顶向下的处理方式要求将你的设计划分成不同的功能元件,每个元件具有专门定义的输入和输出,并执行专门的逻辑功能。首先生成一个由各功能元件相互连接形成的顶层模块来做成一个网表,然后再设计其中的各个元件。而自底向上的处理方法正好相反。平坦式设计则是指所有功能元件均在同一层和同一图中详细进行的。

2 编写设计代码。编写VHDL语言的代码与编写其它计算机程序语言的代

码有很大的不同,你必须清醒地认识到你正在设计硬件,编写的VHDL代码必须能够综合到采用可编程逻辑器件来实现的数字逻辑之中。懂得EDA 工具中仿真软件和综合软件的大致工作过程,将有助于编写出优秀的代码。

2.3用VHDL仿真器对VHDL原代码进行功能仿真

对于大型设计,采用VHDL仿真软件对其进行仿真可以节省时间,可以在设计的早期阶段检测到设计中的错误,从而进行修正,以便尽可能地减少对设计

日程计划的影响。因为对于大型设计,其综合优化、配置往往要花费好几个小时,在综合之前对原代码仿真,就可以大大减少设计重复和修正错误的次数和时间。但对于小型设计,则往往不需要先对VHDL原代码进行仿真。

2.4对VHDL原代码进行综合优化处理

选择目标器件、输入约束条件后,VHDL综合优化软件工具将对VHDL原代码进行处理,产生一个优化了的网络表,并可以进行粗略的时序仿真。综合优化软件工具大致的处理过程如下:首先检测语法和语意错误;然后进行综合处理,对CPLD器件而言,将得到一组工艺专用逻辑方程,对FPGA器件而言,将得到一个工艺专用网表;最后进行优化处理,对CPLD的优化通常包括将逻辑化简为乘积项的最小和式,降低任何给定的达式所需的逻辑块输入数,这些方程进一步通过器件专用优化来实现资源配置。对FPGA的优化通常也需要用乘积项的和式来表达逻辑,方程系统可基于器件专用资源和驱动优化目标指引来实现因式分解,分解的因子可用来对实现的有效性进行评估,其准则可用来决定是对方程序系统进行不同的因式分解还是保持现有的因子。准则通常是指分享共同因子的能力,即可以被暂存,以便于和任何新生成的因子相比较。

2.5配置

将综合优化处理后得到的优化了的网络表,安放到前面选定的CPLD或FPGA目标器件之中。

3.跑马灯设计基本原理

一个简单的跑马灯的显示情况如图3-1所示,图中的每一个小方格代表一个发光二极管,黑色代表相应位置的发光二极管被点亮,白色的空格表示未被点亮。图3-1所示为从时刻1到时刻4这段时间LED点阵变化的情况,也就是每一个时间片,“+”向左移动一个位置,因此如果有11个类似的时刻,看上去就是“+”从右边移入左边移出,有从而产生跑马灯的效果。

图3-1

4.跑马灯原理图

5.详细设计

在编程时需要重点注意的是克服FPGA/CPLD设计方法的局限性。这主要体现在以下几点:

FPGA/CPLD设计软件一般需要对电路进行逻辑综合优化((Logic段Synthesis & Optimization),以得到易于实现的结果,因此,最终设计和原始设计之间在逻辑实现和时延方面具有一定的差异。从而使传统设计方法中经常采用的一些电路形式(特别是一些异步时序电路)在FPGA/CPLD设计方法中并不适用。这就要求设计人员更加了解FPGA/CPLD设计软件的特点,才能得到优化的设计。

FPGA一般采用查找表(LUT)结构(Xilinx), AND-OR结构(Altera)或多路选择器结构(Actel),这些结构的优点是可编程性,缺点是时延过大,造成原始设计中同步信号之间发生时序偏移。同时,如果电路较大,需要经过划分才能实现,由于引出端的延迟时间,更加大了延迟时间和时序偏移。时延问题是ASIC设计当中常见的问题。要精确地控制电路的时延是非常困难的,特别是在像FPGA/CPLD 这样的可编程逻辑当中。

FPGA/CPLD的容量和I/O数目都是有限的,因此,一个较大的电路,需经逻辑划分((Logic Partition)才能用多个FPGA/CPLD芯片实现,划分算法的优劣直接影响设计的性能。

由于目标系统的PCB板的修改代价很高,用户一般希望能够在固定的引脚分配的前提下对电路进行修改。但在芯片利用率提高,或者芯片I/O引出端很多的情况下,微小的修改往往会降低芯片的流通率。

本例的具体操作步骤如下:

1.运行Quartus,选择File,新建名为“seg_test”的Project,建立VHDL格式

的文件,在编辑器中键入一下代码:

library ieee;

use ieee。std_logic_1164。all;

use ieee。std_logic_unsigned。all;

entity seg_test is

port(clk:in std_logic;--时钟信号

rst:in std_logic;--清零

sele:out std_logic_vector(3 downto 0);--数码管位选端

data:out std_logic_vector(7 downto 0);--数码管数据线

led:out std_logic_vector(7 downto 0));--LED数据线

end;

architecture one of seg_test is

signal clk_cnt:integer range 0 to 25000000;

signal clk_tmp:std_logic;

signal seg_cnt:integer range 0 to 15;

constant m:integer:=24999999;

begin

sele<="0000";--四位全亮

--以下为任意分频部分

process(clk)

begin

if clk'event and clk='1' then

if clk_cnt=m then

clk_tmp<=not clk_tmp;

clk_cnt<=0;

else

clk_cnt<=clk_cnt+1;

end if;

end if;

end process;

process(clk_tmp,rst)

begin

if rst='0' then seg_cnt<=0;

else

if clk_tmp'event and clk_tmp='1' then

seg_cnt<=seg_cnt+1;

end if;

end if;

end process;

process(seg_cnt)

begin

case seg_cnt is

when 0=>data<="00101000";led<="00000001"; when 1=>data<="11101011";led<="00000010"; when 2=>data<="00110010";led<="00000100"; when 3=>data<="10100010";led<="00001000";

when 4=>data<="11100001";led<="00010000";

when 5=>data<="10100100";led<="00100000";

when 6=>data<="00100100";led<="01000000";

when 7=>data<="11101010";led<="10000000";

when 8=>data<="00100000";led<="01010101";

when 9=>data<="10100000";led<="10101010";

when 10=>data<="01100000";led<="01000000";

when 11=>data<="00100101";led<="00100000";

when 12=>data<="00111100";led<="00010000";

when 13=>data<="00100011";led<="00001000";

when 14=>data<="00110100";led<="00000100";

when 15=>data<="01110100";led<="00000010";

when others=>null;

end case;

end process;

end;

在Quartus中运行RTL Veiwer,可以测试逻辑电路的运行情况

以时钟震荡周期为例,设置时间为10ms,显示波形如下:

其他数值仿真结果截图:

6.课程设计体会

通过此次课程设计和程序的实现,以及运用网络和其他书籍查询不曾学到的知识,让我有了灵活使用知识的机会。同时在回顾以往学习汇编语言、单片机基础知识和C语言的基础上,进一步学习了VHDL。

之前对FPGA和CPLD的了解,更多的只是限定于单片机,现在觉得VHDL的确方便又神奇,言简意赅用三两句话就实现了“复杂”的硬件功能,而且硬件syntax和structure都很清晰,这样设计也不再是冷冰冰的,设计电路板子使用也不算过于复杂,在熟悉C语言的条件下,能够比较容易地理解程序的表达。

VHDL这么多年来不断完善和进化更能体现它在EDA中的地位,第一,它结构非常清晰,第二,类似的语言就只有verilog HDL,再加上都有丰富的接口,以及如Quartus的强大软件支持,这些都更能激发我学习VHDL的兴趣。

参考文献

[1] 胡振华,《VHDL与FPGA设计》,北京,中国铁道出版社,2000;

[2] 刘昌华,《数字逻辑EDA设计与实践-- QuartusⅡ》,北京,国防工业出

版社,2005;

[3] 王振红,《VHDL数字电路设计与应用实践教程》,北京,机械工业出版社,

2003;

[4] 何立民,《单片机高级教程—原理与应用》北京,北京航空航天大学出版

社,2000

致谢

感谢宋文老师的精心指导,通过两周的课程设计过程,让我学到了很多的东西。在接下来的日子里,我会更加在努力。

拆字程序 Org 0000h Mov A , 2000H Add A ,#F0H MOV 2001H ,A MOV A ,2000H ADD A , #0FH MOV 2002H , A MOV A , 2001H ADD A , 2002H END 拆分BCD 码 ? *************************************************************************** ;此程序是用单片机的p1口接八个led灯作跑马灯试验,八个led依次亮了又熄灭,形成漂亮;的跑马灯。本人已经试验成功。 ;单片机教程网https://www.360docs.net/doc/ed18185490.html, 原创

;该8路单片机跑马灯程序代码简单,电路也容易搭建,只需把led接在p1口上就可以了,希望大家能试验成功顺利的完成跑马灯报告 ;*************************************************************************** org 0000h loop0:cjne r0 ,#01h,rel,loop0 ;判断开关打开情况 ajmp start;跳转到程序开始 org 0030h;定义起始汇编地址 start: mov a,#0ffh ; clr c ; mov r2,#08h ;循环八次。 loop: rlc a ;带进位左移。 mov p1,a ;此时led灯开始有反映了。 call delay ;延时 djnz r2,loop ;循环(djnz条件判断) mov r2,#07h ; loop1: rrc a ;带进位右移 mov p1,a ;此时led灯开始有反映了。 call delay ; djnz r2,loop1 ;反复循环 jmp start ;回到程序的开头 delay: mov r3,#20 ;延时子程序 d1: mov r4,#20 d2: mov r5,#248 djnz r5,$ djnz r4,d2 ```````````````````````````````````````````````---------3路单片机跑马灯程序---------------------------------------

数字电路课程设计报告设计课题:跑马灯 专业班级:12电信2班 学生姓名:刘鹏 学号:120802084 指导教师:曾祥志 设计时间:2016.4-2016.5

目录 1 设计要求 (2) 1.1 设计规范 (2) 2 设计方案 (2) 2.1题目分析 (2) 2.2 整体构思 (2) 3 元件说明 (3) 3.1 元件说明 (3) 3.2电路原理图 (3) 4 安装与调试 (6) 5 心得体会........................... ............. (7) 6参考文献......................................... .. (7) 7附录 (8)

1 设计任务与要求 1.1 设计规范 (1)、根据技术指标要求确定电路形式,分析工作原理,计算元件参数。 (2)、安装调试所设计的电路,使之达到设计要求。 (3)、记录实验结果。 (4)、撰写设计报告。 设计要求 (1)实现10灯循环点亮。 (2) 红绿灯各5盏。 (3)实现红绿灯流水交替显示。 2设计方案 2.1题目分析 我们设计的跑马灯实际上是主要使用一个555芯片产生脉冲给到,CD4017芯片对10个LED进行控制,产生流水交替的效果。形成跑马灯。 2.2 整体构思 拟定系统方案框图,画出系统框图中每框的名称、信号的流向,各框图间的接口,使用电路设计软件画出原理图。 3. 元件说明 3.1元件说明 555功能:555 的功能主要由两个比较器决定。两个比较器的输出电压控制RS 触发器和放电管的状态。在电源与地之间加上电压,当5 脚悬空时,则电压比较器C1 的同相输入端的电压为2VCC /3,C2 的反相输入端的电压为VCC /3。若触发输入端TR 的电压小于VCC /3,则比较器C2 的输

信息与电气工程学院 《计算机组成原理》课程设计报告

一、课程设计的目的 《计算机组成原理》课程设计是与课程配套开设的实践环节。通过本课程设计,使学生进一步的理解计算机组成原理课程讲授的相关内容,包括计算机的各大部件及工作原理,计算机对机器语言的支持和理解方法,计算机整机工作原理和控制方法,以及CU设计的基本方法等等,进一步巩固所学的理论知识,提高运用所学知识分析和解决实际问题的能力;锻炼计算机硬件的设计能力、调试能力;培养严谨的科学实验作风、良好的工程素质及团队协作精神,为今后的工作打下基础。 二、课程设计的内容 基于DAIS-CMH+实验台,设计并实现一个能够支持5至10条机器指令的微程序结构CU,并利用该指令系统的指令编写机器指令程序,通过调试观察模型机执行机器指令程序的过程和结构,验证CU设计的正确性。 三、课程设计的要求 (1)认真阅读模型机设计说明,了解设计内容,做好设计准备。 (2)完成模型机的硬件电路连接,绘制硬件结构框图。 (3)完成指令的微操作序列分析,画出微程序流程图,根据微指令格式,填写码点,编写微程序,完成微程序结构的CU设计。 (4)设计并编写机器指令测试程序。 (5)能够熟练的运用调试方法,修正微程序设计中存在的问题,验证机器指令执行的正确性。 (6)根据设计的实施过程,认真完成课程设计报告。 四、模型机设计总结 4.1 硬件结构框图与主要硬件模块说明

图1 实验台硬件布局图 ①缓冲输入模块: 控制信号 SW-B,控制输入信号从开关部件输入到总线。 注意:总线没有锁存能力,如果该信号关闭,则数据立刻丢失,总线上数据变为FFH。 ②地址总线模块:控制信号LDAR,控制数据(地址信号)从总线打入地址寄存器(AR)。 ③内存模块:控制信号 WR,内存的读/写控制信号,配合控制信号CE,内存的片选信号,对内存进行读/写操作。CE = 1,WR = 1,进行内存写操作;CE = 1, WR = 0, 进行内存读操作。 ④锁存输出模块:控制信号 LDED,控制数据从总线打入输出模块的锁存器,通过LED灯进行显示。 ⑤寄存器组:两组控制信号,控制数据从总线输入Ri的控制信号- LDR0,LDR1和LDR2;控制数据从寄存器Ri送到总线上的控制信号R0-B,R1-B,R2-B。 ⑥数据总线模块,这个模块没有控制信号,就是个显示模块,显示当前总线上的数据情况。

课程设计报告 课题名称基于AT89S51的跑马灯设计 系别机电系 专业 班级 学号 学生姓名 指导教师 完成日期2010年月 教务处制 基于AT89S51的跑马灯设计 一、设计任务与要求 1.设计任务 选择采用AT89S51、74LS245、ULN2803、LED等器件,使用汇编语言实现各种跑马灯动态显示效果设计。 2.设计要求 实现16个LED的全亮、全灭、交错显示、流水灯显示等。可结合灯的排布以及程序设计实现各种跑马灯动态显示效果。三个输入按键,按键S2时,LED 灯亮点依次流动;按键S3时,依次点亮LED灯;按键S4时,LED灯交错点亮。 3.设计目的 通过本课程设计掌握单片机系统设计思路和基本步骤;掌握LED驱动电路、延时程序和按键处理程序设计。能熟练使用Wave6000软件、编程器或下载线。熟悉Keil、PROTEUS、Protel99se等相关软件的使用。 二、方案设计与论证 在日常生活中,我们总是花样百出的流水灯光,随着电子技术的飞速发展,人们对灯的花样要求也就更多,如全亮、全灭、交错显示、流水灯显示等。因此,跑马灯得到了广泛的应用。 一个由单片机控制的较简单的数字钟由电源电路、控制电路、驱动电路、显示电路4部分组成。

1. 控制电路 控制电路时整个电路的核心,主要由单片机 来完成。AT89S51单片机的管脚图如图(1)所示。 单片机执行指令是在时钟脉冲控制下进行的,因 此,单片机必须外接振荡器构成时钟电路才能正 常工作。另外,还应该在单片机的RES端外接电 阻电容构成复位电路,当单片机运行错误时可以 给一个复位信号使其复位。 单片机的对接口电路的控制是由软件向单片 机的I/O口(即P0~P3口)来实现的。AT89S51 单片机内部由两个定时/计数器,可以用其中一个 定时/计数器来对时间进行计数,而另一个可以对 显示器的显示延时进行定时并通过中断把相应的 数据通过I/O 口送给显示器显示。同时,通过对图1 A T89S51管脚图 外部按键的状态判断来进行时间的调整。 2. 显示电路 作为显示电路,采用16个LED灯来进行显示,实现全亮、全灭、交错显示、流水灯显示等。 3. 驱动电路 由于单片机的I/O口输出电流比较弱,不够驱动一位LED数码管,因此,必须在I/O 口和LED数码管之间接一驱动器和限流电阻来驱动LED数码管。 4. 电源电路 由于外部的干扰如电压、电流的波动可能造成直流电源的不稳定,因此,可在电源两端接上滤波器来降低外部干扰对电源造成的影响。 三、单元电路设计 1.时钟电路 单片机执行指令是在时钟脉冲控制下进行的,因此时钟信号时单片机的基本工作条件。可以通过测量第30脚ALE是否有输出时钟脉冲的六分频信号来判断时钟信号是否正常。 时钟可以由内部和外部两种方式产生,本设计采用内部方式。如图(2)所示,在XTAL1和XTAL2引脚上外接定时元件。定时元件通常采用振荡器和电容组成的并联谐振电路。X1为振荡器,C1、C2为电容。振荡器的振荡频率主要取决于晶体,电容对振荡频率由微调作用。外接晶体振荡器时,电容值可选在30pF左右。 图2 内部时钟电路图3 电源滤波电路2.电源电路 如图(3)所示,为了提高电源的稳定,由两个电容并联连接电源两极构成电源滤波电路。C4电容值比较大,用于滤低频;C5容值比较小,用于滤高频。 3.复位电路 一个时钟周期为振荡周期的2倍,6个时钟周期构成一个机器周期,即12个时钟周期构成一个机器周期。在RES引脚上输入一个超过两个机器周期的高电平信号,单片机就可以复位。如时钟频率为12MHz,则有效的复位信号至少应保持2μs以上。 复位电路可以有两种方式:上电复位电路和外部按键复位电路。图(4)所示为单片机的上电复位电路。在上电瞬间,因为电容两端的电压不能突变,RST引脚上电位与Vcc相同。随着电容器充电过程的进行,RST引脚上的电位逐渐下降。只要适当选择C和R的数值,即可顺利实现复位操作。

单片机课程设计报告-跑马灯

武汉纺织大学 单 片 机 课 程 设 计 报 告 设计课题:跑马灯 指导教师:刘丰

姓名:颜珊曹坤 班级:应电092 一、设计任务 利用单片机制作让LED灯依次闪烁时间间隔为0.5S二次后时间加快为 0.2S并循环闪烁的跑马灯. 二、设计要求 (1)采用单片机STC89C52来控制,下载器由芯片MAX232来对程序的下载。 (2)LED灯的闪烁间隔时间为0.5S-0.25S-1S,每循环两圈更改闪烁速度。 (3)供电采用USB方口的方式。 三、方案设计与论证 跑马灯电路的组成方框图为: 四,主要元件介绍 (1)单片机STC89C52引脚介绍 stc89c52的内核和AT51系列单片机一样,故引脚也相同: 1~8:I/OP1口(P1.0~P1.7); 9:复位脚(RST/Vpd);

10~17:I/OP3口(P3.0=RXD,P3.1=TXD,P3.2=-INT0,P3.3=-INT1,P3.4=T0,P3.5=T1,P3.6=-WR,P3.7=-RD)主要是此引脚; 18、19:晶振(18=XTAL2,19=XTAL1);20:地(Vss); 21~28:I/OP2口(P2.0~P2.7); 29:-PSEN; 30:ALE/-PROG; 31:-EA/Vpp 32~39:I/OP0口(P0.7~P0.0); 40:+5V电源。 注:引脚功能前加“-”,说明其是低电平有效。如P3.2=-INT0。 (2)MAX232介绍 MAX232芯片是美信公司专门为电脑的RS-2 32标准串口设计的接口电路,使用+5v单电源供电。

装 … …订 ……线 基于FPGA的跑马灯电路的设计 一、实验目的 1、进一步熟悉MAXPLUS II、Multisim或QUARTUS II等电子开发工具的基本使用方法。 2、掌握使用移位寄存器、计数器、译码器等集成电路进行综合电路设计方法 3、运用图解法设计跑马灯电路,并进行电路仿真。 二、实验内容 实验题目:设计一个跑马灯电路。要求输出8个LED灯从左到右逐个点亮,然后再从右到左逐个点亮,循环。 首先根据题目要求设计一下电路的实现方法,利用加法计数器(74LS161)和74LS138(3-8译码器)可实现8个LED灯从左到右逐个点亮的单向循环,实际电路如下图: 而要完成实验的要求,需将计数器74161的输出信号变为000到111的加计数,再由111到000的减计数,然后循环。 实现实验题目的方法有两种: 1、将计数器74LS161的输出端QA、QB、QC分别与QD异或,经过异或门输入到74LS138的A、B、C端,其数据符合题目的数据要求。可以实现8个LED灯从左到右逐个点亮,然后再从右到左逐个点亮,循环。但第1个灯和第8个灯显示的时间长度是其它灯的2倍。 Electronics Workbench 实验图1 2、使用可逆计数器74LS191来完成电路的计数部分,利用可逆计数器74LS191的加减计数控制端 U/D′,U/D′输入低电平时计数器为加法计数器,U/D′输入高电平时计数器为减法计数器。 当计数器74LS191加计数到7(0111)时,通过与门取出信号,经过或门使D 触发器输出由原来的低

装 … …订 ……线电平反转为高电平,通过加减控制端U/D′,使计数器由加法计数变为减法计数。当计数器74LS191减计数到0(0000)时,借位输出端产生信号,经过或门使D触发器输出由原来的高电平反转为低电平,通过加减控制端U/D′,使计数器由减法计数变为加法计数。计数器输出信号为0000到0111的加计数,再由0111到0000的减计数,不断循环。再经过3—8译码器使8个LED灯从左到右逐个点亮,然后再从右到左逐个点亮,循环。 Electronics Workbench 实验图2 本次实验使用软件MAXPLUS II、Multisim或QUARTUS II皆可。但要求至少要使用2种软件实现电路设计。 三、实验步骤 提前进行电路设计。要求在实验报告中写出详细的设计过程,包括设计思路,和预计输出结果,画出逻辑电路图,实际应使用的芯片。

单片机原理及应用课程设计 ( 2013 年至2014学年度第 2 学期) 题 目: 可以调控的走马灯 学 生 姓 名: 院(系、部): 机电工程学院 指 导 教 师: 设 计 时 间: 2014.6.9—2014.6.13 Hebei Normal University of Science & Technology 专业: 电子信息工程 学号: 0414110102

可以调控的走马灯 摘要:单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快,而51单片机是各单片机中最为典型和最有代表性的一种。本课程设计是基于MCS51系列单片机所设计的,用AT89S52芯片控制跑马灯(流水灯),整个系统有8种跑马灯模式可以选择,K1是选择模式键,并将相应的模式在LED七段数码管中显示出来,K2可以对跑马灯的速度进行加速,K3可以对跑马灯的速度进行减速。整个系统可以实现对跑马灯模式的多层控制,还可以进行加减速。 关键词:MCS51、跑马灯、加减速、七段数码管 一、概论 1.1 单片机基础知识 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲,一块芯片就成了一台计算机。 单片机具有体积小、功能强、应用面广等优点,目前正以前所未见的速度取代着传统电子线路构成的经典系统,蚕食着传统数字电路与模拟电路固有的领地。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机了解计算机原理与结构的最佳选择。 现在,这种单片机的使用领域已十分广泛。彩电、冰箱、空调、录像机、VCD、遥控器、游戏机、电饭煲等无处不见单片机的影子,单片机早已深深地融入我们每个人的生活之中。单片机能大大地提高这些产品的智能性,易用性及节能性等主要性能指标,给我们的生活带来舒适和方便的同时,在工农业生产上也极大地提高了生产效率和产品质量。单片机按用途大体上可分为两类,一种是通用型单片机,另一种是专用型单片机。 MCS-51单片机是美国INTEL公司于1980年推出的产品,与MCS- 48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍与MSC-51单片机作为代表进行理论基础学习。MCS-51系列单片机主要包括8031、8051和8751等通用产品。 1.2 单片机的发展趋势 单片机现在可以说是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供了广阔的天地。现在常规的

跑马灯分析如下: 跑马灯电路采用74LS194为核心控制彩灯左移、右移及闪烁功能,围绕74LS194的S1、S0工作的控制方式,S1、S0需要自动周期性的变化,为了实现自动模式转换,设计一个状态计数器,控制彩灯模式转换,利用74153双四选一电路,将S1、S0的状态置入74194,完成周期性地读取。 本设计方案的关键是S1、S0状态信息如何传送给74194,S1、S0状态信息要与整个彩灯控制电路相匹配,不同的S1、S0状态,送入74LS194数据输入端的数据不同,利用74LS153作为数据选通,连接到74LS194数据输入端,不同的工作状态,选通数据输出不同,这是设计的主要关键点之一。 电路中,利用74161完成状态计数工作,每8个时钟脉冲,状态计数器完成加一操作,完成移位方式控制,利用74194完成左移或右移及闪烁功能功能,利用74153完成左右移数据输入选通控制。

根据任务要求列出自动循环状态和74194移位控制工作方式表2。 表2 X/0表示电路设计过程中,尽管状态表中取任意态,但在实际电路连接中,取低电平。 彩灯控制器完成左移、右移、闪烁及同时左右移,只需要4种状态,故状态计数器完成模4计数即可。移位寄存器的工作状态由方式控制字S1、S0决定,查阅74LS194数据手册,确定S1、S0工作方式。利用表.2,分析S1、S0的状态。因为彩灯是八路输出,用两片74LS194,其中高位标号为74194B,低位为74194A,所以高位的74LS194工作方式标称为BS1、BS0,低位为AS1、AS0。将BS1、BS0、AS1、AS0放在一起,用74153将数据状态选通输出即可 从表格中可以看出,状态计数器描述计数状态,移位寄存器完成左移、右移、闪烁、左右同时移动功能,且自动循环进行。

河北北方学院 虚拟仪器原理与应用 课程设计 课程设计名称:基于labview的计算器设计 专业班级:电子信息工程技术3班 学号: 3 学生姓名:马洪印 成绩: 签名: 2016年12月22日 一、引言: 随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。

彩灯由于其丰富的灯光色彩,低廉的造价以及控制简単等特点而得到了广泛的应用,用彩灯来装饰已经成为一种时尚。 本次课程设计是基于LabVIEW虚拟仪器系统开发与实践等原理与技术而设计的跑马灯。虚拟仪器的起源可以追溯到20世纪70年代,“虚拟”的含义主要是强调软件在仪器中的作用,体现了虚拟仪器与主要通过硬件实现各种功能的传统仪器的不同。由于虚拟仪器结构形式的多样性和适用领域的广泛性,目前对于虚拟仪器的概念还没有统一的定义。美国国家仪器公司(National Instrunents Corpotion ,NI)认为,虚拟仪器是由计算机硬件资源、模块化仪器硬件和用于数据分析、过程通信及图形用户界面的软件组成的测控系统,是一种计算机操纵的模块化仪器系统。 过去40年的时间里,美国国家仪器公司(NI)通过虚拟仪器技术为测试测量和自动化领域带来了一场革新:虚拟仪器技术把现成即用的商业技术与创新的软、硬件平台相集成,从而为嵌入式设计、工业控制以及测试和测量提供了一种独特的解决方案。使用虚拟仪器技术,工程师可以利用图形化开发软件方便、高效的创建完全自定义的解决方案,以满足灵活多变的需求趋势。 本次设计的跑马灯是利用虚拟仪器技术而完成的,跑马灯是一种生活中比较常见的装饰,本文主要通过labv i ew来设计了一个相对简单的对跑马灯的控制,实現了其有规律的亮灭,带来一定的观赏效果。 本文主要是实现了跑马灯的单个流水闪烁、双路同步流水闪烁、四路同步流水闪烁、全体同步闪烁,以此循环。本程序并控制闪烁的间隔时间,使其运行更具可观性。 二、前面板设计: 前面板是LabVIEW的图形用户界面,在LabVIEW环境中可以对这些对象的外观和属性进行设计,LabVIEW提供了非常丰富的界面对象,可以方便地设计出生动、直观、操作方便的用户界面。本系统中前面板显示程序的输入和输出对象,即,控件和显示器。本程序中控件主要是滑动杆,显示器主要是文本显示。 在前面板设计过程中主要设计了12个显示灯, 并让其方形围成一圈,显示程序通行结果。前面板还包括一个文本显示控件和水平指针滑动杆,文本显示控件用于显示滑动杆的刻度值即跑马灯的延时,通过改变滑动杆刻度调节跑马灯每

微型计算机技术课程设计 指导教师:赵立辉李鹏 学生班级:计科10802 学生姓名:陈东 学号:200803939 班内序号:11

目录1.……………………………………………………….课设目的2.………………………………………………………课设内容3.…………………………………………问题分析及设计思路4.…………………………………………电路设计及功能说明5.………………………………硬件原理图及接口芯片的介绍6.……………………………………程序流程图及相关源程序7. …………………………………………………实验结果及分析8.…………………………………………………………课设总结

一.课设目的 1.通过本设计,使学生综合运用《微型计算机技术》、《汇编语言程序设计》以及电子技术等课程的内容,为以后从事计算机检测与控制工作奠定一定的基础。 2.主要掌握接口芯片8253、8255A等可编程器件的使用,掌握译码器74LS138的使用。 3.学会用汇编语言编写一个较完整的实用程序。 4.掌握微型计算机技术应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等步骤。二.课设内容 1.功能要求: 采用8253设计一个1s定时电路,将定时信号接到8255的PC 口的某一位,编程查询该位的状态,若为低电平,则从8255A的PA口输出不同的值使和PA口相接的发光二极管依次变化,实现走马灯的效果。按下Esc键结束程序。 2.设计所需器材及介绍 ①一块实验面包板(内含时钟信号1MHz或2MHz)。 ②可编程芯片8253、8255A、74LS138、74LS245各一片。74LS06两片,发光二极管8个,排电阻一个。 ③导线若干。 ④示波器、万用表、常用工具等共用(从实验室现借现还)

电子系统综合设计报告 学号 201009120229 姓名李文海年级专业 2010级电子信息工程(二) 指导 教师刘怀强 学院理学院 走马灯实验论文--《嵌入式系统技术》 1、实验目的 1、学会dp-51pro实验仪监控程序下载、动态调试等联机调试功能的使用; 2、理解和学会单片机并口的作为通用i/o的使用; 3、理解和学会单片机外部中断的使用; 4、了解单片机定时器/计数器的应用。 2、实验设备 z pc 机、arm 仿真器、2440 实验箱、串口线。 3、实验内容 z 熟悉 arm 开发环境的建立。 z 使用 arm 汇编和 c 语言设置 gpio 口的相应寄存器。 z 编写跑马灯程序。 5、实验原理 走马灯实验是一个硬件实验,因此要求使用dp-51pro 单片机综合仿真实验仪进行硬件 仿真,首先要求先进行软件仿真,排除软件语法错误,保证关键程序段的正确。然后连接仿 真仪,下载监控程序,进行主机与实验箱联机仿真。 为了使单独编译的 c 语言程序和汇编程序之间能够相互调用,必须为子程序间的调用规 定一定的规则。atpcs ,即 arm , thumb 过程调用标准(arm/thumb procedure call standard),是 arm 程序和 thumb 程序中子程序调用的基本规则,它规定了一些子程序间调 用的基本规则,如子程序调用过程中的寄存器的使用规则,堆栈的使用规则,参数的传递规 则等。 下面结合实际介绍几种 atpcs 规则,如果读者想了解更多的规则,可以查看相关的书 籍。 1.基本 atpcs 基本 atpcs 规定了在子程序调用时的一些基本规则,包括下面 3 方面的内容: (1)各寄存器的使用规则及其相应的名称。 (2)数据栈的使用规则。 (3)参数传递的规则。 相对于其它类型的 atpcs,满足基本 atpcs 的程序的执行速度更快,所占用的内存更少。 但是它不能提供以下的支持: arm 程序和 thumb 程序相互调用,数据以及代码的位置无关 的支持,子程序的可重入性,数据栈检查的支持。 而派生的其他几种特定的 atpcs 就是在基本 atpcs 的基础上再添加其他的规则而形成 的。其目的就是提供上述的功能。 2.寄存器的使用规则 寄存器的使用必须满足下面的规则: (1) 子程序间通过寄存器 r0~r3 来传递参数。这时,寄存器 r0~r3 可以记作 a0~a3。 被调用的子程序在返回前无需恢复寄存器 r0~r3 的内容。 (2) 在子程序中,使用寄存器 r4~rll 来保存局部变量。这时,寄存器 r4~r11 可以记 作 v1~v8。如果在子程序中使用到了寄存器 v1~v8 中的某些寄存器,子程序进入时必须保

HDL数字系统课程设计报告书 目录 一、设计目的 (2) 二、设计思路 (2) 三、设计过程 (2) 3.1、系统方案论证 (2) 3.2、程序代码设计 (3) 四、系统调试与结果 (5) 五、主要元器件与设备 (9) 六、课程设计体会与建议 (9) 6.1、设计体会 (9) 6.2、设计建议 (10) 七、参考文献 (10)

论文摘要: 共16个LED灯,连成一排,实现几种灯的组合显示。通过这次对跑马灯控制电路的设计与制作,了解了设计电路的程序,也了解了关于跑马灯工作的基本原理与设计理念,首先要将一个程序分成几个模块,分别调试每一个模块,当每个模块均能正常工作时,其次再将其都组合在一起再次调试与仿真,最后将程序下载到Altera公司ACEXTM系列EPEK30QC208-2芯片,观察程序是否能控制硬件的实现。此外,本实验也可通过EDA软件Quartus6.0和modelSim SE 6.0实现。 关键词: HDL 数字系统跑马灯设计

一、设计目的 1、熟悉Verilog HDL程序编程。 2、掌握Altera公司ACEXTM系列EPEK30QC208-2芯片的使用方法。 3、熟悉Quartus II 6.0和Modesim SE 6.0软件的使用。 4、了解16个数码管的显示原理和方法。 二、设计思路 1、编写跑马灯设计程序。 2、定义LED灯引脚分配。 3、设计状态控制。 4、下载到EPEK30QC208-2芯片上显示。 三、设计过程 3.1、系统方案论证 16位LED跑马灯设计框图如图1所示:

图1 LED跑马灯设计框图 3.2、程序代码设计 module paomadeng(rst,clk,sel,led); //端口定义,参数列表 input rst,clk; //rst复位,clk为4Hz的时钟信号input[1:0] sel; //sel 状态选择端口 output[15:0] led; //led 跑马灯显示 reg[15:0] led; reg[15:0] led_r,led_r1; reg cnt1,dir; //cnt1控制状态2 led灯的亮次数 reg[3:0] cnt2; //cnt2控制状态2 led灯的亮次数 reg[2:0] cnt3; //cnt3控制状态2 led灯的亮次数 always@(posedge clk) begin if(rst) begin cnt1<=0;cnt2<=0;cnt3<=0;dir<=0;end else case(sel) // LED按奇数,偶数依次显示 2'b00: begin led_r=16'b0101010101010101; if(cnt1==0)led<=led_r; else led<=led_r<<1; cnt1<=cnt1+1; end // LED顺序依次显示,顺序依次熄灭 2'b01: begin if(!dir) begin if(cnt2==0) begin led_r=16'b0000000000000001;led<=led_r;end else begin led<=(led<<1)+led_r;end if(cnt2==15) begin dir<=~dir;end

闪烁灯跑马灯控制系统 河南工院

第1 章概述 1.1设计的目的及意义?????????????????????..3 1.2单片机的概述与应用????????????????????..3 第2 章设计原理??????????.. ??????????????4 2.1设计要求与基本思路??????.??????????????4 2.2设计方案选择?????.??????????????????5 2.3设计框图??????????. ?????????????5 第3 章硬件电路设计???????.. ??????????????7 3.1时钟电路???????????????????????.?.7 3.2扩展电路????????????????????????..8 第4 章程序设计???????????????????????9 4.1程序设计思路与流程图??..???????????????? (9) 4.2程序清单与代码???????????????????.?..?11 4.3程序调试??????????????????????.?.?12 第 5 章原件明细表????????????????????13 总结???????????????????????????????14 参考文献15

第1 章概论 1.1设计的目的与意义 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。 竞争日益剧烈的今天,当代大学生不仅需要扎实的理论知识,还需要过硬的动手能力。作为自动化专业的学生,更应该熟练掌握各种电路编辑软件,作为专业必需的技能更要及时地对这一类软件的更新版本进行学习,其日趋强大的功能是对我们专业技能的补充。 闪烁灯控制系统是利用8051单片机的P1控制的8 个发光二极管。可实现从右到左闪烁一次,再从左到右闪烁一次,每次亮灭1 秒,如此循环,紧急情况下,控制P3.1 进行报警2S停止。 闪烁灯控制系统是简易的单片机控制系统,作为课程设计课题,通过实际程序设计和调试,逐步掌握块化程序设计方法和调试技术,通过课程设计,掌握一单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法,通过完成一个包括电路设计和程序设计开发的完整过程,了解开发单片机应用系统的全过程,通过本次设计对单片机应用上有一个初步的了解,增强自我的动手、动脑能力,以及发现问题,解决问题,总计经验教训的能力,为以后走向工作岗位,以及更高更远的发展打下坚实的基础 1.2单片机概述与应用 单片机是将CPU、存储器、定时/计数器以及I/O 接口等主要部件集成在一块芯片上的微型计算机。单片机是单片微机(Single Chip Microcomputer)的简称,但准确反映单片机本质的名称应是微控制器。目前国外已经普遍称之为微控制器。鉴于他完全作嵌入式应用,故又称为嵌入式微控制器 单片微机从体系结构到指令系统都是按照嵌入式应用特点专门设计的,它能最好地满足面对控制对象,应用系统的嵌入、现场的可靠运行以及非凡的控制品质等要求。 自从20世纪70 年代推出单片机以来,作为微型计算机的一个分支,单片机经过30 多年的发展,已经在各行各业得到了广泛的应用,由于单片机具有可靠性高、体积小、干扰能力强、能在恶劣的环境下工作等特点,具有较高的性价比,因此广泛应用于工业控制、仪器仪表智能化,机电一体化、家用电器等 (1)工业控制:工业设备如机床、锅炉、供水系统、生产自动化、自动报警系统。 (2)智能设备:用单片机改造普通仪器如:仪表、读卡器、医疗器械。 (3)家用电器:如高档洗衣机、电冰箱、微波炉、电视、音响、手机、空调器。

(交通运输)单片机整套实验及程序(交通灯_跑马灯 等)

实验1 跑马灯实验 一、实验目的 ●初步学会Proteus ISIS和uVision2单片机集成开发环境的使用; ●初步掌握采用汇编语言与C语言开发单片机系统的程序结构; ●掌握80C51单片机通用I/O口的使用; ●掌握单片机内部定时/计数器的使用及编程方法以及中断处理程序的编写方法。 二、实验设备及器件 ●硬件:PC机,HNIST-1型单片机实验系统 ●软件:Proteus ISIS单片机仿真环境,uVision2单片机集成开发环境 三、实验内容 ●编写一段程序,采用P1口作为控制端口,使与P1口相接的四个发光二极管(D1、D2、D3、D4)按照一定的方式点亮。如点亮方式为:先点亮D1,延时一段时间,再顺序点亮D2……D4,然后又是D4……D1,同时只能有一个灯亮;然后每隔一段时间一次使相邻两个灯亮,三个灯亮,四个灯亮,最后闪烁三次,接着循环变化。 ●基于Proteus ISIS仿真环境完成上述功能的仿真。 ●基于uVision2单片机集成开发环境与硬件平台完成程序的脱机运行。 四、实验原理图 图3.1 跑马灯实验电路原理图 电路原理图如上图3.1所示,AT89S52的P1.0~P1.3控制4个发光二极管,发光二极管按照一定次序发光,相邻发光二极管的发光时间间隔可以通过定时器控制,

还可以通过软件延时实现。 五、软件流程图与参考程序 ●主程序流程图如下: ●参考程序

#include #include #define uchar unsigned char #define uint unsigned int uchar aa,num,speed,flag; uchar code table[]={0x0e,0x0d,0x0b,0x07}; uchar code table1[]={0x0a,0x05,0x09,0x06}; uchar codetable2[]={0x0c,0x09,0x03,0x08,0x01,0x0e,0x0c,0x08,0x00}; void delay(uint z)//延时函数 { uint x; uchar y; for(x=z;x>0;x--) for(y=200;y>0;y--); } void init()//条件初始化函数 { flag=0; speed=10;//控制跑马灯流水速度 TMOD=0x01;//中断方式 TH0=(65535-50000)/256; TL0=(65536-50000)%256;//初值

嵌入式系统 课程设计报告 学部 专业 学号 姓名 指导教师 日期 一、实验内容

设计msp430单片机程序并焊接电路板,利用msp430单片机芯片实现对跑马灯、按键识别及数码显示这三大模块的控制 二、实验目的 1.熟悉电路原理图,了解单片机芯片与各大模块间的控制关系 2.增强看图和动手设计能力,为将来从事这个专业及相关知识奠定基础 3.在焊接的同时,理解源程序是如何实现相应功能的 三、实验设备及器材清单 实验设备:电烙铁、烙铁架、尖嘴钳、斜口钳、镊子、万用表等 器材清单: 模块元器件名称单位(个/块) 电源 78051 AMS11171 电容10V100u3 二极管IN40071 104电容2 晶振32768Hz1 33电容2 8MHz2跑马灯发光二极管8 100欧电阻8 74LS5731 104电容2 键盘按键8 10K电阻9 104电容3 103电容1 HD74HC212数码显示7段数码显示(共阴极)1 24脚插座1 74HC1641 14脚插座1复位电路二极管IN40071 电容10V100u1 按键1 10K电阻1 14脚下载口1电路板1 MSP430F149芯片及插座1 四、硬件电路框图

五、程序清单 跑马灯程序#include #define uchar unsigned char #define uint unsigned int int main( void ) { void delay( ); WDTCTL = WDTPW + WDTHOLD; unsigned char i=0,j=0; P2DIR=0XFF; P2SEL=0X00; while(1) { for(i=0;i<10;i++) { P2OUT=0XFF; delay(50); P2OUT=0X00; delay(50); } for(j=0;j<10;j++) { P2OUT=0X55;

摘要 单片机技术是一门不可或缺的技术,对我们将来的工作以及生活和学习都有很密切的联系。近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。 本设计使用AT89C52芯片,利用P0的8个端口连接8个发光二极管,P1的8个端口连接8个发光二极管,通过P0.0到P0.7的值和P1.0到P1.7的值控制“跑马灯”的亮灭,以达到显示效果。设计的中断程序要对多个按键动作进行响应,灯光变换的花样有15种,用模式按钮切换。按下模式按钮键,程序将按十五种模式切换,每按一次模式按钮键,切换一次跑马灯模式,而加速按钮和减速按钮可以改变闪烁速度;最后一种模式为音乐模式,加速按钮可切换音乐。 在单片机运行时,可以在不同状态下让跑马灯显示不同的组合,作为单片机系统正常的指示。当单片机系统出现故障时,可以利用跑马灯显示当前的故障码,对故障做出诊断。此外,跑马灯在单片机的调试过程中也非常有用,可以在不同时候将需要的寄存器或关键变量的值显示在跑马灯上,提供需要的调试信息。 关键词:音乐跑马灯;AT89C52单片机;74LS245驱动芯片;LED发光二极管

1 设计概述 (1) 1.1设计目的 (1) 1.2设计作用 (1) 1.3设计要求 (1) 1.4系统设计框图 (1) 2元器件介绍 (3) 2.1AT89C52单片机 (3) 2.2驱动芯片74LS245 (3) 2.3其他元件及功能 (4) 3 硬件电路设计 (6) 3.1单片机最小系统 (6) 3.2LED显示部分 (7) 3.3按钮控制部分 (7) 3.4数码管显示电路 (8) 3.5蜂鸣器部分 (8) 3.6系统总电路图 (9) 4 软件设计 (10) 4.1 程序流程图 (10) 4.2 程序设计 (10) 5 结束语 (32) 参考文献 (33)

电子系统综合设计报告 学号201009120229 姓名李文海 年级专业2010级电子信息工程(二) 指导教师刘怀强 学院理学院

走马灯实验论文--《嵌入式系统技术》 1、实验目的 1、学会DP-51PRO实验仪监控程序下载、动态调试等联机调试功能的使用; 2、理解和学会单片机并口的作为通用I/O的使用; 3、理解和学会单片机外部中断的使用; 4、了解单片机定时器/计数器的应用。 2、实验设备 z PC 机、ARM 仿真器、2440 实验箱、串口线。 3、实验内容 z熟悉A RM 开发环境的建立。 z使用A RM 汇编和C语言设置G PIO 口的相应寄存器。 z编写跑马灯程序。 5、实验原理 走马灯实验是一个硬件实验,因此要求使用DP-51PRO 单片机综合仿真实验仪进行硬件仿真,首先要求先进行软件仿真,排除软件语法错误,保证关键程序段的正确。然后连接仿真仪,下载监控程序,进行主机与实验箱联机仿真。 为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序间的调用规定一定的规则。A TPCS ,即ARM ,Thumb 过程调用标准(ARM/Thumb Procedure Call Standard),是A RM 程序和T humb 程序中子程序调用的基本规则,它规定了一些子程序间调用的基本规则,如子程序调用过程中的寄存器的使用规则,堆栈的使用规则,参数的传递规则等。 下面结合实际介绍几种A TPCS 规则,如果读者想了解更多的规则,可以查看相关的书 籍。 1.基本A TPCS 基本A TPCS 规定了在子程序调用时的一些基本规则,包括下面3方面的内容: (1)各寄存器的使用规则及其相应的名称。 (2)数据栈的使用规则。 (3)参数传递的规则。 相对于其它类型的A TPCS,满足基本A TPCS 的程序的执行速度更快,所占用的内存更少。但是它不能提供以下的支持:ARM 程序和T humb 程序相互调用,数据以及代码的位置无关的支持,子程序的可重入性,数据栈检查的支持。 而派生的其他几种特定的A TPCS 就是在基本A TPCS 的基础上再添加其他的规则而形成的。其目的就是提供上述的功能。 2.寄存器的使用规则 寄存器的使用必须满足下面的规则:

光电信息学院 数字电路课程设计报告 课程名称:数字设计原理与实践 设计题目:跑马灯设计及仿真 专业:光电工程与光通信 学号:2905103032 2905402009 姓名:生艳梅周高翔

选课号:60 71 2011年06月08日 光电学院数字电路课程设计 任务名称:跑马灯的设计及仿真 专业:光电工程与光通信姓名:生艳梅周高翔 指导教师:周建华 (1)课程设计应达到的目的、任务及要求: 控制8 个LED 进行花式显示,设计4 种显示模式:S0,从左到右逐个点亮LED;S1,从右到左逐个点亮LED;S2,从两边到中间逐个点亮LED;S3,从中间到两边逐个点亮LED。4 种模式循环切换,复位键(rst)控制系统的运行与停止。跑马灯的状态转换图如图所示:

(2)设计思路 要达到跑马灯的灯依次亮的效果。我们只需要将跑马灯的8 盏灯用8 位二进制数表示,1 代表灯亮,0 代表灯灭,然后设计若干个状态,让clk 在上升沿处带动状态的改变。按照要求,初始状态是全灭,即00000000 然后由左往右依次亮,既:1000000 →11000000→11100000 →………依次类推。 (3)程序如下: module ledwalk(clk,rst,led); input clk,rst; output [7:0] led; reg [7:0] led; reg [24:0] count;

reg [4:0] state; wire clk; always @ (posedge clk,negedge rst) begin if(!rst) count<=0; else count=count+1; end always @ (posedge clk) begin :AA case(state) 5'b00000: led=8'b00000000; 5'b00001: led=8'b10000000; 5'b00010: led=8'b11000000; 5'b00011: led=8'b11100000; 5'b00100: led=8'b11110000; 5'b00101: led=8'b11111000; 5'b00110: led=8'b11111100; 5'b00111: led=8'b11111110; 5'b01000: led=8'b11111111; 5'b01001: led=8'b00000000;

相关文档
最新文档