单片机课程设计

发布 2022-10-04 23:06:28 阅读 4710

专业(电子)课程设计报告。

2013 年 12 月 ××日。

电子信息工程专业10级学生单片机原理课程设计任务书。

(2013年季)

摘要:本次课程设计是基于at89s52单片机控制的8位led动态扫描显示电路的设计及proteus**。首先本文对at89s52单片机原理做了介绍,然后对max7219进行了概括,分析了动态扫描显示系统的工作原理,经过分析,设计出能实现动态扫描显示系统的硬件原理图和软件流程图。

最后利用proteus**软件对该系统进行**,达到了预期效果。

关键词:at89s52系统;max7219驱动;proteus**。

1. 课程设计目的。

研究基于单片机控制动态扫描显示系统的工作原理,选用合适的单片机控制七段码显示器,运用动态扫描的原理和特点,设计相应的硬件电路,并配合相应的软件编程,使用proteus**软件和伟福**软件,实现动态扫描显示。具体目的与内容有:

1) 掌握七段码显示系统的工作原理;

2) 掌握一种单片机应用,如at89s52;

3) 掌握keil程序设计软件;

4) 掌握proteus**软件;

5) 设计相应的硬件电路;

6) 编写相应的软件程序;

使用proteus**软件,实现动态扫描显示。

2. 系统结构及硬件电路设计。

2.1 系统的结构框图及工作原理。

图2.1 系统结构框图。

本系统采用单片机at89s52为显示屏的控制核心,系统主要由四个模块:电源模块、at89s52最小系统、led驱动模块、led显示模块构成:

电源模块作为整个系统的各个模块提供稳定的电源。at89s52最小系统作为控制系统,控制着整个系统的功能实现。max7219提供驱动和以及与单片机的控制接口。

led七段码显示模块用来显示效果。

2.2 电源管理模块。

本系统中芯片的工作电压有5v。可以利用外部9v电池然后利用7805进行电压调整获得5v稳定电压值。

7805为3 端正稳压电路,提供固定的输出电压,应用范围广。内含过流、过热和过载保护电路。带散热片时,输出电流可达1a。

虽然是固定稳压电路,但使用外接元件,可获得不同的电压和电流。

图2.2 5v电源模块图。

在图2.3中,d1为电源指示灯,用以指示电源正常工作。图中c1电源滤波电容,稳定电源电压,亦为抗冲击电容,防止上电时产生的冲击电压过大而影响后续电路。

c2为去耦电容,防止干扰信号返回电源影响其正常。

2.3 at89s52单片机最小系统。

本设计的的单片机采用atmel公司的at89s52。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 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

at89s52最小系统包括晶体振荡电路、复位开关和电源部分。电源部分有电源模块提供稳定的电压。图2.3为at89s52的最小系统原理图。

图2.3 at89s52单片机最小系统。

如图2.3所示c4、c5、x1组成晶体振荡电路连接到单片机的xtal1、xtal2引脚上。c3、r11和按键开关组成复位电路连接到单片机的rst引脚上。

2.4 max7219/max7221

2.4.1 max7219/max7221

max7219/max7221是一种集成化的串行输入/输出共阴极显示驱动器,它连接微处理器与8位数字的7段数字led显示,也可以连接条线图显示器或者64个独立的led。其上包括一个片上的b型bcd编码器、多路扫描回路,段字驱动器,而且还有一个8*8的静态ram用来存储每一个数据。 只有一个外部寄存器用来设置各个led的段电流。

max7221与spi、 qspi以及 microwire相兼容,同时它有限制回转电流的段驱动来减少emi(电磁干扰)。 一个方便的四线串行接口可以联接所有通用的微处理器。 每个数据可以寻址在更新时不需要改写所有的显示。

max7219/max7221同样允许用户对每一个数据选择编码或者不编码。 整个设备包含一个150μa的低功耗关闭模式,模拟和数字亮度控制,一个扫描限制寄存器允许用户显示1-8位数据,还有一个让所有led发光的检测模式。 在应用时要求3v的操作电压或segment blinking

2.4.2功能特点。

