硬件综合课程设计报告。
设计课题:秒表设计。
专业班级:计算机科学与技术。
学生姓名:李新娱饶琪。
学号: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语言的编程方法,将...