单片机课程设计动态数码显示技术.docx
《单片机课程设计动态数码显示技术.docx》由会员分享,可在线阅读,更多相关《单片机课程设计动态数码显示技术.docx(15页珍藏版)》请在冰豆网上搜索。
![单片机课程设计动态数码显示技术.docx](https://file1.bdocx.com/fileroot1/2023-5/30/b94b4f0f-38d7-431c-b7e5-b3b31c8495a3/b94b4f0f-38d7-431c-b7e5-b3b31c8495a31.gif)
单片机课程设计动态数码显示技术
单片机课程设计--动态数码显示技术
广州学院
微机原理课程设计说明书
动态数码显示技术
院(系)机械工程学院
专业机械电子工程
班级10机电工程班
学生姓名刘育文
指导老师王建春
2012年12月21日
课程设计任务书
兹发给10机电工程班学生刘育文课程设计任务书,内容如下:
1.设计题目:
动态数码显示技术
2.应完成的项目:
(1)应用Proteus的ISIS模块,选择元器件画出电路图;
(2)应用Keil软件,编写相应的程序调试成功,并生成相应的hex文件;
(3)将形成的*.hex文件加载到电路的单片机属性里,启动仿真运行功能观察仿真结果;
(4)启动ARES,实现电路板的制作,并生成制板文件*.LYT,预览三维效果图。
3.参考资料以及说明:
(1)主编:
姚超友光电一体化强化训练实训教材--单片机篇花都华南理工大学广州学院机械工程学院机械实验中心出版2012年9月
(2)主编:
张齐朱宁西单片机应用系统设计技术--基于C51的Proteus仿真(第2版)北京电子工业出版社2009年1月
(3)郭天祥编著新概念51单片机—入门、提高、开发扩展全攻略北京电子工业出版社2010年10月
(4)李全利仲伟峰编著单片机原理及应用北京清华大学出版社2006年1月
4.本设计任务书于2012年12月10日发出,应于2012年12月21日前完成,然后进行答辩。
指导教师王建春签发2012年12月10日
课程设计评语:
课程设计总评成绩:
指导教师签字:
年月日
摘要
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。
从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。
在信息时代的今天,单片机技术应用越来越广泛,其涉及各个行业,也渗透到人们的日常生活当中。
为了让人们很直观地了解相关设备的当前工作状态,很多时候需要将当前的时间、温度、工作程序等状态通过数码管显示出来。
这就涉及到了数码管的动态显示技术。
而在实际应用中,单片机的数码管显示一般都用动态显示方式。
正确、高效地应用数码管动态显示技术是这类设计成功与否的关键之一。
关键词:
信息时代;单片机;数码管;动态显示.
第一章概述
1.所谓动态显示扫描技术就是指:
多位数码管采用“并联”动态接口,通过对各数码管轮流循环点亮,实现多位数码显示。
2.这次设计是采用动态扫描的方法显示五位字符串“12345”和“HELLO”。
3.AT89C51单片机引脚说明:
VCC:
供电电压。
GND:
接地
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为低八位地址接收
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
4.AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微机处理器,俗称单片机。
它可以提供一下标准功能:
4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式可以保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。
第二章电路设计
2.1总体方案设计
针对本课程设计任务,进行分析得到:
多位数码管采用“并联”动态接口,通过对各数码管轮流循环点亮,实现多位数码显示。
图2.1动态数码显示技术总体设计框图
2.2基本原理
动态显示方式是将所有的数码管的8段按照同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路。
位选通由其各自独立的I/O线控制,显示数码同时传到每个数码管,但每个瞬时由每个位选通信号选通一个数码管。
由于每个的显示时间较短,只能根据人的视觉停留效应观察。
2.3硬件电路设计
1)把“单片机系统”区域中的P0.0/AD0-P0.7/AD7用8芯排线连接到“动态数码显示”区域中的a-h端口上.
2)把“单片机系统”区域中的P2.0/A8-P2.7/A15用8芯排线连接到“动态数码显示”区域中的S1-S8端口上;
3)把“单片机系统”区域中的P1.7端口用导线连接到“独立式键盘”区域中的SP1端口上;
2.4电路原理图
根据其基本原理,选取合适的元器件,绘制的电路原理图如下:
两个共阴极数码管的引脚abcdefgdp两两相连,因为这样才能同时显示五个字形,这样做相当于把两个数码管合二为一。
左1234位和右1234位有P2口控制,P1.7按钮必须有串联在回路中,这样就可以给单片机一个电信号,当按钮按下,给个高电平,当按钮不按下,给个低电平。
图2.4电路原理图
再花这图时必须得选中数码管类型,如果选的的共阳数码管,是不会显示字形的,同时P0口必须有上拉电阻。
2.5单片机AT89C51的最小系统
单片机AT89C51最小系统至少有晶振电路,复位电路等组成:
图2.5AT89C51单片机最小系统电路图
该上电复位电路由电容C1和电阻R2组成,它利用电容充电来实现复位。
在电源接通瞬间,RST引脚上的电位是高电平(VCC),电源接通后对电容进行快速充电,随着充电的进行,RST引脚上的电位也会逐渐下降为低电平。
只要保证RST引脚上高电平出现的时间大于两个机器周期,便可以实现正常复位。
该晶振电路由晶振X1、电容C2和C3组成,在单片机XTAL1和XTAL2引脚上跨接上一个晶振和两个稳频电容,可以与单片机片内的电路构成一个稳定的自激振荡器,他的晶振频率为12Hz.
2.64位一体数码管
由于要显示五个数,可以通过如图2.6的设计可以实现两个数码管相连,其中P0.0到P0.7要上拉电阻,因为P0这时用做通用I/O,故用8个相同的电阻一千欧连起来:
图2.6两个数码管并联电路
当然也可以用排阻代替,排阻的功能是驱动电流,增加电流。
第三章软件程序及调试结果
3.1根据程序图写出程序(见附件1),首先判断按钮P1.7是否按下,在分别显示不同的字形,其中P0口是控制数码管显示字形的输入口,tablel是查HELLO的表,table2是查12345的表.P2口是位控制口。
3.2编写完程序后,编译没有错误和警告后,进行对参数的设计,打开“TargetOptions”,然后点击Device,选择AT89C51,点击Target,修改晶振为12,点击Output,在“CreateHEXFile”前面打勾,完成修改后再编译一次,然后打开“Start/StopDebugSession”进行调试,调试结果如下图:
第四章联合仿真
打开Proteus的ISIS电路原理图,使用软件Keil编写程序并生成*.hex文件后,双击AT89C51单片机,把生成的*.hex加到载电路的单片机属性里,然后点击左下角的开始按键进行仿真,仿真后得到附件2的图,其中左图是没有按下按钮的,右图有按按钮。
第五章电路板制作
5.1、PCB板制作
在Proteus的ISIS电路原理图的模块下,打开ARES,发现按键没有封装,然后自己画按键的封装,放置焊盘和图形框体,如图5.1所示,画完封装后需要创建封装,打开“库--创建封装”,完成后还需要编译到库,打开“库--编译到库”,完成后在ISIS原理图中添加封装;
所有的封装完成后,重新在ISIS中导出ARES,把所有封装拉出来,进行手动适当的调整;完成后再画外边框,选择“BoardEdge”线型;
完成后进行手动布线,点击“自动布线”按键,PCB板的制作就完成了。
见图于附件3。
图5.1按键封装图
5.2、3D效果图
PCB板完成后,然后点击“输出--3D预览”,完成3D效果图。
见图于附件4
第六章设计总结
这次课程设计我的收获:
将理论教学与实践相结合,使我对于单片机的实际应用有了较深刻的认识;同时对单片机应用系统设计的各种方法有所了解。
通过分工合作,培养我跟队友之间的合作精神,在这过程中我熟悉电子系统设计的全过程,提高学我对设计课题的分析能力、编程能力及解决实际问题的综合能力。
通过实践,增强了下阶段的学习信心,为毕业设计奠定了基础。
我负责的是电路图绘制部分,虽然一开始什么都还不是很懂,通过一两天的自学Proteus软件,我掌握了绘制的方法,最后通过自己的努力把电路图给画出来了。
在此过程当中,我也遇到了很多问题,比如在找元器件时,不懂元器件的英文单词,找不到,最后经过查找单词把它给找到,还有,有些元器件没有封装,我就想我如果做不出来,后面的同学也不好做,然后我又去了解怎么给没有封装的元器件添加封装,最后通过上网查阅资料和同学的讨论帮助完成绘制。
课程设计工程中,思路很重要,在设计前要有明确的设计思路,同时要有耐心,不能操之过急,要有持之以恒的态度。
也不能因为受到一点挫折或做不出来就放弃。
本次课程设计我学到了很多新知识,同时也加深了对中级工训练单片机的了解。
为了查找相关的技术资料,我每天上网,去图书馆借书查找资料。
通过这次课程设计,我懂得了在以后的生活学习中都要脚踏实地,一步一个脚印,不能轻易放弃。
我们课程上的知识是远远不够的,还要培养自己的自学能力和查找资料的能力,最后,我希望要是能够做个实物出来就更好了。
参考文献
(1)主编:
姚超友光电一体化强化训练实训教材--单片机篇花都华南理工大学广州学院机械工程学院机械实验中心出版2012
(2)主编:
张齐朱宁西单片机应用系统设计技术--基于C51的Proteus仿真(第2版)北京电子工业出版社2009月
(3)郭天祥编著新概念51单片机—入门、提高、开发扩展全攻略北京电子工业出版社2010
(4)李全利仲伟峰编著单片机原理及应用北京清华大学出版社2006年
(5)谭浩强C程序设计北京清华大学出版社1991年
(6)何立民单片机高级教程北京航空航天大学出版社2000
(7)李朝青单片机原理与接口技术北京航空航天大学出版社1999
(8)张毅刚新编MCS-51系列单片机应用设计哈尔滨哈尔滨工业设计大学出版社2003
(9)求是科技8051系列单片机C程序设计北京人民邮电出版社2006
(10)求实科技单片机典型模型设计实例导航北京人民邮电出版社2004
附件1
C语言程序:
#include
unsignedcharcodetable1[]={0x06,0x5b,0x4f,0x66,0x6d};
unsignedcharcodetable2[]={0x76,0x79,0x38,0x38,0x3f};
unsignedchari;
unsignedchara,b;/*char为1个字节储存空间*/
unsignedchartemp;
voidmain(void)
{
while
(1)
{
temp=0xfe;
for(i=0;i<5;i++)
{
if(P1_7==0)
{
P0=table1[i];
}
else
{
P0=table2[i];
}
P2=temp;
a=temp<<
(1);
b=temp>>(7);
temp=a|b;
for(a=4;a>0;a--)
for(b=248;b>0;b--){}
P2=0xff;
}
}
}
附件2
Protues仿真图
附件3
PCB图:
附件4
PCB3D预览图: