1、单片机控制秒表显示时间为—,暂停,复位优质资料 (可以直接使用,可编辑 优质资料,欢迎下载) 9 创新实践实训报告 学院 信息电子技术学院 专业 电子信息工程 班级 14 学籍号 姓名 指导教师 蒋野 2021年06月29日 单片机控制秒表电路 一、 电路工作原理 1. 工作原理 用STC89C52设计一个2位的LED数码显示作为“秒表”:显示时间为00—99秒,每秒自动加1,另设计一个“暂停”键S2和一个“继续”键S3。为使本设计系统更加完善,可以引入一个“复位”键S1,以方便对系统的控制。如图。
2、 本系统采用STC89C51单片机为中心器件,利用其定时器/计数器定时计数的原理,结合硬件电路如电源电路,晶振电路,复位电路和显示电路,以及一些按键电路等来设计计数器,将软硬件有机结合起来,其中软件系统采用汇编语言编写程序,包括显示程序,计数程序,中断,硬件系统利用Protues强大的功能来实现,简单易于观察,在仿真中就可以观察到实际的工作状态。 2. 元器件作用 (1) STC89C52单片机在电子行业中有着广泛的应用。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,ST
3、C89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。 (2) 时钟电路作用是为电路提供唯一的时钟信号。 (3) 复位电路外接一个开关,控制电路复位,接通电源电路直接复位,如果没有开关亦可将复位电路引出导线接电源后断开。 (4)本设计要求使用共阳极的数码管,如下是共阳极的数码管的0-9编码:0xc0,0x92,0x82,0xf8,0x80,0x90,0xf9,0xa4,0xb0,0x99. (5)控制电路:S2按下电路停止计时,S3按下电路恢复计时。
4、 二、程序流程图 开始 显示“00” 开启中断,并允许T1,T2中断 TH1、TL1 初始化 每隔1秒 开始计数 按键 S2 T1停止 暂停计数 S3 T2恢复 恢复计数 主程序流程图 三、检测安装与调试 1. 元件检测 序号 名称 型号(标称值) 测量值 误差 备注 1 电阻 1K 780 22% 2 电阻 10K 10.78 0.07% 3 电容 33pF 32 3% 4 电容
5、 10uF 9 10% 5 晶振 12M 12M 0 共阳极数码管检测管脚序号利用万用表二极管档红表笔接一个抵住两个管脚,利用另一个接触其他,找出1,2两个管脚,继续分别找出A,D,C,D,E,F,G,Dp管脚。 2. 安装 (1) 首先固定好元件,先固定单片机,以单片机为中心安装其他小件,电解电容需要注意不要贴在电路板上,放置短路。将电解电容贴近单片机减少影响。合理运用电路板,保证节省空间,导线明了。 (2) 按照proteus仿真电路连接电路图。 3. 调试 (1) 安装好后,接通电源,电路没有反应,数码管不亮。 (2)
6、 检查电路:利用万用表蜂鸣档来检测电路的通断,发现几处空焊,补焊完成。 (3) 二次接通电源,电路依然不工作。 (4) 复查电路:重新检测电路,利用万用表电流档,检测电路电流,发现电路无电流,检查40引脚VCC,发现单片机40引脚与插座短路,接触不良导致,陆续检查其他引脚。发现还有部分引脚短路。 (5) 继续检查电路,直至数码管显示数字为止。 结果显示,秒表运行正常。按照预期实现了99s计时、暂停以及继续的功能。 至此,秒表设计、制作、仿真及调试工作就全部完成了。 4. 电路工作电流和关键点电压检测 序号 名称 数值(mA) 数值(V) 备注 1 电路工作电流
7、28 5 2 EA电压 - 4.8 3 R1电压 - 0.0047 4 XTAL1 - 2.01 5 XTAL2 - 2.02 二、 问题与解决 如图可以看出利用两个数码管,首次焊接没有检测数码管器件为共阴极数码管,与设计程序不符,导致乱码,而后改接电路,重新安装共阳极数码管。单片机与排座接触不良,解决方法:利用废弃的二极管的管脚,插入排座排孔,增大接触面积。 附件 1. 利用单片机完成一定的任务,你的创意(创新)是什么? 我的创意就是电路的布局
8、实验操作起来与仿真不同,需要注意很多细节,例如原件检测。我的电路布局既节省空间,又不影响电路结构。
2. 程序
#include 9、msec==20)
{
msec=0;
sec++;
if(sec==100)
{
sec=0;
}
}
}
void main()
{
unsigned char led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
TMOD=0x01;
TH0=0x3C;
TL0=0xb0;
EA=1;
ET0=1;
TR0=1;
while(1)
{
if(W==0){TR0=1;}
if(H==0){TR0=0;}
P2=0x02;
10、
P0=led[sec%10];
delay(10);
P2=0x01;
P0=led[sec/10];
delay(10);
}
}
单片机课程设计
课程设计任务书
20 17 -20 18 学年 第 一 学期 第17周-18周
题目
基于51单片机控制的多功能秒表系统
内容及要求
1.设计制作一个秒表系统,可用多位数码管显示时间。
2.可用开关控制并用多位数码管显示当前时间。
3.可以进行计时并能清零重新计时。
进度安排
1.布置任务、方案论证 1天
2 11、硬件制作、程序编写、仿真调试 3天
3.检查、整理、写设计报告、小结 2天
4.答辩 1天
学生姓名:许乐 郭利铂
指导时间: 12月 23 日- 12 月 29 日
指导地点: F 楼 403 室
任务下达
2021 年 12月 23日
任务完成
2021 年 12 月 29 日
考核方式
1.评阅 √ 2.答辩 √ 3.实际操作 √ 4.其它□
指导教师
蒋沅
系(部)主任
王长坤
注:1、此表一组一表二 12、份,课程设计小组组长一份;任课教师授课时自带一份备查。
2、课程设计结束后与“课程设计小结”、“学生成绩单”一并交院教务存档。
摘要
本设计是设计一个单片机控制的多功能秒表系统。
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动着传统控制检测日新月异的更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还要根据具体的硬件结构,以及针对具体的应用对象的软件结合,加以完善。秒表的出现,解决了传统的由于人为因素造成的误差和不公平性。
本设计的多功能秒表系统采用AT89C51单片机为中心器件,利用其定时器/计数器 13、定时和记数的原理,结合显示电路、电源电路、LED数码管以及按键电路来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行计数,并且结合相应的显示驱动程序,使数码管能够正确地显示时间,暂停和中断。我们设计的秒表可以同时记录八个相对独立的时间,通过上翻下翻来查看这八个不同的计时值,可谓功能强大。其中软件系统采用汇编语言编写程序,包括显示程序,计数程序,中断,延时程序,按键消抖程序等,硬件系统利用PROTEUS强大的功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。
关键字:单片机,多功能秒表
小组成员:许乐,郭利铂
小组分工:
小组成员:讨论并确定秒表要实现哪些 14、功能
许乐:硬件电路的设计仿真,查阅资料
郭利铂:编写程序,撰写实验报告
目录
1.概述4
1.1设计目的4
1.2设计要求4
1.3设计意义4
2.系统总体方案及硬件设计4
2.1系统总体方案4
2.2硬件设计5
2.2.189C51单片机5
2.2.2晶体振荡电路6
2.2.3 复位电路7
2.2.5显示电路8
2.2.6 系统电路图9
3.软件设计9
3.1设计特点9
3.2设计思路10
3.2.1程序流程图10
3.2.2程序10
4.PROTEUS软件仿真13
4.1仿真13
4.2仿真结果描述14
4.3结论及 15、进一步设想15
5.元器件清单………………………………………………………………………16
6.课程设计体会16
7.参考文献 …………………………………………………………………….….18
1.概述
1.1设计目的
设计一个单片机控制的秒表系统。利用单片机的定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及按键来设计秒表。将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时具有开始/暂停,记录,上翻下翻,清零等功能。
1.2设计要求
(1)共四位LED显示,显示时间为00:00~59.99
(2)共五个按键,分别是开始/暂停,记录,上翻 16、下翻,清零键;
(3)能同时记录多个相对独立的时间并分别显示;
(4)翻页按钮查看多个不同的计时值;
1.3设计意义
(1)通过本次课程设计可以使我们进一步熟悉和掌握单片机内部结构和工作原理,了解单片机应用系统设计的基本步骤和方法。
(2)通过利用AT89C51单片机,理解单片机在自动化仪表中的作用以及掌握单片机的编程方法。
(3)通过设计一个简单的实际应用输入及显示模拟系统,掌握单片机仿真软件PROTEUS的使用方法。
(4)该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、功能,并能同时记录多个相对独立的时间利用翻页按钮查看多 17、个不同的计时值,该种秒表在现实生活中应用广泛,具有现实意义。
2.系统总体方案及硬件设计
2.1系统总体方案
本系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等来设计计时器,将软、硬件有机地结合起来。其中软件系统采用汇编语言编写程序,包括显示,计数,中断,延时,按键消抖程序等,并在编程软件中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。
单
片
机
外围
电路
电路
电源
18、
电路
电路
显示电路
键盘电路
图1 系统电路原理
2.2硬件设计
89C51单片机
MCS-51系列单片机是8位单片机产品,89C51是其中的典型代表,基本模块包括以下几个部分:
(1)CPU:89C51的CPU是8位的,另外89C51内部有1个位处理器
(2)R0M:4KB的片内程序存储器,存放开发调试完成的应用程序
(3)RAM:256B的片内数据存储器,容量小,但作用大
(4)I/O口:P0-P3,共4个口32条双向且可位寻址的I/O口线
(5)中断系统:共5个中断源,3个内部中断,2个外部中断
(6)定时器/ 19、计数器:2个16位的可编程定时器/计数器
(7)通用串行口:全双工通用异步接收器/发送器
(8)振荡器:89C51的外接晶振与内部时钟振荡器为CPU提供时钟信号
(9)总线控制:89C51对外提供若干控制总线,便于系统扩展
89C51的引脚图如下:
89C51单片机引脚图
晶体振荡电路
89C51芯片内部有一个高增益反相放大器,用于构成振荡器。引线 XTAL1和XTAL2分别为反向放大器的输入和输出,两端跨接石英晶体及两个电容就可构成稳定的自激振荡器。
这里,我们选用51单片机12MHZ的内部振荡方式,电容器C1,C2起稳定振荡频率,并对振荡频率有微调作用,C1和C2可 20、在20-100PF之间取值,这里取33PF。
复位电路
采用上电加按键复位电路,上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电加按键复位的操作。
按键电路
在按键电路中,我们可以在I/O口上直接接按键,或者通过I/O口设计一个键盘,然后通过键盘扫描程序判断是否有键按下等。键盘扫描电路节省I/O口,但编程有些复杂,在这里,由于我们所用的按键较少,且系统是一个小系统,有足够的I/O口可以使用,为了使程序简化,我们采用按键电路,用部分P1口做开关,P1.0开始/暂停,P1.1记录,P1. 21、2上翻,P1.3下翻,P1.4清零。对于按键的设计,采用了防抖动的程序设计,使系统的性能得到进一步的提升。当按键被按下时,相应的引脚被拉低,经扫描后,获得键值,并执行键功能程序,因此按下不同的按键,将执行不同的功能程序。
2.2.5显示电路
显示电路既可以选用液晶显示器,也可以选用数码管显示。我们采用的是数码管显示电路。用四个共阴极LED显示,LED是七段式显示器,内部有7个条形发光二极管和1个小圆点发光二极管组成,根据各管的亮暗组合成字符。
在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示稳定,但是占用端口比较多;动态显示所使用的端口比较少,可以节省单片机的I/O 22、口。
在设计中,我们采用LED动态显示,用P0口驱动显示。由于P0口的输出级是开漏电路,用它驱动时需要外接上拉电阻才能输出高电平。
系统电路图
3.软件设计
3.1设计特点
在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。
应用系统的程序由包含多个模块的主程序和各种子程序组成。各程序模块都要完成一个明确的任务,实现某个具体的功能,如:计数、延时、和显示等,在具体需要时调用相应的模块即可。
功能描述:用四位LE 23、D数码管显示时间。一个"开始/暂停"键,一个"复位"键,一个“记录”键,可同时记录八个相对独立的时间;一个“上翻”键,一个“下翻”键,查看八个不同的计时值。五个按键分别通过五个端口控制秒表的五个功能。
3.2设计思路
3.2.1程序流程图
开始
初始化化
P1.0=0??
P1.1=0??
P1.2=0??
P1.3=0??
P1.4=0??
停止
下翻
上翻
够8个个?
N
Y
记录
N
N
N
N
N
Y
Y
Y
Y
Y
清零
开始
初始化
P1.0=0?
P 24、1.1=0?
P1.2=0?
P1.3=0?
P1.4=0?
停止
下翻
上翻
够8个?
N
Y
暂停记录
N
N
N
N
N
Y
Y
Y
Y
Y
清零
3.2.2程序
程序如下:
/*
1、程序目的:使用定时器学习秒表计时,记录8组数据,通过上翻、下翻键查看记录的数据
2、硬件要求:数码管、晶振12M
*/
#include 25、0x6d,0x7d,0x07,0x7f,0x6f}; //共阴数码管 0-9
code unsigned char tab1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef} ;//共阴数码管0-9带小数点
sbit key1 = P1^0; //开始、暂停
sbit key2 = P1^1; //记数
sbit key3 = P1^2; //上翻
sbit key4 = P1^3; //下翻
sbit key5 = P1^4; //清零
static unsigned char ms, 26、sec;
static unsigned char Sec[8],Ms[8];
static int i ,j;
void delay(unsigned int cnt) //延时程序
{
while(--cnt);
}
void main()
{
unsigned char key3_flag=0,key4_flag=0;
TMOD |=0x01;//定时器0 10ms in 12M crystal 用于计时
TH0=0xd8;
TL0=0xf0;
ET0=1;
TR0=1;
TMOD |=0x10; //定时器1用 27、于动态扫描
TH1=0xF8;
TL1=0xf0;
ET1=1;
TR1=1;
EA =1;
sec=0; //初始化
ms=0;
P1=0xff;
i=0;
j=0;
while(1)
{ if(i>=8)
i=0;
start: //开始、暂停
if(!key1) //判断是否按下
{
delay(50); //去抖
if(!key1)
{
while(!key1) //等待按键释放
{;}
TR0=!T 28、R0;
}
} //记录
if(!key2) //判断是否按下
{
delay(50); //去抖
if(!key2)
{ while(!key2) //等待按键释放
{;}
if(i>=8) //8组数据记录完毕
{TR0=0; goto start;}
Sec[i]= sec; //将数据存入数组
Ms[i]= ms;
i++;
}
}//上翻
if(!key3)
{ 29、
delay(50);
if(!key3)
{ while(!key3)
{;}
TR0=0;
key3_flag=1; //按键3标志
if(j==i)
goto start;
else
if(key4_flag)
j+=2;
key4_flag=0;
sec=Sec[j];ms=Ms[j];
j++;
}
}//下翻
if(!key4)
{
delay(50);
if(!key4)
30、{
while(!key4)
{;}
TR0=0;
key4_flag=1; //按键4标志
if(j<0)
goto start;
else
if(key3_flag)
j-=2;
key3_flag=0;
sec=Sec[j];ms=Ms[j]; //显示数组里的内容
j--;
}
} //清零
if(!key5)
{
delay(50);
if(!key5)
while(!key5)
{;}
TR 31、0=0;
ms=0;
sec=0;
for(i=0;i<8;i++)
{
Sec[i]=0;Ms[i]=0;
}
i=0;
}
}
}
/********************************/
/* 定时中断1 */
/********************************/
void time1_isr(void) interrupt 3 using 0//定时器1用来动态扫描
{
static unsigned char num;
32、 TH1=0xF8;//重入初值
TL1=0xf0;
switch(num)
{
case 0: P2=0xfe;P0=tab[sec/10];break;//显示秒十位
case 1: P2=0xfd;P0=tab1[sec%10];break; //显示秒个位
case 2: P2=0xfb;P0=tab[ms/10];break;//显示十位
case 3: P2=0xf7;P0=tab[ms%10];break; //显示个位
default:break;
}
num++;
if(num==4)
num= 33、0;
}
/********************************/
/* 定时中断0 */
/********************************/
void tim(void) interrupt 1 using 1
{
TH0=0xd8;//重新赋值
TL0=0xf0;
ms++;//毫秒单元加1
if(ms>=100)
{
ms=0;//等于100时归零
sec++;//秒加1
if(sec>=60)
{
sec=0;//秒等于60时归零
34、 }
}
}
4.PROTEUS软件仿真
4.1仿真
将以上程序清单导入先前做好的Proteus仿真电路,汇编之后,开始进行仿真。仿真结果如下:
显示清零功能:
按下开始键后显示
按下清零键后显示
4.2仿真结果描述:
按“开始”键,秒表开始计时;按“暂停”键,秒表暂停计时;按记录键,秒表记录时间,共可记录八个数值;按上翻下翻键,可查看这八个不同的计时值。
4.3结论及进一步设想:
根据实验要求,本次课设基本完成了设计要求,由于秒表系统并不一定仅仅局限于计时,定时等功能,还可以进行多项的扩展,可以利用AT89C51强大的扩展功能,进一步丰富秒表的功能, 35、例如可设定计时时间,倒计时等等众多功能。单片机以其强大的功能和良好的兼容性可以更好地为我们服务,通过查阅各种资料,多了解一些单片机有关知识,可以为以后的工作和学习生活创造更多的便利条件。
5.元器件清单
元件名称
型号
数量/个
单片机
AT89C52
1
晶振
12MHZ
1
电容
22pF
2
电解电容
10uF
1
电源
5V
1
数码管
HS-3461AS
1
电阻
1K/10K
5/8
按键开关
6
6.课程设计体会
通过本次课程设计,我们深刻地认识到自己有很多不足之处,比如在自主学习能力方面的不足,实际动手操 36、作能力的不足等。 这次的单片机课程设计是理论与实践相结合的范例。该设计从头到尾都要自己参与进来,熟悉了整个设计流程才能更快地设计出方案并完成设计。
本次课程设计我主要负责硬件电路的焊接,写程序和查阅相关资料。单片机课程早已结束,相关的知识已经很模糊,导致我们在设计硬件电路中遇到了不少麻烦。首先是不知从何入手。虽然小组讨论后确定了秒表要实现的功能,可是没有相关理论知识的熟知和实践操作。查阅了与89C51单片机相关的资料也阅读了其他人单片机数字秒表的设计,慢慢地我们开始了解其中原理,一步步设计出了硬件电路的各个部分,如晶体振荡电路,复位电路,按键电路,显示电路。完成设计后需要运用PROTEUS软 37、件进行设计仿真。
这次的课程设计同学进行了交流和讨论,我们分工进行设计,从搜索资料到硬件、软件的调试,每一步、每一个细节都经过我们自己的思考,我们共同讨论各方案的比较选择、硬件、软件的设计和调试,最终拿出了我们的成果。在做的过程中不但加深了我们对单片机理论知识的认识和理解还认识到了这门学科在应用方面的广阔前景。
实践是最有高度也是最能体现整体水平的整个设计过程中,我们不断地探索,设计出了不一样的硬件电路图,写过了不一样的程序,正如设计中如何能使硬件电路图简单明了,程序简单而准确,如何能准确的运行,都是通过与同学老师的交流,慢慢摸索出来的。以上的不断探索,使我们进一步熟悉和掌握单片机内部结构 38、和工作原理,了解单片机应用系统设计的基本步骤和方法。通过利用AT89C51单片机,理解单片机在自动化仪表中的作用以及掌握单片机的编程方法。通过设计一个简单的实际应用输入及显示模拟系统,掌握单片机仿真软件PROTEUS的使用方法。
我们设计的这种具有记录,上翻下翻功能的秒表在现实生活中应用广泛,如体育项目,因此本次课程设计具有现实意义,我很开心能将知识运用到实践中并在自主学习中收获到那么多。
7.参考文献
[1]万福君. 单片微机原理系统设计与应用.合肥:中国科技大学出版社,2005
[2]杨光友. 单片微型计算机原理与接口技术.北京:水利水电出版社,2002
[ 39、3]胡耀辉. 单片机系统开发实例经典. 北京:冶金工业出版社,2006
[4]刘守义、杨宏丽. 单片机应用技术.西安:西安电子科技大学出版社,2003
[5]姜武中、姜春霞. 片机原理与接口技术. 大连:大连理工大学出版社,2002
[6]李朝青. 单片机原理及其接口技术. 北京:北京航空大学出版社,1998
[7]肖玲妮. Protel99SE印刷电路板设计教程. 北京:清华大学出版社,2003
单片机课程设计报告
设计课题:秒表设计
40、
专业班级:电子***班
学生姓名:***
学号:***
指教教师:***
设计时间:2021年5月30~6月19日
目录
一、 设计任务和要求………………………………………….….3
(1)设计任务…………………………..…………………...…..…3
(2)设计要求…………………..……………..………………....…3
二、 设计方案与论证………………………………………….....3
三、 单元电路设计与参数计算………………………………….4
(1)时钟电路…………………………………………………….4
(2)按钮电路…… 41、……………………………………………….4
(3)显示电路…………………………………………………….5
(4)单片机……………………………………………………….5
四、 原理图及器件清单………………………………………….6
( 1 )总原理图…………………………………………………..…..6
(2)PCB图………………………………………………….…….7
(3)Proteus仿真图…………………………………………….……7
(4)元器件清单………………………………………..……….….8
五、 安装与调试……………………………………………..…..8
(1)安装…………………… 42、…………………………………...8
(2)调试………………………………………………………...8
六、 性能测试和分析…………………………………………….9
七、 结论和心得………………………………………………….9
八、 参考文献……………………………………………….…...9
秒表设计
一、 设计任务和要求错误!未找到目录项。
(1)设计任务
用AT89C51设计一个3位的LED数码作为“秒表”。
(2)设计要求
显示时间为0.0-99.9秒,每0.1秒自动加1,另外设计一个“开始”键、一个“复位”键和一个“停止”键。秒表可单独分别计时,且最多可计5次。
43、
二、方案设计与论证
本设计分为时钟电路、按钮电路、显示电路和单片机四大部分,这些模块中单片机占主控地位。其模块电路如图2-1所示。时钟电路常用的有内部时钟方式和外部时钟方式,但因为本设计中只需要一片单片机,所以采用内部时钟方式比较简单。按钮电路中的“复位”按钮是按键手动复位,它有电平和脉冲两种方式,比较电路的复杂程度,本设计选择了按钮电平复位电路,其他几个按钮则是通过单片机判断高低电平的不同来控制按钮。显示电路所用的数码管有共阴和共阳之分,不管使用何种数码管,P0口作为I/O使用时都是需要上拉电阻才能驱动数码管。另外,因为单片机的4个并行I/O口的输出电流一般是1mA,短路电流为4mA左 44、右,而数码管的最少驱动电流也需要10mA,因而不管在使用共阴数码管时,单片机输出口也必须使用上拉电阻提高输出电流,才能驱动数码管。为了使电路简单化,本设计选用共阳数码管。 但根据显示方式的不同选择,我们可以有几种方案:
方案一:使用静态显示方式。静态显示方式下的数码管的显示字符一经确定,相应锁存器锁存的断码输出將维持不变,直到送入另一个字符的断码为止。因而此设计中使用的显示位数使用了三个8位并行I/0口。如果另外想扩展单片机功能,则能使用的输出管脚很是有限。
方案二:使用动态显示方式。这个显示方式是将所有显示位的段码线的相应段并联在一起,由一个8位I/O口控制,而各位的共阴或共阴极分别由相 45、应的I/O线控制,形成各位的分时选通。这种显示方式,简化了硬件电路,特别在多位数码管显示时尤为突出。
本小组尝试了各种方案,在此报告中以静态显示方式为例说明。(动态显示方式省略)
单片机
AT89C51
显示电路
按钮电路
时钟电路
图2-1
三、单元电路设计与参数计算
注://单元电路设计中的网络标号的数字即为单片机的管脚//
(1)时钟电路
图3-1
时钟电路如图3-1所示,时钟电路的晶振频率越高,系统的时钟频率越高,单片机的运行速度也 46、就越快。晶振频率根据设计需要设为12MHz,又根据谐振性质,电路中的电容C1、C2选择为30pF左右。该电容的的大少会影响振荡器频率的高低、振荡器的稳定性和起振的快速性。
(2)按钮电路
图3-2a 图3-2b
A、复位按钮
根据计算容抗的公式以及并联电阻变小的性质,可以知道,当S13断开时,C3的容抗大,管脚9处的电位U9为电阻R3上的压降,因而U9为低电平,复位键无效。当S13按下时,R2与C3的并联阻抗变小,R3上的压降增大,U9为高电平,复位键有效,实现复位功能。本设计中C3取值22uF,电阻R2取值1 47、00欧姆,R3取值1K欧姆。具体电路如图3-2a所示。
B、开始,停止、翻页按钮
电路如图3-2b所示
(3)显示电路
P1口控制显示的是十位,p0口控制显示的是个位,P2口控制显示的是十分位。
不同的数码管显示方式,对应的最适合的共阴或者共阳级的数码管也不同。静态显示的适宜选共阳的数码管,动态显示的适宜选共阴的数码管。如果动态显示方式下选择共阳的数码管,位选端直接用单片机驱动则数码管的亮度不够,因而应该在位选端使用上拉电阻以提高数码管的驱动电流,但因为显示那个的数据段选的数目不同,故而需要用电阻对各段进行限流,以保证显示的每个数据亮度相同。相同情况下,静态显示的数码管的亮度要比 48、动态的亮。
(4)单片机
单片机的程序可用汇编语言也可用C语言,为了提高使用汇编语言的能力,本设计特用了汇编语言了编写程序主程序流程图如下所示,具体程序见电子档。主程序流程图:
程序开始
程序初始化
P1.7=?0
开各中断
P3.3=?0
计五次?
翻页
调用显示子程序
关定时器
复位
四、总原理图及元器件清单
(1)总原理图
(2)PCB图
(3)Proteus仿真图
(4)元器件清单
1) AT89C51的引脚图和数码管5101BS的引脚图
图4-3a AT89C51引脚图 图4-3b 5101引 49、脚图
2)元器件总清单
元件名称
数量
备注
元件名称
数量
备注
5101B
3块
AT89C51
1块
按钮
4个
排阻
1个
8个引脚
拨动开关
1个
电容
2个
33pF
发光二极管
1个
红色
电容
1个
100uF
电阻
2个
1K
晶振
1个
12MHz
电阻
1个
100
五、安装与调试
(1)安装
制板的顺序依次是:画原理图、做封装、在原理图中添加元器件对应的封装、布PCB板、改焊盘大少、打印PCB图、用快速制板机将PCB图烤制到铜板上、腐蚀铜板、钻孔、放置元器件、烙铁焊 50、好器件。一块电路板就安装完毕了。
(2)调试
将外部电源接至电路板上,检验电路板是否完全实现设计要求。本设计中,发现按钮功能完全符合设计要求,但是数码管的显示中有些段码不亮,从而显示的数据乱码,用万用表检测对应的管脚是否有电压,发现焊盘有虚焊,引脚与引脚之间有短路,排查后电路板实现设计要求。
六、性能测试与分析
所制电路板虽然能实现设计中要求的功能,但是在实际使用中还是存在着许多缺陷。这块电路板不能随意查看记录的数据,而是必须在计完五次数据后才能依次的翻页查看,复位后所计数据便会丢失,不能翻看历史,所计数据组数不能满足现实需要。
七、结论与心得
在这三周的课程设计中,不管是在软件方






