基于 51 单片机的秒表系统设计:专业班级与学生姓名

秒表系统设计专业、班级:学生姓名:

3.开发部分 (1)开关按钮3:“复位60.0”按钮(用于60秒倒计时)。按下按钮后数码管复位为“60.0”(用于倒计时)。 (2)开关按钮4:倒计时“逐渐减少”按钮。按下按钮后数码管开始“逐渐减少”倒计时。 (3)开关按钮5:倒计时初值“增加”按钮。 (4)开关按钮6:倒计时初值“减少”按钮。 4.课程设计难点 单片机电子秒表主要需要解决三个问题。第一是单片机定时器的使用(一个控制顺序计时,一个控制倒计时);第二是如何实现LED的动态扫描显示;第三是如何编程实现键盘输入。 5.课程设计仪器集成电路芯片STC89C52、八段数码管、MCS-51系列单片机模拟课程系统软件(keiluvision2)。-3-摘要………………………………………………………………………………………………2 关键词…………………………………………………………………………………………2 任务书…………………………………………………………………………………………31 设计任务目的……………………………………………………………………………………52.设计方案的选择与论证………………………………………………………………52.1 系统总体设计方案……………………………………………………………………52.2 系统总体框图……………………………………………………………………53. 电路设计………………………………………………………………………………63.13.23.33.4 单片机最小系统设计………………………………………………6 数码管显示模块设计………………………………………………………………6 按键控制系统模块设计………………………………………………………………6 程序设计4.制作调试过程………………………………………………………………11 5.结果分析及总结……………………………………………………………………12 参考文献………………………………………………………………………………12 附录a.秒表定时器原理图……………………………………………………………13 附录b.元器件清单…………………………………………………………………………14 附录c.秒表定时器实物图…………………………………………………………………15-4-1. 设计任务目的以单片机课程所学内容为基础,结合其他相关课程知识,设计一款电子秒表,以加深对单片机知识的理解,锻炼实际动手能力,为以后的毕业设计和工作打下坚实的基础;掌握单片机内部功能模块的应用,如定时/计数器、中断、I/O口、串口通信等功能;掌握单片机应用系统的软硬件设计流程、方法及实现。

2、设计方案选择与论证 2.1总体系统设计方案以STC89C51单片机为核心控制部件,采用12M晶振与30PF小电容组成振荡电路;以四合一共阴极数码显示管作为显示部分,组成数字秒表的主体结构,配合独立的键盘及复位电路,完成本秒表的计时、清零、停止、增加、减少初始时间等功能。 2.2总体系统框图 图2.2系统设计框图 3、电路设计 3.1单片机最小系统设计 图3.1单片机最小系统-5-STC89C52单片机最小系统模块 独立按键控制模块 4位数码管显示模块 1、时钟电路 将定时元件(一个石英晶体和两个电容)接在XTAL1、XTAL2引脚上,内部振荡器可产生自激振荡。 本设计采用的是12M的石英晶振。与晶振并联的两个电容的大小对振荡频率有轻微的影响,可以起到频率微调的作用。采用石英晶振时,电容可在20~40pF之间选取。2、复位电路复位操作通常有上电自动复位和开关复位两种基本形式。在上电瞬间,电容两端的电压不能突变,此时将电容负极接RESET,电压全部加到电阻上,RESET输入为高电平,芯片复位。随后+5V电源对电容充电,电阻上电压逐渐减小,最后等于0,芯片正常工作。复位按钮并联在电容两端,不按下复位按钮时,电路实现上电复位,待芯片正常工作后,再按下RST脚使之为高电平,实现手动复位的效果。

3、EA/VPP(31脚)的功能及连接 51单片机的EA/VPP(31脚)是内外程序存储器的选择脚。当EA保持高电平时,单片机访问内部程序存储器;对于现在的大多数单片机来说,内部程序存储器(一般是flash)容量很大,所以基本上不需要外接程序存储器,而是直接使用内部存储器。 4、P0口外接上拉电阻 51单片机的P0口是开漏输出,没有内部上拉电阻,因此,当作为普通I/O输出数据时,由于V2截止,输出级为开漏电路,要使“1”信号(即高电平)正常输出,必须外接上拉电阻。 3.2数码管显示模块的设计 显示部分采用动态显示,数码管的动态显示界面是单片机中应用最广泛的显示方式之一。 动态驱动就是把所有数码管的8个显示笔划“a、b、c、d、e、f、g、dp”的同名端连在一起,在每个数码管的共阴极上加一个位选控制电路。位选由各自独立的I/O线控制。单片机输出字形代码时,所有数码管接收到的都是相同的字形代码,但具体由哪个数码管显示字形则取决于单片机对位选端电路的控制。因此,我们只要打开需要显示的数码管的选择控制,该位就会显示字形,没有被选中的数码管不会亮。通过分时轮流控制每个数码管的位选端,就控制每个数码管轮流显示。这就是动态驱动。

动态显示是利用人眼的视觉暂留特性实现的,其实任何时刻显示屏上都只显示一个数码管,由于数码管显示的时间间隔和节奏较短且快,人眼无法反应过来,所以看到的是连续显示的现象。为防止闪烁,延时时间在1ms左右,不宜过长或过短。3.3按键控制系统模块设计利用P1口作为独立按键信号的输入端,控制时钟加1s、减1s、复位60.0s等操作。利用外部中断0作为秒表定时器的启动、暂停操作。且所有按键均为低电平有效。部分按键为单刀双掷开关,用于控制计时的增加或减少及60.0s计时和60.0s外部计时的限制。3.4程序设计如下:-6- nclude re g52. h //包含52个MCU寄存器定义的头文件 unsignedcharTab1[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; //段码表 unsignedchar Tab2[ ={0xbf,0x86, 0xdb,0xcf, 0xe 0x87,0xff, 0xef //位段码表 unsignedintx; unsignedchar sbitint 0=P3^2; sbiti nt 1=P3^3; sbitSUB60=P1^1; sbitS60=P1^2; sbit K5=P1^3; sbit K6=P1^4; sbit K7=P1^5; sbit K8=P1^6; /******************************1ms延时基准voiddelay1ms(uns gnedinti) for(j=0;j125;j++)//1ms基准延时程序12MHZ晶振play(unsigne dintx) P2=0xfe;//P2.0脚输出低电平,DS6亮起P0=Ta b1[ 1000];//以1ms为单位显示百位(P2=0xfd;//P2.1脚输出低电平,DS6亮起-7-P0=Ta b1[ x00/ 100];//以1ms为单位显示十位(P2=0xfb;//P2.2脚输出低电平,DS6亮起P0=Ta b2[ x0/ 10];//以1ms为单位显示个位(P2=0xf7;//P2.3脚输出低电平,DS7亮起P0=Tab1[ x] ; //显示0.1位 del a y1ms( TMOD=0x01; //TMOD=00000001B,使用计数器T0工作模式 1EA=1; //启动通用中断 ET0=1; //允许定时器T0中断 EX0=1; //允许外部中断I NT0 IT0=1; //I NT0为负脉冲触发方式 TH0=( 65536- 50000) 256; //初始化计数器T0高8位 TL0=(65536-50000)%256; //初始化计数器T0低8位 TF0=0; //del a y1ms( 20); K5); //按下该键关机} 按一次触发一次-8- *********K6P1.4 按一次减1 开关S2****************************/ dela y1ms(20);

单片机

STC89C51 单片机烧写程序的硬件工具与软件设置

2024-5-29 7:03:09

单片机

全新模式单片机 C 语言基础教学,周日晚直播,3-4 个月掌握

2024-5-29 8:03:58

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索