单片机课程设计报告 秒表设计

发布 2022-10-06 09:09:28 阅读 3634

硬件综合课程设计报告。

设计课题:秒表设计。

专业班级:计算机科学与技术。

学生姓名:李新娱饶琪。

学号:2010211912 2010211914

指教教师:刘锐。

设计时间:2023年6月。

秒表设计。1. 设计题目、内容。

用盛群单片机ht48f50e设计秒表,要求实现以下功能:

1)计时开始、停止设置。

2)计时初值0设置。

3)计时状态显示。

2. 设计思路及电路设计原理图。

本次设计使用ht-ide的集成开发环境,在其软件部分用c语言编写时钟功能**,并用其硬件工具ht-ice **器烧写程序在ht48f50e上,再根据相应电路实现秒表功能。

整体程序包括两大模块:动态显示和键盘扫描,程序执行流程为:单片机初始化—>扫描按键—>显示计时结果,定时器1产生固定的定时,通过变量计算时间然后通过数码管实时显示。

整个设计利用软件模拟定时器功能,采用软计时以cpu的消耗为代价,能够动态实现数码管的显示及动态扫描键盘输入,键盘控制。其中led屏显示秒和毫秒,分钟数由灯以二进制进行显示,可以存储时间并查阅。

a) 模块电路如图所示。

本设计分为时钟电路、按钮电路、显示电路和单片机四大部分,这些模块中单片机占主控地位。

b) ht48f50e的芯片结构的构造图及目标板的键盘分布:

本目标板上有一个4*4键盘。引脚ka0—ka3用于选择键盘的列,引脚kb0—kb3用于选择键盘的行。通常检测哪一个按键被按下的方法是:

利用单片机依次向ka0—ka3输出0,然后再去读kb0—kb3的值。如果读回的值为”1111”,则表示没有键被按下。

ka0—ka3,kb0—kb3行列对应关系如下:

kb0kb1

kb2kb3

ka0 ka1 ka2 ka3

在本次试验中,我们用了三个键和reset键。reset键为开始和暂停。按sw13键暂停计时,sw14键存储当前时间,查看存储过的时间则利用sw16进行下翻,浏览查看。

c) 本次设计的电路连线图:

其中pa设计为输出端,输出七段码。 pb4-7为输出端,接入com0-com3,作为片选。 pb前四为输出,pc为输入。

其中pb0-3接到led上用于,显示状态。其余用作键盘输入。

3. 程序流程图。

程序流程图如图所示,上电后按reset键开始计时,当led显示屏中的时间满一分钟时,屏幕显示即时间清零,并且分钟数加一,不满一分钟则继续判断。(分钟数由红灯以二进制显示。)

图中按sw13键暂停计时,sw14键存储当前时间,查看存储过的时间则利用sw16进行下翻,浏览查看。

4. 源**及注释。

#include "头文件。

#define uchar unsigned char

#define uint unsigned int

const uchar table=数码管0—9的编码表,存储在rom中。

#define com0 _pb4控制四个数码管。

#define com1 _pb5

#define com2 _pb6

#define com3 _pb7

#define t1m1 _11_7定时器1的寄存器。

#define t1m0 _11_6

#define t1on _11_4

#define t1e _11_3

#define key1 _pc4对键盘的申明。

#define key2 _pc3

#define key3 _pc2

#define key4 _pc1

#define t_cout 20能保留多少。

uchar fen,sec,tms,lamp,tlamp定义变量tms,sec,lamp

uint min,direction定义变量min,direction

uchar stop,ss**e;

char nowposition,count;

uchar t_fen,t_sec,t_tms,t_lamp;

void intial申明初始化函数。

void delay(unsigned long t申明延迟函数。

void display申明数码管显示函数。

void keyscan申明键盘扫描函数。

void saom申明流水灯函数。

void ssaom();

struct timers

uchar fen;

uint fshi;

uint fge;

uint hshi;

uint hge;

ts**e[t_cout];

void main()

intial调用初始化函数

min=0变量初始化。

count=0;

direction = 0;

_pbc = 0pb口设为输出口

lamp = 0x01给lamp赋初值。

fen=0;

nowposition = 1;

stop = 0;

ss**e = 0;

while(1)

saom调用saom函数执行流水灯。

sec = 0;

tms = 0;

min = 0;

void intial函数初始化。

_pcc = 0x1fpc口第五位设为输入口,其余设为输出。

com0 = 1数码管全部关闭。

com1 = 1;

com2 = 1;

com3 = 1

_pac = 0x00pa口设为输出。

_emi = 1开总中断。

_et1i = 1开定时器1中断。

_tmr1l = 55536%256;

_tmr1h = 55536/256定时器赋初值,必须先赋低8位再赋高8位。

t1m1 = 1;

t1m0 = 0设置定时器1为定时模式。

t1e = 0定时器1在时钟上升沿加1

tms = 0秒表后两位清零。

sec = 0秒表前两位清零。

_pc5 = 0;

void delay(unsigned long t延迟函数,没有精确值,随意设的,延迟单位在1ms左右。

unsigned long i;

for(i=t;i>0;i--)

_delay(900);

void display数码管动态显示。

uint ge,shi;

if(!stop)

if(sec>=100秒表前两位。

sec = 0;

ge = tms%10显示秒表的最后一位。

shi = tms/10显示秒表的第三位,最后一位与倒数第二位的进制是10

if(ss**e)

_pa = table[ge秒表的最后两位的显示范围是0-9

com3 = 0开启数码管的第四位。

_delay(50);

com3 = 1关闭数码管的第四位。

_pa = table[shi];

com2 = 0开启数码管的第三位。

单片机秒表设计课程设计报告

单片机课程设计报告。一 实验题目。秒表系统设计 用两个数码管来显示秒表数据,一个显示秒,另一个显示十分之一秒。二 系统总体功能。用两个数码管来显示秒表数据,一个显示秒,另一个显示十分之一秒。有一个按键来启动秒表的开始和结束。增加一个清零按钮,计时结束后可以清零。三 实验目的。1 利用单片机定时器 计...

单片机课程设计秒表的设计

衡水职业技术学院。机电工程系。课程设计任务书。课程 单片机原理。题目 秒表的设计。应用电子技术专业一班。任务起止日期 2011 年 6 月 7 日至 2011 年 6 月 24 日。组别一 学生姓名。指导教师曹月真 注 1 此任务书应由指导教师填写。2 此任务书必须在课程设计开始前下达给学生。学生送...

单片机课程设计设计报告

电子时钟设计。班级 学号 姓名 目录。一 设计目的 3 二 设计过程 3 1.设计原理 4 2.用到的器件 4 3.创新点 5 三 硬件原理设计图 4 接口 43.蜂鸣器 5 4.用户按键 5 四 程序 6 五 参考文献 8 六 设计心得体会 8 1 通过单片机课程设计,熟练掌握c语言的编程方法,将...