专业课课程设计题目: 基于单片机的跑马灯控制器设计院系名称:电气工程学院专业班级:电气F1105 学生姓名:学号:20112391指导教师:邵教师职称:评语及成绩:指导教师:日期:目录1 课题简介 (3)1.1课题研究背景 (3)1.2 国内外研究现状 (4)1.3 本课题研究内容 (4)2 系统总体设计方案 (5)2.1 设计方案论证 (5)2.2 系统结构及主要参数确定 (5)3 软硬件电路设计与调试 (8)3.1 硬件电路设计 (8)3.1.1 基本原理 (9)3.2 软件电路设计 (10)3.3 软硬件电路调试 (13)3.4 调试结果分析 (13)结论 (13)参考文献 (14)附录 (15)绪论单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。
单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。
随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计有较大的发展。
因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机,以及程控玩具等等,这些都离不开单片机。
单片机最小系统是在以MCS-52单片机为基础上扩展,使其能更方便地运用于测试系统中,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被测试的技术指标,从而能够大大提高产品的质量和数量。
单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,称为在实时检测和自动控制领域中广泛应用的器件,在工业生产中称为必不可少的器件,尤其是在日常生活中发挥的作用也越来越大。
本毕业设计主要在STC89C52RC单片机上扩展I/O 口,复位电路,晶振电路,LED显示电路,数码管显示电路,蜂鸣器电路。
适合于我们学生用于单片机的学习掌握和一些各种科研立项等的需求。
因此,研究单片机最小系统有很大的实用意义。
1 课题简介1.1课题研究背景由于单片机技术在各个领域正得到越来越广泛的应用,世界上许多集成电路生产厂家相继推出了各种类型的单片机,在单片机家族的众多成员中MCS-52系列单片机以其优越的性能、成熟的技术及高可靠性和高性能价格比,迅速占领了工业测控和自动化工程应用的主要市场,成为国内单片机应用领域中的主流。
目前,可用于MCS-52系列单片机开发的硬件越来越多,与其配套的各类开发系统、各种软件也日趋完善,因此,可以极方便地利用现有资源,开发出用于不同目的的各类应用系统。
1.2 国内外研究现状单片机的技术进步反映在内部结构、功率消耗、外部电压等级以及制造工艺上。
在这几方面,较为典型地说明了数字单片机的水平。
在目前,用户对单片机的需要越来越多,但是,要求也越来越高。
在单片机应用中,可靠性是首要因素为了扩大单片机的应用范围和领域,提高单片机自身的可靠性是一种有效方法。
近年来,单片机的生产厂家在单片机设计上采用了各种提高可靠性的新技术:EFT(Ellectrical Fast Transient)技术,低噪声布线技术及驱动技术,采用低频时钟。
同时单片机在目前的发展形势下还表现出可靠性及应用越来越水平高和互联网连接,所集成的部件越来越多,功耗越来越低和模拟电路结合越来越多等发展趋势。
1.3 本课题研究内容本设计选择采用AT89C51单片机为核心。
AT89C51是一个低电压、高性能CMOS8位单片机带有K字节的可反复擦写的程序存储器。
和128字节的存取数据存储器RAM,这种器件采用ATMEL公司的高密度、不容易丢失存储技术生产,并且能够与MCS-51系列的单片机兼容。
片内含有8位中央处理器和闪烁存储单位,有较强的功能的AT89C51单片机能够被应用到控制领域中AT89C51提供以下的功能标准:4K字节闪烁存储器,128字节随机存取数据存储器,32个I/O口,2个16位定时/计数器,1个 5向量两级中断结构,1个串行通信口,片内振荡器和时钟电路。
另外,AT89C51还可以进行OHZ的静态逻辑操作,并支持两种软件的节电模式。
闲散方式停止中央处理器的工作,能够允许随机存取数据存储器、定时/计数器、串行通信口及中断系统继续工作。
掉电方式保存随机存取数据存储器中的内容,但振荡器停止工作并禁止其它所有部件的工作直到下一个复位。
选择采用AT89C51单片机为核心,使用简单的程序实现跑马灯显示效果设计。
2 系统总体设计方案2.1 设计方案论证单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。
对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路、按键输入、显示输出等。
单片机接口电路主要用来连接计算机和其它外部设备。
各功能模块的选择及论证如下:复位电路:由电容和电阻构成,由电路图并结合"电容电压不能突变"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位。
本设计中R=10K,C=10uF。
晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)同时也可取12MHz(产生精确的微秒级时歇,方便定时操作),因设计需要,本设计采用12M晶振。
单片机:一片AT89S51/52或其他51系列兼容单片机,本设计采用STC89C52RC。
接口电路:具有人机交互接口。
具有一定的可扩展性,单片机I/O口可方便地与其他电路板连接。
2.2 系统结构及主要参数确定数码管的接口有静态和动态两种接口。
静态接口为固定显示方式,无闪烁,其电路可采用一个并行口接一个数码管,数码管的公共端按共阳接VCC,本次课程设计由于所需数码管较多,故不可用些种方法接线。
这种接法占用接口多,仅能接少量数码管。
动态接口采用各数码管循环轮流显示的方法,当循环显示的频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出,另一个接口完成各数码管的轮流点亮,本设计采用此方法。
图2-2.1 可调控的跑马灯电路原理图AT89C51共有40条引脚,引脚排列如图2-2.2所示。
AT89C51主要特性如下: 1. 与MCS-51兼容。
2. 4K 字节可编程闪烁存储器。
3. 寿命:1000写/擦循环。
4. 数据保留时间为10年。
5. 全静态工作为OHz-24MHz 。
AT89C51按键控制复位晶振16只LED 显示数码管显示6. 三级程序存储器锁定。
7. 128乘18位内部RAM。
8. 32可编程I/O线。
9. 两个16位定时器/计数器。
10.5个中断源。
11.可编程串行通道。
12.低功耗的闲置和掉电模式。
13.片内振荡器和时钟电路。
图2-2.2 AT89C51的引脚排列图PO口为了一个8位漏极开路双向I/O口,每脚课吸收8TTL门电流。
当PO口的管脚第一次写1时,被定义为高阻输入。
PO能够用于外部程序数据存储器,它可被定义为数据/地址的第八位。
在FIASH编程时,PO口作为原码输入口,当FIASH 进行校验时,PO输出原码,此时PO外部必须被拉高。
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器嫩接收输出4TTL 门电流。
P1口管脚写入1后,被内部上拉高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口为一个内部上拉电阻的8位双向I/O口,P2缓冲器可接收,输出4个TTL门电流,当P2口被写‘‘1’’时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入是,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址高八位。
在给出地址‘‘1’’时它利用内部上位优势,当对外部八位地址数据存储器进行续写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入‘‘1’’后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口:P3.0RXD(串行输入口);P3.1TXD(串行输出口);P3.2/INT1(外部中断0);P3.3/INT1(外部中断1);P3.4T0(记时器0外部输入);P3.5T1(记时器1外部输入);P3.6/WR(外部数据存储器写选通);P3.7/RD(外部数据存储器选通)。
3 软硬件电路设计与调试3.1 硬件电路设计本设计使用AT89C51芯片作为控制芯片,利用P0口和P1口共连接16个发光二极管,且P0口还连接了一个7段数码管,还有P2口1脚、2脚、3脚分别连接了3个按键。
按键是用来控制跑马灯的显示模式和跑马灯的运行速度,数码管是用来显示跑马灯运行模式,应用PROTEUS软件画出电路原理图如3-3.1所示。
图3-2.3所示可以调控的跑马灯原理图3.1.1 基本原理数码管实际上是由7个发光管组成8节字形构成的,加上小数点就是8个,我们分别把它们命名为a、b、c、d、e、f、g。
假设我们显示一个数字2,那么a、b、g、e、d这5个段的发光管两就可以了,c、f、h不亮,同时由于接法为共阴接法,那么为低电平时灭,为高电平是亮。
从高往低排列,P1.7-P1.0写成二进制为01011011,把他转化为16进制则为0x5b。
我们可以根据硬件的接线把数码管显示数字编制成一个表格,见下表,以后直接调用就行了。
显示P聱1.7小数点P1.6gP1.5小fP1.4eP1.3dP1.2cP1.1bP1.0a16进制代码0 0 0 1 1 1 1 1 1 0x3f1 0 0 0 0 0 1 1 0 0x062 0 1 0 1 1 0 1 1 0x5b3 0 1 0 0 1 1 1 1 0x4f4 0 1 1 0 0 1 1 0 0x665 0 1 1 0 1 1 0 1 0x6d6 0 1 1 1 1 1 0 1 0x7d7 0 0 0 0 0 1 1 1 0x078 0 1 1 1 1 1 1 1 0x7f9 0 1 1 0 1 1 1 1 0x6fa 0 1 1 1 0 1 1 1 0x77b 0 1 1 1 1 1 0 0 0x7cc 0 0 1 1 1 0 0 1 0x39d 0 1 0 1 1 1 1 0 0x5ee 0 1 1 1 1 0 1 1 0x7bf 0 1 1 1 0 0 0 1 0x71 - 0 1 0 0 0 0 0 0 0x403.2 软件电路设计由设计给出的功能要求,并结合硬件电路图设计和资源分配,来进行软件设计。