基于单片机的简易秒表制作
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DIP-40
1
2
IC插座
DIP40
双列直插式/40个引脚孔
1
3
晶体振荡器
12MHZ
石英晶体振荡器
(非温度补偿式)
直插式
1
4
数码管
HS-5101BS2
6
5
IC插座
单排针插座/16个引脚孔,间距2.54mm
说明:串口下载RS232
1
6
RS232通讯
MAX232
DIP
1
7
普通按键
DTS65K
3
8
复位按键
DTS65K
简wenku.baidu.com秒表
一.实验目的
1.了解数码管与单片机的连接方式。
2.熟悉定时器.计数器.中断的综合应用技术。
3.熟悉键盘的使用。
二、实验任务
键盘是单片机应用系统中最常用的输人设备,用它输入数据或命令。数码管是单片机应用系统最常见的输出设备,用它显示单片机输出的视觉信息。本次实验制作的简易秒表,是利用按键控制LED数码管的显示,实现简易秒表的启动、停止与复位。
TL0=(65536-10000)%256;
flag++;
if(flag==100)
{ flag=0;
second++;}
if(second==60)
{
second=0;
}
}
六、硬件原理图和PCB图
七、实验器件
秒表电路器件清单如表1所示。
表1秒表电路器件清单
元件名称
参数/型号
说明
封装
数量
1
单片机
STC89C51
0x7f,0xbf,0xdf,0xef,
0xf7,0xfb,0xfd,0xfe};
void delay(uint);
uint second;
uint flag;
sbit k1 = P3^2;//定义开始按键
sbit k2 = P3^3;//定义暂停按键
sbit k3 = P3^5;//定义复位按键
void main()
五.程序
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90};
uchar code wei[]={
3.实现按键控制。利用单片机P3复用端口输入按键控制命令,如:定义sbit key1=P3^2,可以将与P3^2端口相连的按键定义为启动按键,与key2=P3^3为相连定义为暂停按键,与key3=P3^5相连定义为复位按键。由原理图可知按键未按下时,相应端口为高电平,按下为低电平,因此可由条件key1/key2/key3是否为零来判断是否有键按下,有键按下就执行相应操作,实现按键的控制功能。
{
uint count;
second=0;
flag=0;
TMOD=0x01; //T/CO工作在定时器方式1
TH0=(65536-10000)/256; //预置计数初值
TL0=(65536-10000)%256;
EA=1; //CPU开中断
ET0=1; //T/C0开中断
TR0=1;
while(1)
华中科技大学
单片机原理及应用
课程设计报告
姓名:毅哥
学号:080108031113
学部(系):信息学部
专业年级:08自动化
指导教师:余愿
2011年6月27日
一.实验目的……………………………………………………..3
二.实验任务……………………………………………………..3
三.实现任务……………………………………………………..3
具体实现:1.实现计时。利用单片机内部T0计时器实现计时,首先给定时器工作方式寄存器TMOD赋值0x01选定T0定时器工作在方式1。接着确定定时初值TH0=(65536—10000)/256;TL0=(65536—10000)%256实现10ms的定时,利用中断循环100次实现一秒的定时。中断控制条件为EA=1,ET0=1,TR0=12.实现时间显示。利用单片机P2端口控制数码管的位选,如:P2=0xfd;DS6时P2=0xfe利用P0端口控制数码管的段选,如:共阳极时为P0= 0xc0,只要两个数码管位选段选间隔的时间适当,就可以实现动态显示时间。
{ case 1:
TR0=1;
break;
case 2:
TR0=0;
break;
case 3:
second=0;
break;
}
for(count=0;count<100;count++)
{ P2=wei[6];
P0=table[second/10];
delay(2);
P2=wei[7];
P0=table[second%10];
等等方面的知识。
{
uchar flag=0;
if(k1==0)
{delay(1);
if(k1==0)
{
flag=1;
k1=1;
}
}
if(k2==0)
{delay(1);
if(k2==0)
{
flag=2;
k2=1;
}
}
if(k3==0)
{delay(1);
if(k3==0)
{
flag=3;
k3=1;
}
}
switch(flag)
delay(1);
}
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=112;y>0;y--);
}
void timer0(void) interrupt 1 using 1{ //T/C中断服务程序入口
TH0=(65536-10000)/256; //计数初值重装载
四.程序流程图
N
Y
Key3Key1 Key2
电源开关刚闭合时,数码管显示00,定时器开始计时。由中断控制计时时间,一秒到计时条件flag=100,计数条件second加1,数码管显示的时间加1。Key2暂停键按下时,TR0=0停止计时,数码管显示当前时间。Key1开始键按下时,TR0=1开始计时数码管显示计时时间。Key3复位键按下时,second=0数码管显示00。不断执行键盘扫描程序和显示时间程序,实现简易秒表启动.暂停.复位功能。
三、实现任务
需要解决如下问题:1.如何实现计时;2.如何显示时间;3.如何利用按键实现对简易秒表的控制。
为此,可以采用单片机内部定时器T0或Tl的定时时间作为时钟计时的基准,实现计时。用两个数码管动态显示时间,时间范围为0-60S,实现时间显示。用三个独立式按键实现秒表的启动、停止和复位功能,实现控制。
四.程序流程图…………………………………………………..4
五.程序…………………………………………………………..4
六.硬件原理图和PCB图………………………………………9
七.实验器件…………………………………………………….11
八.参考文献…………………………………………………….12
九.总结体会…………………………………………………….12
1
9
瓷片电容
30pF
直插式
2
10
电解电容
104
直插式
6
11
电阻
1kΩ
6
12
电阻
10kΩ
4
13
电阻
510Ω
6
14
直流电源
GM-050100
5V/1A
1
15
电源插头
DC座(中号)
与直流电源的插口直径相同
1
16
串口接口
9针
1
17
USB转串口线
9针
1
18
三极管
9014
6
19
制PCB板
1
八、参考文献
1)单片机原理与应用技术
2)《轻松跟我学protel99se电路设计与制版》赵广林编著
九.总结体会
通过这次实验,我学到了很多。如:
1.熟悉了单片机元件的工作特点。
2.熟悉了单片机C语言编程特点和注意事项。
3.熟悉了Protel制作原理图和PCB印制电路板的技巧。
4.这次试验程序很简单一个小时就可以编好了,难点就是对软件的不熟悉,例如用protel99se来制作PCB的基本步骤,要熟悉这个软件的使用才可以做出实验的要求内容。所以我觉得这次实验的关键就是软件的使用。
1
2
IC插座
DIP40
双列直插式/40个引脚孔
1
3
晶体振荡器
12MHZ
石英晶体振荡器
(非温度补偿式)
直插式
1
4
数码管
HS-5101BS2
6
5
IC插座
单排针插座/16个引脚孔,间距2.54mm
说明:串口下载RS232
1
6
RS232通讯
MAX232
DIP
1
7
普通按键
DTS65K
3
8
复位按键
DTS65K
简wenku.baidu.com秒表
一.实验目的
1.了解数码管与单片机的连接方式。
2.熟悉定时器.计数器.中断的综合应用技术。
3.熟悉键盘的使用。
二、实验任务
键盘是单片机应用系统中最常用的输人设备,用它输入数据或命令。数码管是单片机应用系统最常见的输出设备,用它显示单片机输出的视觉信息。本次实验制作的简易秒表,是利用按键控制LED数码管的显示,实现简易秒表的启动、停止与复位。
TL0=(65536-10000)%256;
flag++;
if(flag==100)
{ flag=0;
second++;}
if(second==60)
{
second=0;
}
}
六、硬件原理图和PCB图
七、实验器件
秒表电路器件清单如表1所示。
表1秒表电路器件清单
元件名称
参数/型号
说明
封装
数量
1
单片机
STC89C51
0x7f,0xbf,0xdf,0xef,
0xf7,0xfb,0xfd,0xfe};
void delay(uint);
uint second;
uint flag;
sbit k1 = P3^2;//定义开始按键
sbit k2 = P3^3;//定义暂停按键
sbit k3 = P3^5;//定义复位按键
void main()
五.程序
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90};
uchar code wei[]={
3.实现按键控制。利用单片机P3复用端口输入按键控制命令,如:定义sbit key1=P3^2,可以将与P3^2端口相连的按键定义为启动按键,与key2=P3^3为相连定义为暂停按键,与key3=P3^5相连定义为复位按键。由原理图可知按键未按下时,相应端口为高电平,按下为低电平,因此可由条件key1/key2/key3是否为零来判断是否有键按下,有键按下就执行相应操作,实现按键的控制功能。
{
uint count;
second=0;
flag=0;
TMOD=0x01; //T/CO工作在定时器方式1
TH0=(65536-10000)/256; //预置计数初值
TL0=(65536-10000)%256;
EA=1; //CPU开中断
ET0=1; //T/C0开中断
TR0=1;
while(1)
华中科技大学
单片机原理及应用
课程设计报告
姓名:毅哥
学号:080108031113
学部(系):信息学部
专业年级:08自动化
指导教师:余愿
2011年6月27日
一.实验目的……………………………………………………..3
二.实验任务……………………………………………………..3
三.实现任务……………………………………………………..3
具体实现:1.实现计时。利用单片机内部T0计时器实现计时,首先给定时器工作方式寄存器TMOD赋值0x01选定T0定时器工作在方式1。接着确定定时初值TH0=(65536—10000)/256;TL0=(65536—10000)%256实现10ms的定时,利用中断循环100次实现一秒的定时。中断控制条件为EA=1,ET0=1,TR0=12.实现时间显示。利用单片机P2端口控制数码管的位选,如:P2=0xfd;DS6时P2=0xfe利用P0端口控制数码管的段选,如:共阳极时为P0= 0xc0,只要两个数码管位选段选间隔的时间适当,就可以实现动态显示时间。
{ case 1:
TR0=1;
break;
case 2:
TR0=0;
break;
case 3:
second=0;
break;
}
for(count=0;count<100;count++)
{ P2=wei[6];
P0=table[second/10];
delay(2);
P2=wei[7];
P0=table[second%10];
等等方面的知识。
{
uchar flag=0;
if(k1==0)
{delay(1);
if(k1==0)
{
flag=1;
k1=1;
}
}
if(k2==0)
{delay(1);
if(k2==0)
{
flag=2;
k2=1;
}
}
if(k3==0)
{delay(1);
if(k3==0)
{
flag=3;
k3=1;
}
}
switch(flag)
delay(1);
}
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=112;y>0;y--);
}
void timer0(void) interrupt 1 using 1{ //T/C中断服务程序入口
TH0=(65536-10000)/256; //计数初值重装载
四.程序流程图
N
Y
Key3Key1 Key2
电源开关刚闭合时,数码管显示00,定时器开始计时。由中断控制计时时间,一秒到计时条件flag=100,计数条件second加1,数码管显示的时间加1。Key2暂停键按下时,TR0=0停止计时,数码管显示当前时间。Key1开始键按下时,TR0=1开始计时数码管显示计时时间。Key3复位键按下时,second=0数码管显示00。不断执行键盘扫描程序和显示时间程序,实现简易秒表启动.暂停.复位功能。
三、实现任务
需要解决如下问题:1.如何实现计时;2.如何显示时间;3.如何利用按键实现对简易秒表的控制。
为此,可以采用单片机内部定时器T0或Tl的定时时间作为时钟计时的基准,实现计时。用两个数码管动态显示时间,时间范围为0-60S,实现时间显示。用三个独立式按键实现秒表的启动、停止和复位功能,实现控制。
四.程序流程图…………………………………………………..4
五.程序…………………………………………………………..4
六.硬件原理图和PCB图………………………………………9
七.实验器件…………………………………………………….11
八.参考文献…………………………………………………….12
九.总结体会…………………………………………………….12
1
9
瓷片电容
30pF
直插式
2
10
电解电容
104
直插式
6
11
电阻
1kΩ
6
12
电阻
10kΩ
4
13
电阻
510Ω
6
14
直流电源
GM-050100
5V/1A
1
15
电源插头
DC座(中号)
与直流电源的插口直径相同
1
16
串口接口
9针
1
17
USB转串口线
9针
1
18
三极管
9014
6
19
制PCB板
1
八、参考文献
1)单片机原理与应用技术
2)《轻松跟我学protel99se电路设计与制版》赵广林编著
九.总结体会
通过这次实验,我学到了很多。如:
1.熟悉了单片机元件的工作特点。
2.熟悉了单片机C语言编程特点和注意事项。
3.熟悉了Protel制作原理图和PCB印制电路板的技巧。
4.这次试验程序很简单一个小时就可以编好了,难点就是对软件的不熟悉,例如用protel99se来制作PCB的基本步骤,要熟悉这个软件的使用才可以做出实验的要求内容。所以我觉得这次实验的关键就是软件的使用。