基于单片机控制的60秒倒计时系统的设计与仿真
- 格式:doc
- 大小:192.50 KB
- 文档页数:12
倒计时60秒程序(单片机C51)#include#define uint unsigned int#define uchar unsigned charuchar code table[]={0xc0,0xf9,0xa4, 0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};sbit gew=P2^1;sbit shiw=P2^0;sbit k2=P1^0;uchar num,num1=60,num2,shi,ge;void Init(){TMOD=0X01; TH0=(65536-50000)%256; TL0=(65536-50000)%256;EA=1;ET0=1; TR0=1;}void delay(uint xms) //延时子函数{uint i,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);}void scankey() //键盘检测子函数{if(k2==0) //检测键是否被按下{delay(5); //延时消除抖动if(k2==0) //重新读取k2的值{num2++; //num2为按次数标志位while(!k2); //等待按键释放if(num2==1) //按键一次计时停止TR0=0;if(num2==2) //按键两次计时开始{TR0=1;}}}}void main() //主函数{Init(); //初始化子函数调用while(1){scankey(); //不断键盘扫描gew=0; //打开数码管个位位选P0=table[ge]; //数码管个位赋值delay(1); //延时送入数据的反应时间gew=1; //关闭数码管个位位选delay(1);shiw=0; //打开数码管十位位选P0=table[shi]; //送入数据delay(1);shiw=1; //关闭数码管十位位选delay(1);}}void Timer0() interrupt 1{TH0=(65536-50000)/256; //定时器重装初值TL0=(65536-50000)%256;num++;if(num==20) //定时器每进行一个周期num加1,运行20个周期即为1s{num=0; //到1秒,num清0重新开始num1--; //倒计时1秒if(num1==0)num1=60;shi=num1%10; //两位数分离赋给数码管十位显示ge=num1%10; //两位数分离赋给数码管个位显示}}。
学院基于单片机控制的60秒倒计时的设计学生:专业:学号:指导老师:摘要今年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
模拟多通道压力系统是利用压力传感器采集当前压力并放映在显示器上,它可以分析压力过量程,并发出报警。
并采用电子秤原理可根据输入单价准确的计算出物体的金额。
本篇论文讨论了简单的倒计时器的设计与制作,对于倒计时器中的LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。
【关键词】单片机;AT89C51;LED数码管显示器;keil C;晶体振荡器AbstractPermeate in the social realm along with the calculator in recent years,single slice the application of the machine just at constantly alignment thorough,arouse a traditional control an examination a day a new moon benefit renewal in the meantime.In solidly the hour the examination the single slice that controls with auto the machine the application the system,slice machine usually Be a core parts to use,only single slice the machine aspect knowledge is not enough,return should according to concrete the hardware structure,and aim at concrere application the sofwatre of the object characteristics combine to make perfect.Imitating many passage pressure systemses is to make use of presure to spread the feeling machine to collect current pressure combine the reflection is on tne display,it can analyze the pressure surfeit distance,erupting to report to the bine the adoption electronics steelyard principle can according to input the amount of money that the unit price compures an object accurately.This thesis discuss that pour the design and creation of the timer in brief,for pour LED figures displays in the timer to say,I an for the sake of the simpification circuit,decline low cost,adopt to take software as connect of lord a people’s methdo,do not use specialized hardwate to translate the code machine namely,but adopt the software procedure to carry ontranslating code.【Keyword】single slice machine;AT89C51;The LEDfigure tube display;Keil C;Crystal Oscillactor一、原理设计1.AT89C51芯片AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。
单片机结课设计论文学院:班级:姓名:学号:任课老师:二〇一二年五月目录1学习心得 (2)2结课设计 (2)3正文 (4)3.1 设计要求 (4)3.2 结课设计的目标 (4)3.3 设计方法和内容 (4)3.3.1硬件设计方法 (5)3.3.2软件设计方法 (9)3.4 软件调试过程 (11)3.4.1 系统调试工具keil C51 (11)3.4.2 系统调试工具PROTEUS (11)4设计总结 (12)5参考文献 (13)学习心得单片机课程是我们专业一个很重要的课程,因为单片机方面的很多知识都应用在机电一体化中。
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。
了解到单片机的重要性,一开始我就决定了一定要好好学这门课。
刚开始接触单片机是很陌生的,当学到89C51单片机的结构及原理这一章的时候,感觉书本里面的内容抽象且难以理解,心里面本能地就有一股抵制情绪在作怪。
但是一想到单片机是如此的重要又不得不逼着自己去学去记。
学到指令系统这部分内容的时候,里面的很多指令往往让自己感到厌烦,面对一些冗长的汇编程序,往往不用看到最后就已经失去兴趣了。
感觉自己学习单片机的过程其实就是一个对陌生领域的本能的抵制而又渴望征服的过程!我意识到单片机的重要性也从心里面想过要学好这门课程,在学习的过程中我尽力的克服了由本能产生的对抽象知识的抵制情绪,上课认真听讲,做好笔记,最后总算对单片机有一个比较全面的了解。
特别是最后做的那七个实验的时候,每一次我都会认真的思考该怎么去实现这个功能,怎么样从书本中得到答案,怎么样去做好理论联系实际。
在实验的实践过程中,我发现要学好单片机不仅仅要认认真真学习书本上的理论知识,更要学得透彻,还要实际操作单片机。
理论联系实际,这样的学习才不会变得更加生动,更容易调动学习积极主动性。
虽然单片机这门课程已经结课了,但是老师传授给我的知识将使我终身受益!短短几十个学时的学习,老师作为领路者把我带入了单片机这一奇妙的领域。
摘要最近几年来随着运算机在社会领域的渗透,单片机的应用正在不断地走向深切,同时带动着传统控制检测日新月异的更新。
由于单片机具有体积小,易于产品化、面向控制、集成度高、功能强、靠得住性高、价钱低等特点,其在工业控制、机电一体化、智能仪表、通信等诸多领域中取得了普遍的应用。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来利用。
可是仅单片机方面知识是不够的,还应按照具体硬件结构,和针对具体应用对象特点的软件结合,以作完善。
本次设计采用C语言编程,通过倒计时子程序模块、矩阵键盘扫描模块、中断等子程序的正确挪用,完成了能够随时设置初值的基于51单片机控制的60秒倒计时系统。
关键词:倒计时单片机KeiluVision3 LED数码显示器目录1 MCS-51 单片机硬件结构及原理 (1)MCS-51系列单片机结构 (1)1.1.1 MCS-51单片机的大体组成 (1)1.1.2内部大体结构 (3)MCS-51单片机存储器安排 (6)1.2.1存储器空间安排 (6)1.2.2片内存储器 (6)单片机秒表课程设计的概述 (9)课程设计思路及描述 (9)课程设计任务和要求 (10)系统硬件方案设计 (11)软件方案设计 (11)生“HEX”文件的步骤 (12)源程序及注释 (15)原理图分析 (16)课程设计效果 (18)总结 (19)致谢 (20)参考文献 (21)1 MCS-51 单片机硬件结构及原理 MCS-51系列单片机结构 1.1.1 MCS-51单片机的大体组成 1 整体结构图1-1单片机的整体结构2. MCS-51单片机外部引脚及其说明最多见的封装形式是40引脚双列直插式DIP(Dual In-line Package) 尚有44引脚的无引线芯片载体封装PLCC(Plastic Leaded Chip Carrier)图1-2 MCS-51单片机外部引脚及说明其中两条电源线,两条外接晶体,4条控制或作电源复用,32条I/O 引线。
目录一、课程设计的目的、要求和设计目标 (1)1、目的 (1)2、要求 (1)3、目标.................................................................. 1二、硬件要求 (2)1、 AT89C51的芯片 (2)2、 LED 数码管显示器概述 (3)3、其他元器件介绍及参数选择.......................................... 6三、软件设计 (7)1、程序流程图 (7)2、程序导图 (7)3、定时 /计数器初值计算 (7)4、软件程序 (8)5、软件仿真设计………………………………………………… 9四、软件调试…………………………………………………………101、 <.HEX>文件的生成 (10)2、PROTEUS …………………………………………………… 10五、心得体会…………………………………………………………11一、课程设计的目的、要求和设计目标1、目的单片机课程即将结束, 课程的最后一项是单片机的课程设计。
通过课程设计, 我们要将在一个学期中所学的东西进行整理、归纳, 要把学到的知识转化成实际的运用,进一步的了解单片机的实质。
通过动手设计,深入学习,体验单片机在日常生活中的运用,提升专业知识。
课程设计的总体包括:对单片机的了解、运用,设计思路的解析,报告文字的处理等。
通过一系列的实际操作, 完善对课程的学习, 提升自我的学习能力和动手能力。
2、要求(1用单片机 AT89C51的定时器实现 60s 倒计时。
本例中用两位数码管静态显示倒计时秒值。
(2用 PROTEUS 设计,仿真基于 AT89c51单片机的 60s 倒计时实验。
(3通过 Keil uVision2软件,生成 .HEX 格式程序并植入 AT59C51单片机并调试、运行。
3、目标通过自主完成课程设计内容, 整理学期中所学到的知识, 了解单片机的程序过程和一系列的基础操作,将理论和实践相结合,完善课业。
单片机课程设计秒倒计时概述在单片机课程设计中,秒倒计时是一个常见的实践项目。
本文将介绍如何使用单片机设计一个简单的秒倒计时电路,并使用Markdown文本格式进行说明。
硬件设备•单片机(例如STC89C52)•七段数码管•按钮•电阻、电容等基础元器件功能设计本文设计的秒倒计时电路具有以下功能: 1. 系统上电后,自动开始倒计时; 2. 使用按钮控制启动/暂停倒计时; 3. 使用按钮控制归零操作; 4. 显示倒计时的秒数。
硬件连接七段数码管将7个IO口分别连接到七段数码管的对应引脚,使用共阳极数码管时,将数码管的共阳极引脚连接到VCC,使用共阴极数码管时,将数码管的共阴极引脚连接到GND。
按钮使用一个按钮作为启动/暂停倒计时的按键,使用另一个按钮作为归零操作的按键。
将按钮引脚连接到单片机的GPIO口,并通过上拉电阻将按钮引脚连接到VCC。
软件设计引脚定义首先,需要定义单片机的输入输出引脚。
根据硬件连接,假设七段数码管的引脚分别连接到P0口,启动/暂停按钮连接到P1.0口,归零按钮连接到P1.1口。
可以使用以下代码进行引脚定义:// 引脚定义sbit LED = P0; // 七段数码管连接到P0口sbit KEY1 = P1^0; // 启动/暂停按钮连接到P1.0口sbit KEY2 = P1^1; // 归零按钮连接到P1.1口然后,需要设计倒计时的逻辑。
在每个时钟周期,需要判断是否需要启动/暂停倒计时,以及是否需要进行归零操作。
具体的倒计时逻辑可以使用以下代码实现:// 秒倒计时逻辑void countdown() {static unsigned int seconds = 60; // 倒计时的秒数,默认为60秒static bit running = 0; // 表示倒计时是否运行中,默认为停止状态if (running) {if (seconds > 0) {seconds--;} else {running = 0;}}if (KEY1 == 0) { // 按下启动/暂停按钮running = !running;delay(10); // 延时去抖动}if (KEY2 == 0) { // 按下归零按钮seconds = 60;running = 0;delay(10); // 延时去抖动}}最后,需要设计显示倒计时的逻辑。
单片机控制的60s倒计时一.实验目的1.用单片机AT89C51的定时/计数器实现60s倒计时。
两位数码管静态显示倒计时秒值。
2.用PROTEUS设计、仿真基于AT89C51单片机的60s倒计时。
二.PROTEUS电路设计(1)AT89C51.BUS:总线式单片机(2)RES:电阻;(3)7SEG-COM-AN-GRN:带公共端共阳七段绿色数码管(4)BUTTON:按钮(5)CAP、CAP-ELEC:电容、电解电容(6)CRYSTAL:晶振2. 放置元器件、放置电源和地、连线、元器件属性设置、电气检测图中与P1口相接的数码管(左)显示十位数,与P2口相接的数码管(右)显示个位数,两个共阳数码管为静态显示,其中个位数数码管为总线接法。
总线标注:由P2口的总线引脚引出总线,并标注为P2[0..7]。
单击电线标注按钮Label,单击该总线,在弹出的编辑对话框“Edit Wire Label”中的“String”一栏中输入标注名P2[0..7],如图所示PAT快速线标注:单击属性分配工具按钮或直接由键盘敲入快捷键“A ”,弹出如图所示的对话框,并按此图进行设置,设置完成后单击“OK”按钮退出。
其中“String”初值“Count”为0,增量“Increment”为1,即首次对电线单击,标注自动以P20开始,对电线每单击一次,便以P21、P22、…递增式自动标注。
在编辑区一次单击个位数数码管的限流电阻与总线P2[0...7]间的电线,由上向下,即数码管的a~g的限流电阻与总线的连接电线,便在各电线上自动标注为P20、P21……P26如图所示。
下图为60s倒计时的电路原理图三.源程序设计、生成目标代码文件1.流程图2.源程序设计3.生成目标代码四.PROTEUS仿真1.加载目标代码文件打开元器件单片机属性窗口,在“Program File”栏中添加上面编译好的目标代码文件,在“Clock Frequency”栏中输入晶振频率为12MHZ。
60秒倒计时设计一:1.目的课程设计是单片机课程教学的最后一个环节,是对学生进行全面的系统的训练。
2.要求单片机控制的60s倒计时(1)用单片机AT89C51的定时器实现60s倒计时。
(2)用PROTEUS设计,仿真基于AT89c51单片机的60s倒计时实验。
3. 目标通过课程设计,使自己深刻理解并掌握基本概念,掌握单片机的基本应用程序设计及综合应用程序设计的方法。
2:方案选择图2.1:60秒倒计时总体电路设计本设计由硬件设计和软件设计两部分组成,总电路框图如图2.1所示。
具体设计:通过AT89C51型号单片机,由P1和P2两组I/O引脚分别控制两个7SEG–COM –ANODE型号数码管,分十位控制和个位控制,达到显示60秒倒计时的目的。
通过复位电路,在仿真过程中点击开关实现60复位3.1 AT89C51外形及引脚排列如图3.1所示图3.1:89C51的核心电路框图主要特性·与MCS-51 兼容·4K字节可编程闪烁存储器·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24MHz·三级程序存储器锁定·128×8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路管脚说明(1)电源及时钟引脚(4个)Vcc: 电源接入引脚Vss:接地引脚XTAL1:晶振震荡器接入的一个引脚(采用外部振荡器时,此引脚接地);XTAL2:晶体振荡器的另一个引脚(采用外部振荡器时,此引脚作为外部振荡器信号的输入端)。
(2)控制线引脚(4个)RST/Vpd:复位信号输入引脚/备用电源输入引脚;ALE:地址锁存允许信号输出引脚/编程脉冲输入引脚:EA:内外存储器选择引脚/片外EPROM编程电压输入引脚;PSEN:外部程序存储器选通信号输出引脚。
前言在生活和生产的各领域中,凡是有自动控制要求的地方都会有单片机的身影出现;从简单到复杂,从空中、地面到地下,凡是能想像到的地方几乎都有使用单片的需求。
现在尽管单片机的应用已经很普遍了,但仍有许多可以用单片机控制而尚未实现的项目,因此,单片机的应用大有想像和拓展空间。
单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。
但是,单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益上,更重要的意义还在于:单片机的应用正从根本上改变着传统的控制系统设计思想和设计方法。
从前必须有模拟电路或数字电路实现的大部分功能,现在已能使用单片机通过软件(编程序)方法实现了。
这种以软件取代硬件并提高系统性能的控制系统“软化”技术,称之为微控制技术。
微控制技术是一种全新的概念,是对传统控制技术的一次革命。
随着单片机应用的推广普及,微控制技术必将不断发展、日益完善和更加充实。
近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
模拟多通道压力系统是利用压力传感器采集当前压力并反映在显示器上,它可以分析压力过量程,并发出报警。
并采用电子秤原理可根据输入单价准确的计算出物体的金额。
本篇论文讨论了简单的倒计时器的设计与制作,对于倒计时器中的四位LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。
目录第1章方案论证1.1 课程设计的目的和要求 (1)1.2 总体设计 (1)第2章硬件设计 (2)2.1 AT89S51芯片概述 (13)2.2 LED数码管显示器概述 (15)2.3 其他元器件介绍及参数选择 (18)第3章软件设计 (28)3.1 程序框图 (28)3.2 定时/计数器初值计算 (2)3.3 软件程序…………………………………………………………………………………………………………………………………………………………第4章调试与仿真4.1 Keil软件介绍及使用 (30)4.2 Proteus软件介绍及使用 (30)课程设计心得体会………………………………………………………………………………………………………………………………………参考文献 (30)第一章方案论证1.1课程设计的目的和要求1.目的课程设计是单片机课程教学的最后一个环节,是对学生进行全面的系统的训练。
目录1前言 (1)2工程概况 (2)3正文 (2)3.1 设计目的与要求 (2)3.2 设计方法的目标 (2)3.3 设计方法和内容 (2)3.3.1硬件设计方法 (3)3.3.2软件设计方法 (7)3.4 软件调试过程 (9)3.4.1 系统调试工具keil C51 (9)3.4.2 系统调试工具PROTEUS (10)4设计总结 (11)5参考文献 (11)前言在生活和生产的各领域中,凡是有自动控制要求的地方都会有单片机的身影出现;从简单到复杂,从空中、地面到地下,凡是能想像到的地方几乎都有使用单片的需求。
现在尽管单片机的应用已经很普遍了,但仍有许多可以用单片机控制而尚未实现的项目,因此,单片机的应用大有想像和拓展空间。
单片机就是微控制器,它是嵌入式系统中的重要且发展迅速的组成部分。
单片机接上震荡元件(或震荡源)、复位电路和接口电路,载入软件后,可以构成单片机应用系统。
将它嵌入到形形色色的应用系统中,它就成为众多产品、设备的智能化核心。
所以,生产企业称单片机为“微电脑”。
单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。
但是,单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益上,更重要的意义还在于:单片机的应用正从根本上改变着传统的控制系统设计思想和设计方法。
从前必须有模拟电路或数字电路实现的大部分功能,现在已能使用单片机通过软件(编程序)方法实现了。
这种以软件取代硬件并提高系统性能的控制系统“软化”技术,称之为微控制技术。
微控制技术是一种全新的概念,是对传统控制技术的一次革命。
随着单片机应用的推广普及,微控制技术必将不断发展、日益完善和更加充实。
近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
模拟多通道压力系统是利用压力传感器采集当前压力并反映在显示器上,它可以分析压力过量程,并发出报警。
并采用电子秤原理可根据输入单价准确的计算出物体的金额。
本篇论文讨论了简单的倒计时器的设计与制作,对于倒计时器中的LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。
工程概况本次课程设计的主要概况是了解单片机控制的60s倒计时的过程。
是利用定时器和计数器的原理将倒计时过程显示在LED数码管上。
最后应用PROTEUS软件设计,仿真基于AT89c51单片机的60s倒计时实验。
通过做一个综合性训练题目,达到对内容的消化、理解并提高解决问题的能力的目的。
正文3.1 设计目的与要求课程设计是单片机课程教学的最后一个环节,是对学生进行全面的系统的训练。
进行课程设计可以让学生把学过的比较零碎的知识系统化,真正的能够把学过的知识落到实处,能够开发简单的系统,也进一步激发了学生再深一步学习的热情,因此课程设计是必不可少的,是非常必要的。
课程设计是提高学生单片机技术应用能力以及文字总结能力的综合训练环节,是配合单片机课程内容掌握、应用得的专门性实践类课程。
通过典型实际问题的实际,训练学生的软硬件的综合设计、调试能力以及文字组织能力,建立系统设计概念,加强工程应用思维方式的训练,同时对教学内容做一定的扩充。
对于单片机控制的60s倒计时的要求如下:(1)用单片机AT89C51的定时器实现60s倒计时。
本例中用两位数码管静态显示倒计时秒值。
(2)用PROTEUS软件设计,仿真基于A T89c51单片机的60s倒计时实验。
3.2 设计方法的目标通过课程设计,使自己深刻理解并掌握基本概念,掌握单片机的基本应用程序设计及综合应用程序设计的方法。
通过做一个综合性训练题目,达到对内容的消化、理解并提高解决问题的能力的目的。
3.3 设计方法和内容本设计由硬件设计和软件设计两部分组成,总电路如图1所示,硬件设计主要包括单片机芯片选择,数码管选择及晶振,电容,电阻等元器件的选择及其参数的确定;软件设计主要是实现60秒倒计时程序的编写,包括利用中断实现1秒的定时及60秒的倒计时。
具体设计:通过AT89C51型号单片机,由P1和P2两组I/O引脚分别控制两个7SEG–COM –ANODE型号数码管,分十位控制和个位控制,达到显示60秒倒计时的目的。
通过复位电路,在仿真过程中点击开关实现60复位。
图1 60秒倒计时总体电路设计3.3.1硬件设计方法AT89C51的芯片概述AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k BytesISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
其工作电压在4.5-5V,一般我们选用+5V电压。
外形及引脚排列如图2所示:AT89C51主要特性图2:89C51的核心电路框图·与MCS-51 兼容·4K字节可编程闪烁存储器·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24MHz·三级程序存储器锁定·128×8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路AT89C51管脚说明(1)电源及时钟引脚(4个)Vcc: 电源接入引脚Vss:接地引脚XTAL1:晶振震荡器接入的一个引脚(采用外部振荡器时,此引脚接地);XTAL2:晶体振荡器的另一个引脚(采用外部振荡器时,此引脚作为外部振荡器信号的输入端)。
(2)控制线引脚(4个)RST/Vpd:复位信号输入引脚/备用电源输入引脚;ALE:地址锁存允许信号输出引脚/编程脉冲输入引脚:EA:内外存储器选择引脚/片外EPROM编程电压输入引脚;PSEN:外部程序存储器选通信号输出引脚。
(3)并行I/O引脚P0.0-P0.7:一般I/O口引脚或数据/低位地址总线复用引脚;P1.0-P1.7:一般I/O口引脚;P2.0-P2.7:一般I/O口引脚或高位地址总线引脚;P3.0-P3.7:一般I/O口引脚或第二功能引脚所需器件如下表所列:序号元件类型元件参数元件个数备注1 芯片AT89C51 12 晶振12M 13 电源电容10UF 14 电容30PF 25 电阻10K 16 电阻470 147 数码管8段 2 共阳LED数码管显示器概述本设计中采用的是7SEG–COM –ANODE型号数码管,它是一种半导体发光器件,其基本单元是发光二极管。
实物如图3所示:图3 7SEG–COM –ANODE型号数码管数码管的分类数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。
共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。
共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。
当某一字段的阴极为高电平时,相应字段就不亮。
共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。
共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。
当某一字段的阳极为低电平时,相应字段就不亮。
LED数码管有两种连接方法如下:共阳极接法。
把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。
共阴极接法。
把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。
每个发光二极管的阳极通过电阻与输入端相连。
图4 LED数码管有两种连接方法测量数码管引脚,分共阴和共阳两类:找公共共阴和公共共阳:首先,我们找个电源(3到5伏)和1个1K(几百欧的也行)的电阻,VCC串接个电阻后和GND接在任意2个脚上,组合有很多,但总有一个LED 会发光的,找到一个就够了,然后GND不动,VCC(串电阻)逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阴的了。
相反用VCC不动,GND逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阳的。
也可以直接用数字万用表,红表笔是电源的正极,黑表笔是电源的负极。
3.3.2软件设计方法图5 程序框图定时/计数器初值计算(1)本电路应用TIMER0 MODE 16位计数器的计时中断法。
(2)1秒等于1000000微秒,而每一计时脉冲是1微秒,因此需输入100000个计时脉冲,方可达到1秒的时间。
本设计中,设定中断每次溢出时间50ms。
(3)由上式得知,循环20次即可达到1秒定时,即:N=t/Tcy=0.05s/0.000001=5000X=65536-5000=15536=3CB0H(4)由上式得知5000个脉冲,首先需设定TL0=3CH,TH0=0B0H,此时第1次只要输入5000个脉冲输入,就会溢出;第2次至第20次,则需每1000000个计时脉冲,定时1秒。
(5)上电时,显示60,开始倒数计时按下开关实现复位。
软件程序ORG 00HSJMP STARORG 1BHSJMP T1S; 转T1中断服务程序ORG 30HSTAR: MOV R2,#60;倒计时初值MOV R4,#20;定时中断溢出计数器R4初值为20 MOV IE,#88H; T1开中断MOV TMOD,#10H; T1方式1MOV TH1,#3CH;定时初值MOV TL1,#0B0H;定时初值SETB TR1;启动T1ACALL DIS;调用显示子程序SJMP $T1S: MOV TH1,#3CH; 中断程序MOV TL1,#0B0H; 重装初值DJNZ R4,T1S1; 定时1S到否MOV R4,#20; 到1S,重置R4=20DJNZ R2,T1S0; 倒计时递减CLR TR1; 倒计时结束,关定时器T1S0: ACALL DIS;调显示T1S1: RETI;中断返回SEG7: INC A; A的值加一MOVC A,@A+PC; 取显示断段RETDB 0C0H,0F9H,0A4H,0B0H; 0至3的共阳型显示码DB 99H,92H,82H,0F8H; 4至7的共阳型显示码DB 80H,90H,88H,83H; 8至B的共阳型显示码DB 0C6H,0A1H,86H,8EH; C至F的共阳型显示码DIS: MOV A,R2;单字节十六进制数转为十进制数MOV B,#10DIV ABACALL SEG7MOV P1,A;显示十位MOV A,BACALL SEG7MOV P2,A;显示个位RET;子程序返回END3.4 软件调试过程3.4.1 系统调试工具keil C51Keil C51 仿真器是一款利用KEIL C51 的IDE 集成开发环境作为仿真环境的廉价仿真器,是利用SST公司具有IAP功能的单片机SST89C58制作而成,主要是利用了SST89C58的IAP功能,所谓IAP功能是In application program 的英文缩写,是在应用编程的意思,通俗一点讲就是:它可以通过串口将用户的程序下载到单片机中,可以通过串口对单片机进行编程。