单片机课程设计报告

发布 2022-10-06 07:33:28 阅读 7580

单片机课程设计---数字时钟的设计。

班级:电子071 学号: 0707200205 姓名:于奎伟 2023年1月4日。

摘要: 近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,**便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

本次做的数字钟是以单片机(at89c51)为核心,结合相关的元器件(共阴极led数码显示器等)再配以相应的软件,达到制作简易数字钟的目的,其硬件部分难点在于元器件的选择、布局及焊接。

正文: 本设计的构想:通过单片机控制数字时钟,将时间显示在led数码管上。通过按键来显示执行个部分的功能,比如调时、秒表、闹钟等。

本设计的工作原理如下:在单片机最小系统的基础上,使用i/o口连接按键、led数码管。通过单片机定时器中断来获取比较准确的时间。

本程序中用定时器中断0,tomd=0x01,每1ms产生一次中断,所以对定时器所装的初值:th0 = 65536-1000)/256,tl0 = 65536-1000)%256。然后在主函数中执行初始化函数、按键函数,显示函数,来实现所设计的数字时钟的功能。

实验的原来图如下:

实验的流程图如下:

功能介绍:1、 开机时,显示00-00-00的时间开始计时。最上面的led发光二极管亮一秒灭一秒。

2、 按键“选择”。当第一次按下时,最上面的led发光二极管不再亮灭闪烁,计数器停止工作,同时显示调时的发光二极管会亮,此时按下按键“加加”,可以实现秒的加。第二次按下“选择”按键时,按按键“加加”可以实现分的加。

第三次按下“选择”按键时,按按键“加加”可以实现时的加。第四次按下“选择”按键时,会变成秒表的显示,同时计数器开始工作,最上面的led发光二极管发生亮灭闪烁,显示调时的发光二极管会灭,显示秒表的发光二极管会亮。按按键“加加”可以实现秒表的工作,再按“加加”,秒表停止工作,再按“加加”,秒表清零。

第五次按下“选择”按键时,数码管显示定闹钟的功能。显示秒表的发光二极管会灭,显示闹钟的发光二极管会亮。按按键“加加”可以实现闹钟分的调整。

第六次按下“选择”按键时,按键“加加”可以实现闹钟时的调整。第六次按下“选择”按键时,显示闹钟的发光二极管会灭。

3、 通过上面,定闹钟完成后,我们按下“闹钟开启”按键,当到达定时时间时,闹钟会发出蜂鸣声,同时数码管显示“hello-_-字样,蜂鸣声可持续一分钟,当然我们也可以通过“闹钟开启”按键关掉闹钟。

参考文献:赵亮,侯国瑞,《单片机c语音编程与实例》,人民邮电出版社,2023年九月第一版。

阎石,《数字电路基础》,高等教育出版社,2023年第四版。

吴金戌,沈庆阳,郭廷杰,《8051单片机实践与应用》,清华大学出版社。

《单片机接**术》 胡汉才高等教育出版社。

程序示例:#include <>

#define uchar unsigned char;

#define uint unsigned int;

uchar code talbe 数码管显示。

uchar code table

uchar code weii

uchar code wei 数码管的位选。

int a[8],b[8],c[8]; 定义a[8]时间,b[8]秒表,c[8] 闹钟的定时。

uint tt,ttm,i,x,y,z,key_state1,flag_mode,key_state2,flag_jia;

int shi,fen,miao,m_shi,m_fen,m_miao,n_shi,n_fen,n_miao;//定义时间秒表闹钟显示变量。

sbit k_mode = p1^0; /定义设置开关。

sbit k_jia = p1^1;//定义加加开关。

sbit k_naozhong = p1^2; /定义闹钟按键开关。

sbit button = p1^7;//闹钟的输出控制端。

sbit shan = p1^3; /led亮一秒灭一秒。

sbit tiaos = p1^4; /当调整时间时此控制的led亮。

sbit miaob = p1^5; /当用到秒表时此控制的led亮。

sbit dings = p1^6; /当定闹钟时间时此控制的led亮。

void init声明初始化函数。

void diaplay声明显示函数。

void delay(z声明延迟函数。

void key声明按键函数。

void naozhong();声明闹钟函数。

***主函数***

void main主函数。

init ()

while (1)

diaplay ()

naozhong();

***初始化函数***

void init ()

shi = 0;

fen = 0;

miao = 0;

m_shi = 0;

m_fen = 0;

m_miao = 0;

n_shi = 0;

n_fen = 0;

n_miao = 0;

tt = 0;

ttm = 0;

tmod = 0x01选择工作模式1

th0 = 65536-1000)/256;//给定时器装初值。

tl0 = 65536-1000)%256;

ea = 1打开总中断。

et0 = 1打开定时器/计数器0

tr0 = 1开始计数。

***中断1***

void time ()interrupt 1

th0 = 65536-1000)/256; /重装初值

tl0 = 65536-1000)%256;

tt++;if (flag_mode ==4当变量flag_mode=4时,运行秒表程序。

if (flag_jia ==2)

if (flag_jia ==3)

if (tt ==1000)

***显示函数***

void diaplay ()

a[0] =miao%10;

a[1] =miao/10;

a[2] =10;

a[3] =fen%10;

a[4] =fen/10;

a[5] =10;

a[6] =shi%10;

a[7] =shi/10;

b[0] =m_miao%10;

b[1] =m_miao/10;

b[2] =10;

b[3] =m_fen%10;

b[4] =m_fen/10;

b[5] =10;

b[6] =m_shi%10;

b[7] =m_shi/10;

c[0] =n_miao%10;

c[1] =n_miao/10;

c[2] =10;

c[3] =n_fen%10;

c[4] =n_fen/10;

c[5] =10;

c[6] =n_shi%10;

c[7] =n_shi/10;

for (i = 0;i<8;i++)

elseelse if(flag_mode==5||flag_mode==6)//当flag_mode=5或flag_mode=6时显示定时数值。

else其他时候显示时间。

delay(4);

/**延迟函数***

void delay (z)

for(x=z;x>0;x--)

for(y=110;y>0;y--)

/**按键函数***

单片机课程设计报告

单片机系统课程设计报告。专业 电气技术。学生姓名 朱海李威张杰。学号。指导教师 陈高燕。完成日期 2014 年 7 月 5 日。目录。1 设计任务和性能指标 1 1.1设计任务 1 2 设计方案 1 2.1方案论证 2 2.2总体设计框图 2 3 系统硬件设计 4 3.1红外线解码电路设计 4 3....

单片机课程设计报告

韶关学院。课程设计说明书 设计题目 基于单片机控制的智能交通灯设计。课程名称 微机原理与应用实训。学生姓名 学号。院系 物理与机电工程学院汽车系。专业班级 12机械制造及其自动化 5班。指导教师姓名及职称 谢杰讲师。陈锦儒助理实验师。起止时间 2015 年 3 月 2015 年 5 月。课程设计评分...

单片机课程设计报告

南京工程学院。课程设计说明书 题目实时钟芯片pcf8563的应用 课程名称单片机原理及应用a 院 系 部 中心 通信工程学院。专业电子信息工程 传感网 班级。学生姓名。学号。设计地点信息楼 c 210 指导教师。设计起止时间 2013年12月23日至 2013年12月27日。一 摘要1 二 课程设计...