基于Proteus的51单片机动态数码管课程设计 详细篇
- 格式:pdf
- 大小:672.10 KB
- 文档页数:15
单片机课程设计题目动态数码管显示学院机电工程学院专业班级电子信息工程12-1班姓名组员指导教师张、王老师2015 年 5 月30 日课程设计量化评分标准目录一、概述 (1)1. 单片机简介 (1)2. Proteus简介 (2)3. 设计任务与要求 (3)二、硬件设计 (3)1. 单片机最小系统设计 (1)2. 数码管显示部分 (4)3. 数码管驱动部分 (5)三、软件设计 (6)1. 仿真原理图 (6)2. 仿真参数设置 (6)3. 仿真结果 (7)4. 程序流程图 (8)5. 程序代码.................................................... .9四、心得体会............................................... (11)五、参考文献 (12)精品文档一、概述1. 单片机简介如图1.1和图1.2分别为PDI P封装的AT89C52引脚图和实物图图1.1 引脚图图1.2 实物图AT89C52是一个低电压,高性能CMOS8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。
AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。
基于Proteus的单片机动态显示仿真设计摘要:本文以MCS-51单片机为例,介绍在Proteus中进行单片机的动态显示设计和仿真过程。
关键词:单片机;proteus动态显示;仿真单片机技术应用于各行各业,是一种实用的智能控制技术,单片机技术也是各大高校电类学生学习的主要专业课程,单片机应用技术所涉及的实践环节较多,且硬件投入较大,如果因为控制方案有误而进行相应的开发设计,会浪费较多的时间和经费。
Proteus仿真软件很好地解决了这些问题,它可以像Protel 一样绘制硬件原理图并实现硬件调试,再与Keil编程软件进行联调,实现对控制方案的验证。
尤其对于初学单片机的用户提供了极大的方便。
1 ProteusProteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。
它可以仿真、分析各种模拟器件和集成电路,该软件的特点是:1)实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路、数字电路仿真、单片机及其外围电路的仿真、各种虚拟仪器,如示波器等功能。
2)支持主流单片机系统的仿真。
3)提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。
4)具有强大的原理图绘制功能。
Proteus软件的使用彻底改变了传统单片机学习和开发方式,初学者可以在没有实验硬件条件下进行仿真实验,开发者可以直接用Proteus进行电路设计和仿真运行程序,运行成功后再制作产品,缩短开发周期,节约开发成本。
下面笔者就以MCS-51单片机为例,介绍在Proteus中进行单片机的动态显示设计和仿真过程。
2 电路原理设计在MCS-51单片机用数码管显示信息时,由于每个数码管至少需要8个I/O口,如果需要多个数码管,则需要多个I/O口,而单片机I/O口是有限的。
实际应用中一般采用动态显示方式解决问题。
如何做呢?在编程时,需要输出段选和位选信号,位选信号选中其中一个数码管,然后输出段码,使该数码管显示所需要的内容,延时一段时间后,再选中另一个数码管,再输出对应的段码,高速交替,这就是动态显示。
www�ele169�com | 73应用技术0 引言随着社会的不断进步与发展,不同类型与性能的数码管相继发明出现。
数码管可以显示数字与相应信息,其亮度高、控制简单、性能稳定、呈现速度即时等诸多优点,使得数码管在电子设计应用中得到广泛应用。
本文运用Proteus 仿真软件,利用汇编语言进行编码,将程序写入并编译仿真实现数码管的动态显示与设计。
1 Proteus 简介Proteus 是一款高性能的EDA 工具软件,配置有完善的电子设计开发环境,器件库齐全,功能形象。
可进行原理图设计、搭建、仿真,PCB 设计等多功能操作。
支持C51、ARM、DSP 诸多处理器。
在软件中进行虚拟仿真,力求实证现实;在Proteus 软件中可直接在原理图搭建完成后,进行编译输出得到结果,进行实时电路分析与实物仿真。
Proteus 软件大大缩短了设计时间,降低器件损耗的开发成本,途径灵活,仿真结果准确,在实际开发与教学中得到广泛应用。
2 数码管动态显示与计数工作原理■2.1 定时器结构与原理定时器T0/T1的结构如图1所示,其中振荡器经12分频后作为定时器的时钟脉冲,T1引脚为外部计数脉冲输入端,通过开关进行选择。
反相器,或门,与门共同构成启/停控制信号。
TH 和TL 为加1计数器,TF 为中断标志。
每接收到一个脉冲,加1计数器自动加1,当计数器中的数被加为0时产生溢出标志,TF 将被置1。
计数器工作方式的选择和功能的实现需要配置相应的寄存器TMOD 和TCON。
■2.2 脉冲产生利用单片机U1 P3.0口进行脉冲的输出,通过定时器模式选择与初值的设定,完成定时器定时功能的实现。
运用定时器进行端口定时控制,实现每1ms 高低电平变换。
就可以实现一个占空比为50%的矩形脉冲输出。
图1 定时器T0(T1)结构图■2.3 脉冲计数利用单片机U1 P3.0口输出的脉冲连接到单片机U2的中断INT0口P3.2,通过脉冲的高低电平变换触发中断0,进行脉冲个数的计数,再通过数码管显示出数字信息。
51课程设计protues一、课程目标知识目标:1. 让学生掌握Protues仿真软件的基本操作,包括原理图绘制、仿真设置及电路测试。
2. 使学生理解并能够描述常见电子元件在Protues中的模型和特性。
3. 让学生了解并能够运用Protues进行简单的数字电路与模拟电路的仿真。
技能目标:1. 培养学生利用Protues软件设计简单电子电路的能力。
2. 培养学生分析电路原理和仿真结果的能力。
3. 提高学生运用Protues进行问题诊断和调试的技能。
情感态度价值观目标:1. 培养学生对电子技术学科的兴趣,激发学生的学习热情。
2. 培养学生的团队协作意识和沟通能力,让学生在合作中共同进步。
3. 培养学生严谨的科学态度和良好的实验习惯,提高学生的实践能力。
本课程针对电子技术相关专业的学生,结合Protues仿真软件,注重理论与实践相结合。
在教学过程中,充分考虑学生的认知水平和特点,通过实际操作和案例分析,使学生能够掌握课程内容,达到预定的学习成果。
课程结束后,学生将能够独立运用Protues软件进行简单的电路设计和仿真,为后续专业课程的学习打下坚实基础。
二、教学内容本章节教学内容主要包括以下几部分:1. Protues软件介绍:使学生了解Protues软件的发展背景、主要功能和应用领域。
2. Protues基本操作:讲解原理图绘制、仿真设置、电路测试等基本操作方法。
3. 电子元件与模型:介绍常见电子元件(如电阻、电容、二极管、晶体管等)在Protues中的模型和特性。
4. 数字电路仿真:以教材相关章节为基础,讲解如何使用Protues进行数字电路的设计和仿真。
5. 模拟电路仿真:结合教材内容,使学生掌握利用Protues进行模拟电路仿真的方法。
6. 电路分析与调试:教授学生如何分析电路原理、诊断问题并利用Protues进行调试。
教学安排与进度:1. 第1周:Protues软件介绍及基本操作。
2. 第2周:电子元件与模型的学习。
1 引言1.1 课程设计的目的1) 通过本次课程设计加深对单片机课程的全面认识和掌握,对单片机课程的应用进一步的了解。
2) 通过本次课程设计将单片机软硬件结合起来,对程序进行编辑,校验,锻炼理论联系实际的能力。
3) 综合运用《单片机原理及应用》课程的理论知识、与设计课题相关的参考资料、基本开发仪器及工具和实验室所具有的其它软硬件环境,设计一个典型的单片机应用系统并通过仿真调试出结果。
4) 通过本次课程设计提高学生的综合能力、动手能力、文献资料查阅能力,为毕业设计和以后工作打下一个良好的基础。
1.2 课程设计的任务用Proteus仿真MCS51系列单片机及其外围电路,用它与Keil开发工具结合,搭建单片机开发平台。
设计一个单片机控制的秒表系统。
利用单片机的定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及按键来设计秒表计时器。
基本功能要求:用AT89C51设计一个2位LED数码显示“秒表”,开始时,显示“00”:第一次按下SP1后就开始从0~9.9计时,显示精度为0.1s;第二次按SP1后,计时停止,显示当前计时值;第三次按SP1后,及时停止归零。
1.3 课程设计的要求1)硬件设计:根据任务要求,完成单片机最小系统及其扩展设计,组成功能完整的系统;2)软件设计:根据秒表的设计要求,完成控制软件的编写与调试;3)用PROTEUS ARES绘制电路原理图并生成PCB图;4)PROTEUS仿真。
2 硬件设计2.1 设计方案介绍及工作原理说明该实验要求进行计时并在数码管上显示时间,则可利用proteus仿真软件设计电路并仿真AT89C51。
使用AT89C51单片机作为核心控制部件,采用12M晶体振荡器及微小电容构成振荡电路;用两个共阴极数码显示管作为显示部分,构成数字式秒表的主体结构,配合独立式键盘和复位电路完成此秒表的计时、清零、停止各项功能。
对于时钟,它有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大。
跟我学51单片机(五):单片机动态扫描驱动数码管一、本文内容提要本刊第四期介绍了单片机外接键盘的原理,并给出了应用实例。
本期将介绍单片机动态驱动段式数码管。
通过该讲,读者可以掌握段式数码管的工作原理和如何通过动态驱动的方法设计电路以及程序。
二、原理简介常用的段式数码管有七段式和八段式,八段比七段多了一个小数点,其他的基本相同。
所谓的几段就是指数码管里有相应的几个小LED 发光二极管,通过控制不同的LED 的亮灭来显示出不同的字形(见图1(a))。
从各发光二极管的电极连接方式又可以分为共阳极和共阴极两种类型。
共阴极则是所有的二极管的阴极连接在一起,而阳极是分离的(见图1(b));而共阳极就是所有二极管的阳极是公共相连,而阴极则是分离的(见图1(c))。
本学习板采用的是八段共阴极数码管,型号为LG3641AH。
图1 数码管内部结构图前文所述,数码管与发光二极管的工作原理相同,共阳极时,所有正端接电源正极,当负端有低电平时,该段有电流流过,发光管亮,当负端为高电平时,该段无电流流过,发光管不亮。
要显示什么数字,就使对应的段为低电平(见表1)。
共阴极与共阳极的电平变化状态相反。
当每个段的驱动电流为2~20mA,电流越大,发光越亮。
表1 显示的数字和七段码各位的对应关系表常用的七段式数码管的硬件驱动设计方法有:静态驱动与动态驱动。
静态驱动即指每个数码管的数据线都有一个单独的数据锁存器,数据锁存器输入的数据由使能端控制,当使能端为高电平时,数据线上的数据(要显示的七段码)进入显示器,使能端与地址译码器的输出相连,要显示那位,则选通那位的地址,在软件设计上不要求程序循环,也不存在显示数字发生闪烁。
但是这样会占用很多口线。
动态显示是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。
这样一来,就没有必要每一位数码管配一个锁存器,从而节省了口线,地简化了硬件电路。
所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
proteus单片机课程设计一、课程目标知识目标:1. 让学生掌握Proteus单片机的基本原理和功能,理解其内部结构及工作原理。
2. 使学生学会使用Proteus软件进行单片机电路设计与仿真,并能阅读相关电路图。
3. 帮助学生掌握单片机编程的基本语法和技巧,能够编写简单的控制程序。
技能目标:1. 培养学生运用Proteus软件进行单片机电路设计、仿真与调试的能力。
2. 培养学生具备分析和解决实际单片机应用问题的能力。
3. 提高学生的团队协作能力和动手实践能力。
情感态度价值观目标:1. 培养学生对单片机课程的兴趣,激发学生的学习热情和探究精神。
2. 培养学生严谨、认真、负责的学习态度,养成良好的学习习惯。
3. 增强学生的创新意识,培养敢于挑战、勇于实践的精神。
课程性质:本课程为实践性较强的课程,旨在让学生在实际操作中掌握单片机原理和应用。
学生特点:学生具备一定的电子基础和编程基础,对单片机有一定了解,但实践能力有待提高。
教学要求:结合课程性质、学生特点,注重理论与实践相结合,强调动手实践,提高学生的实际操作能力。
在教学过程中,分解课程目标为具体学习成果,以便于教学设计和评估。
二、教学内容1. 单片机原理概述:介绍单片机的概念、发展历程、应用领域,以及Proteus 单片机的特点。
教材章节:第一章 单片机概述2. Proteus软件使用:讲解Proteus软件的安装、界面、基本操作,以及如何进行单片机电路设计与仿真。
教材章节:第二章 Proteus软件使用3. 单片机内部结构及工作原理:详细讲解Proteus单片机的内部结构、指令系统、编程模型等。
教材章节:第三章 单片机内部结构及工作原理4. 单片机编程语言及技巧:介绍单片机编程的基本语法、编程技巧,以及常用指令的应用。
教材章节:第四章 单片机编程语言及技巧5. 单片机电路设计与仿真:结合实例,讲解如何使用Proteus软件进行单片机电路设计、仿真与调试。
利用proteus做51单片机的数码管动态显示
单片机爱好者
最近我用proteus做了一下数码管的动态显示仿真,参考了郭天祥老师的《新概念51单片机C语言教程》上第4章独立按键检测的程序,仿真原理图如下:
按郭老师的程序编好烧写进去并运行,发现数码管显示不正常,我在网上发现也有许多类似的问题,分析后发现存在以下几个问题:
1 位选信号和段选信号共用P0口;
2 先送段选信号后送位选信号;
3 设置了消影,我觉得作用不明显
改进:
首先,我把段选信号和位选信号分开,分别由P0和P1发送,第二,我对显示子函数(即void display(uchar numdis))做了一些修改,将位选信号的发送放到段选之前,另外删除了消影,下面是修改后的display()子函数:void display(uchar numdis)
{
uchar i,j;
i=numdis/10;
j=numdis%10;
wela=1;
P1=0xfd;
wela=0;
dula=1;
P0=table[j];
dula=0;
delayms(5);
wela=1;
P1=0xfe;
wela=0;
dula=1;
P0=table[i];
dula=0;
delayms(5);
}
做了上面的修改后,数码管显示正常,可以实现书上的加、减、清0和开启定时自动加1的功能,如下。
上传上来,大家可以分析一下,对我的方法提出质疑,或者给出更好的解决办法。