10mhz连续串行口,独立的led段控制,数字的译码与非译码选择,150μa的低功耗关闭模式,亮度的数字和模拟控制,高电压中断显示,共阴极led显示驱动,限制回转电流的段驱动来减少emi(max7221),spi, qspi, microwire串行接口(max7221,24脚的 dip和 so 封装。

2.4.3 管脚名称功能。

1 din 串行数据输入端口。在时钟上升沿时数据被载入内部的16位寄存器。 2,3,5-8,10,11 dig 0–dig7 八个数据驱动线路置显示器共阴极为低电平。

关闭时7219此管脚输出高电平,7221呈现高阻抗。4,9 gnd 地线 (4脚和9脚必须同时接地)12 load (max7219) 载入数据。连续数据的后16位在load端的上升沿时被锁定。

cs (max7221) 片选端。该端为低电平时串行数据被载入移位寄存器。连续数据的后16位在cs端的上升沿时被锁定。

13 clk 时钟序列输入端。最大速率为 10mhz.在时钟的上升沿, 数据移入内部移位寄存器。

下降沿时, 数据从dout端输出。对max7221来说,只有当cs端为低电平时时钟输入才有效。14-17,20-23 seg 7 段和小数点驱动,为显示器提供电流。

当一个段驱a–seg g, 动关闭时,7219的此端呈低电平,7221呈现高阻抗。 dp18 set 通过一个电阻连接到vdd 来提高段电流。19 v+ 正极电压输入,+5v24 dout 串行数据输出端口,从din输入的数据在16.

5个时钟周期后在此端有效。当使用多个max7219/max7221时用此端方便扩展。

3系统总原理图。

3.1总图。

图2.4这里,89c51的p1.6作串行数据输出,连接到ps7219的din脚,p1.7和p1.5通过程序分别模拟ps7219的时钟脉冲clk及数据加载load信号。ps7219的sa~sg、sdp端连接到各led数码管对应的a~f及dp端,dig0~dig3分别接4位led数码管的共阴极,以实现位选。

另外,选用xicor公司的x25045作为看门狗监控电路。

实际上,数码管的位数可在1~8位之间任意选择,这可由写入的扫描界线寄存器的命令字决定。注意,为了使由峰值数字驱动器电流引起的纹波减到最小,需要在v+和gnd之间尽可能靠近芯片的地方外接一个10μf的电解电容和一个0.1μf的瓷片电容。ps7219应放在紧靠led显示器的地方,且连线尽可能短,两个gnd引脚都必须连接到地线上。

ps7219只需一组+5v电源和89c51的三个输出口,且无附加电路,可驱动1~8个led显示器,显示亮度可调,工作可靠。

4.系统**与调试。

4.1**图。

图4.14.2工作工程。

当连接完电路、编写完程序以后,需要进行对各个器件进行检测,max7219与at89c52芯片编程主要分为两部分:初始化子程序、送显子程序以及数据传送。初始化程序主要是对max7219的显示模式、显示亮度、显示位数等进行初始化。

本例中主要的初始化部分是选择每一显示位相应的显示方式为全译码方式,即给译码方式寄存器x9h 单元送相应的数值0ffh;限制显示扫描显示位数为5位,即给扫描限制寄存器xbh 单元送相应的数值04h。****。

每当定时时间到时先将个位暂存单元中的数字与9相减,结果不为0时,将个位数字加1后送入个位暂存单元并送出显示(所有数的个位数字1~9的变化都通过该段程序完成);如果结果为0,则将十位暂存单元中的数字与9相减,结果不为0时,则先将个位数字变为0,再将十位数字加1后分别送入个位、十位暂存单元并送出显示(所有数的十位数字1~9的变化都通过该段程序完成);如果十位数字与9相减结果为0,则要再将百位暂存单元中的数字与9相减比较,结果不为0时,则先将个位、十位数字都先变为0,再将百位数字加1后分别送入个位、十位、百位数据暂存单元并送出显示(所有数的百位数字1~9的变化都通过该段程序完成);如果百位数字与9相减比较结果为0,再将千位数字与9相减比较结果…如此下去,便可使显示器显示一系列连续数。例如程序执行第一次时,个位暂存单元中的数字为0,它与9相减的结果不为0,那么将0加上1的结果1放入个位暂存单元送显便显示出数据“00001”,执行第九次显示数据为“00009”,执行第十次时,要先将个位暂存单元中的数字9与9相减,结果为0,这时再将十位暂存单元中的数字0与9相减,0与9相减的结果不为0,这时先将个位数字变为0放入个位暂存单元,再将十位暂存单元中的数字0加上1后的结果1放入十位暂存单元送显,便可显示数据“00010”。要使显示的数最大为99999,只需在每一数位与9比较之前判断它的下一数位是否是十万位,如果下一数位是十万位时退出程序即可。

单片机课程设计

可变程序控制器是集微机技术 自动化技术 通讯技术于一体的通用工业控制装置。它可靠性强 性能 比高 使用方便,已在工业控制的各个领域里得到了极为广泛的应用,成为实现工业自动化的一种强有力的工具 1 plc的定义有许多种。国际电工委员会 iec 对plc的定义是 可编程控制器是一种数字运算操作的电子系统...

单片机课程设计

目录。内容提要2 关键词2引言3 一 硬件电路设计3 一 电路板原理3 二 电路元器件3 二 软件设计3 一 秒钟设计方案3 二 时钟设计方案4 结语7单片机时钟设计。内容摘要 一 在实验板上用动态扫描显示00 59秒钟,具体要求如下 一 6m晶振 二 l9 l10显示00 59十进制数并循环,间隔...

单片机课程设计

1 选题背景。1.1 家庭智能防盗报警系统设计的背景及目的。随着经济的发展,人们对防盗 防劫 防火保安设备的需求量大大增加。针对偷盗 抢劫 火灾 煤气泄漏等事故进行检测和报警的系统,其需求也越来越高。家居智能是以家为平台,兼备建筑 自动化,智能化于一体的高效 舒适 安全 便利的家居环境。自动化的家居...