单片机课程设计LED显示管.docx
《单片机课程设计LED显示管.docx》由会员分享,可在线阅读,更多相关《单片机课程设计LED显示管.docx(14页珍藏版)》请在冰点文库上搜索。
![单片机课程设计LED显示管.docx](https://file1.bingdoc.com/fileroot1/2023-5/2/47afcc2a-4056-42c2-99ab-6890c6ff3669/47afcc2a-4056-42c2-99ab-6890c6ff36691.gif)
单片机课程设计LED显示管
目录
第一部分:
1.概述3
第二部分:
2.学习目标4
第三部分:
3.设计原理4
3.1相关知识4
3.2设计相关的软件5
第四部分:
4.单片机汇编程序8
4.1汇编程序8
4.2程序的编译及加载9
第五部分:
5.过程设计11
5.1设计要求11
5.2软件仿真11
第六部分:
6.总结14
第七部分:
7.参考资料15
1.概述
单片机又称为微控制器,它采用一定的工艺手段将CPU、存储器和I/O口集成在一个芯片上,其发展十分迅速。
自1975年美国得克萨斯仪器公司第一块卫星计算机芯片问世以来,在短短的20年间,单片机技术已经发展成为计算机领域一个非常有前途的分支,它有自己的技术特征、规范、发展道路和应用领域。
单片机是为了满足工业控制需要而诞生的,是自动控制系统的核心部件,因而也主要用于工业控制、只能化仪器仪表、家用电器中。
它具有体积小、个性突出、价格低廉等特点。
目前单片机已渗透到我们生活的各个领域,几乎很难找到没有单片机足迹的领域。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说全自动控制领域的机器人、智能仪表、医疗器械了。
因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的工程师和科学家。
科技越发达,智能化的东西就越多。
因此学习单片机是社会发展的必然需求。
据统计,我国的单片机年需求量已达1-3亿片,且以每年大约16%的速度增长,但相对于世界市场我国的占有率还不到1%。
特别是沿海地区的电子厂,在不断向内地市场辐射的进程中,多数产品所用的单片机需求量骤增。
鉴于单片机应用在我国才刚刚起步,有着广阔的前景,足以让我们确信培养单片机应用人才,特别是工程技术中普及单片机知识有着极为重要的现实意义。
本课程的设计,就是基于单片机控制原理设计1位LED数码显示管。
通过设计能更清楚了解单片机的控制原理及其运用,为今后的深入学习和研究打下坚实的基础和积累经验。
LED显示管的设计,虽然只是单片机的一个简单运用,但它对我们理解单片机工作原理及深入学习有着莫大的帮助。
2.学习目标
2.1单片机的工作原理
2.2段LED数码管的结构、分类以及数码管的显示码
2.3位LED数码管静态显示与动态显示的编程方法
3.设计原理
3.1相关知识
3.1.1七段LED数码管
LED数码管是单片机控制系统中最常见的显示器件之一,一般用来显示处理结果以及输入输出信号的状态。
(1)LED数码管的结构:
LED数码管是由8个发光二极管中的7个长条形发光二极管(俗称7笔段)
按a、b、c、d、e、f、g顺序组成“8”字形。
只要控制7笔段按一定的要求亮与灭,就能显示出八进制BCD码。
LED数码管按内部连接方式又分为“共阳极数码管”和“共阴极数码管”两种。
若8个发光二极管的阳极连在一起接电源正极为共阳极数码管,若8个发光二极管的阴极连在一起接地则为共阴极数码管。
下文如不特别说明,所用LED数码管都为共阴极数码管。
共阴极数码管的引脚如图3-1-2所示,共有10只引脚,其中3、8引脚连通,作为公共端接地。
(2)数码管显示码:
数码管显示码是表述二进制数与数码管所显示字符的对应关系的。
图3-1数码显示管
LED数码管按内部连接方式又分为“共阳极数码管”和“共阴极数码管”两种。
若8个发光二极管的阳极连在一起接电源正极为共阳极数码管,若8个发光二极管的阴极连在一起接地则为共阴极数码管。
下文如不特别说明,所用LED数码管都为共阴极数码管。
共阴极结构图如下:
(共阴极LED结构)
(共阴极原理图)
(3)静态显示
静态显示是各个#$%管上能稳定地同时显示各自的字符并维持不变,直到显示下一个字符为止。
3.2设计相关的软件
3.2.1AT89C51单片机
AT89C51系列的I/O口的脚设置和运用非常简单,当该脚作输入脚使用时,只须将该脚设置为高电平(复位时,各I/O口均置高电平)。
当该脚作输出脚使用时,则为高电平或低电平均可。
低电平时,吸入电流可达20mA,具有一定的驱动能力;而为高电平时,输出电流仅数十μA甚至更小(电流实际上是由脚的上拉电流形成的),基本上没有驱动能力。
其原因是高电平时該脚也同时作输入脚使用,而输入脚必须具有高的输入阻抗,因而上拉的电流必须很小才行。
作输出脚使用,欲进行高电平驱动时,得利用外电路来实现,如上拉电阻,I/O脚不通,电流经R驱动LED发光;低电平时,I/O脚导通,电流由该脚入地,LED灭(I/O脚导通时对地的电压降小于1V,LED的域值1.5~1.8V)。
3.2.2Proteus软件
(1)Proteus可提供的仿真元器件资源:
仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。
(2)Proteus可提供的仿真仪表资源:
示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。
理论上同一种仪器可以在一个电路中随意的调用。
(3)除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。
这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。
这些都尽可能减少了仪器对测量结果的影响。
(4)Proteus可提供的调试手段Proteus提供了比较丰富的测试信号用于电路的测试。
这些测试信号包括模拟信号和数字信号。
仿真功能
在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:
*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。
3.2.3Keil软件
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。
掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
KeilC51开发系统基本知识KeilC51开发系统基本知识
3.2.4Keil软件的使用
打开Keil软件后,淡出对话窗口如下图:
然后编写程序。
。
在编写程序完成并通过编译没有错误,即可对程序进行加载。
3.3单片机外部电路
3.3.1晶振电路
单片机的晶振电路给单片机提供所需要的频率,起电路的接法如下所示:
3.3.2复位电路
单片机的复位电路时对单片机进行复位的外部电路,在初始条件下需要对单片机进行复位。
复位时点B1复位按钮,其电路如下所示;
虽然在仿真的过程中,单片机的外部电路对整个当真过程没有任何的影响,但是在实际中它作为整个产品必不可少的部分,在这里还是有必要进行介绍。
单片机仿真的外部电路对整个仿真过程没有任何的影响,是因为仿真软件已经有课默认的晶振频率,为12MHz,复位电路也已经有了默认的值,所以不需要依靠外部电路。
4.单片机汇编程序
4.1汇编程序
一位显示管的汇编程序如下:
org0000h
sjmpmain
org000bh
sjmpt0_isr
org0030h
main:
clra
movdptr,#table
movca,@a+dptr
movp0,a
movtmod,#01h
movth0,#0d8h
movtl0,#0efh
setbet0
setbea
setbtr0
pd:
cjner0,#100,$
incdptr
clra
movca,@a+dptr
cjnea,#00h,aaa
movdptr,#table
clra
movca,@a+dptr
aaa:
movp0,a
movr0,#00h
sjmppd
t0_isr:
clrtr0
movth0,#0d8h
movtl0,#0efh
incr0
setbtr0
reti
table:
db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h
end
4.2程序的编译及加载
写好的汇编程序,需要经过专门的软件进行编译。
在这里我们用的软件是上面介绍的Keil软件进行编译,一下是几个简要的操作步骤:
1.选择89C51单片机,如下图
2.属性编辑,加载程序
汇编程序将编译后,形成hex的文件,可通过对象属性编辑窗口加载程序,如下图
加载文件
5.过程设计
5.1设计要求
5.1.1具体的设计目标:
设计1位LED显示管,能动态显示从0~9十个数字。
5.1.2设计的必备要求:
1.在电脑上能正常运行的proteus软件和Keil软件
2.画图的ISIS软件
5.2软件仿真
下图是仿真的链接图,在没有开始仿真前的单片机链接结构图
在ISIS软件中进行软件仿真,以下是仿真的运行过程
(仿真图1显示数字4)
(仿真图2显示数字6)
(仿真图3显示数字9)
在以上的仿真截图中,引脚红点表示高电平,蓝点表示低电平
6.总结
通过一段时间的单片机实训,我学习了Proteus软件和keil软件的基础知识,学习了运用Proteus软件进行绘图、仿真和运用keil软件编写程序。
在这个过程中巩固了已学过的单片机的基础知识,为以后基础课和专业课程的学习建立初步基础并提高自己的实践能力。
通过这次一个综合设计训练的机会,我学到了很多的知识,掌握了Proteus软件和keil软件系统的相关知识,按自己步骤完成了设计,画出了原理图和仿真图,掌握了有关电路的画图方法,对它的原理和作用有了进一步的了解,虽然在这次设计中遇到了很多困难,但是经过与他人相互讨论和请教,在图书馆借一些与有关设计相关的书籍,不懂的方面向其老师同学等周围的人组请教,得到了他们的大力指导与帮助。
这次设计,锻炼了解决实际问题的本领。
虽说我在设计的时间上有些短暂,但我并没有因为这些困难而不认真做,相反我都在利用课余时间做这个设计竟自己最大的努力去完成设计,去查找相关的资料。
在这次课程设计的实训中,能让我接触到以前所没有接触过的东西,对单片机的原理及其运用、数字电路运用,模拟电路、电力电子技术和proteus软件及Keil软件有了更深入的了解,培养了动手能力、查找问题能力、解决问题能力、收集整理信息能力,同时也为今后的学习打下一个坚实的基础和极累丰富的经验。
但这其中也有不足之处因为时间仓促我们设计的电路不是很专业,由于时间有限,在设计过程中难免出现一些疏漏和错误,望各位老师和同学给予指导,在以后的设计中争取做的更好。
再有由于我欠缺很多专业知识,设计上出现了很多问题,但经过努力和探讨请教还是得到了一定的解决,做出了我们的产品“1位LED显示管”。
总之经过共同努力还是完成了预期的实训任务。
7.参考资料
1.《单片机原理及运用(第二版)》——电子工业出版社出版姜志海黄玉清刘连鑫编著
2.《模拟电子技术基础简明教程》——高等教育才出版社出版杨素行主编
3.《数字电子技术基础简明教程(第三版)》——高等教育出版社出版余孟尝主编