单片机课程设计报告

发布 2022-10-06 07:58:28 阅读 6530

1 引言

在对单片机进行理论的学习之后,为了能更深一层对其学习,通过对一个综合题目的设计与调试了解单片机在各种制作中和中小规模集成电路的作用及实用方。

进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法。熟悉集成电路及有关元器件的使用,熟悉面包板的使用。熟悉51单片机的结构,掌握keil 、proteus软件的使用方法及**电路的设计。

2 设计方案及原理。

2.1 数字钟的设计方案。

控制部分用单片机stc89c52最小模块进行控制,输入模块用四个微动开关实现对数字钟时间的设置和日期、时间之间的转换,输出显示模块一个八位用的七段共阴数码管。

数字钟电路主要由显示器“时”,“分”,“秒”,“年”,“月”,“日”和单片机,还有校时电路组成。8个数码管的段选接到单片机的p0口,位选接到单片机的p3口。

控制模块的四个微动开关接在p1口上。

软件部分由一个主函数和若干个子函数组成,子函数主要有定时子函数、显示子函数、设置子函数三部分,通过主函数对几个子函数的调用实现对数字钟显示、设置的控制。

2.2 数字钟的原理。

数码管按照数码管动态显示的工作原理工作,将标准秒信号送入“秒单元”,“秒单元”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟脉冲。“分单元”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时单元”。“时单元”采用24进制计时器,可实现对一天24小时的累计。

然后累加24小时日加1,日加满一个月月加1,月加满12个月年加1。

显示电路将“时”、“分”、“秒”,“年”,“月”,“日”通过七段显示器显示出来。校时电路时用来对“时”、“分”、“秒”,“年”,“月”,“日”显示数字进行校对调整,按一下s_set键,秒单元就加1 ,按一下m_set键,分就加1,按一下h_set键,时就加1。通过模式转换键用上述方法进行设置,也可通过此键在日期,时间循环转换。

3硬件设计。

3.1数字钟硬件电路原理图。

根据要求,设计一个时钟。能够显示时间格式为时。分。

秒,并且设置键盘,根据按键任意调整时间。利用8051内部定时器0与软件结合来实现1秒定时中断。四个开关方便的对秒、分、时分别调整,保证功能完善,工作可靠,定时采用片内定时器定时,提高了电子时钟的准确度。

根据题目要求设计的总体框。如图1所示。

图1 数字钟硬件电路图。

3.2proteus**图

根据硬件原理电路,在keil中生成。hex的可执行文件,proteus中画图的**结果,如图2所示。

图2 proteus**结果。

4软件设计。

数字钟软件设计流程图如图2所示。

图2 流程图。

5总结。本次设计的单片机电子钟系统中,其误差主要**包括晶体频率误差,定时器溢出误差,延迟误差。晶体频率产生**,容易产生走时误差;定时器溢出的时间误差,造成走时误差;延迟时间过长或过短,都会造成与基准时间产生偏差,造成走时误差。

软件程序的调试分模块调试,统调是最后一环。软件调试可以采取离线调试和**调试两种方式。前者不需要硬件**器,可借助于软件**器即可;后者一般需要**系统的支持。

本次课题,keil软件来调试程序,通过各个模块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。

**部分采用protus 7 professional软件,此软件功能强大且操作较为简单,可以很容易的实现各种系统的**。刚开始在此软件上进行**的时候显示乱码,不能够正常的显示,经过分析是由于显示函数**现了逻辑错误,经过几次修正调试成功后再进行**,结果显示正常。

6参考文献。

1]李华,王思明等。单片机原理及应用[m].兰州大学出版社,2001.5

2]马忠梅等。单片机c语言应用程序设计[m]. 北京航空航天大学出版社,2003.7

3]皮大能,南光群等。单片机课程设计指导书[m]. 北京理工大学出版社,2010.7

4]周润景,丁莉等。单片机电路设计、分析与制作[m]. 机械工业出版社,2010.8

附录。#include<>

#define uchar unsigned char

#define uint unsigned int

sbit s_set=p1^0;

sbit m_set=p1^1;

sbit h_set=p1^2;

sbit reset_set=p1^3;

sbit beep=p2^0;

sbit d=p0^7;

uint year=2012;

uchar second,minite,hour,tcnt,reset,second0,minite0,hour0,second1,minite1,hour1,day=6,mon=7,temp=0;

uchar code scan[8]=;

uchar code table[13]=;

uchar table1=闰年。

uchar table2=非闰年。

uchar dispbuf[8];

unsigned char getmonday(unsigned int year,unsigned char mon);

void delay(uint us延时子程序。

int i,j;

for(i=0;i for(j=0;j<10;j++)

void scandisp时间显示子程序。

uchar i,value;

dispbuf[6]=second/10;

dispbuf[7]=second%10;

dispbuf[5]=10;

dispbuf[3]=minite/10;

dispbuf[4]=minite%10;

dispbuf[2]=10;

dispbuf[0]=hour/10;

dispbuf[1]=hour%10;

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

p3=0xff;

value=table[dispbuf[i]];

p0=value;

p3=scan[i];

delay(1);

void time0() interrupt 1定时器中断计时。

th0=(65536-50000)/256;

tl0=(65536-50000)%256;

tcnt++;

if(tcnt==20)

unsigned char getmonday(unsigned int year,unsigned char mon) /得到某月的天数

unsigned char days;

switch (mon)

return days;

void sj_set时间设置子程序。

if(s_set==0)

while(s_set==0)scandisp();

if(m_set==0)

void date_set日期设置子程序。

datedisplay();

if(h_set==0)

if(m_set==0)

if(s_set==0)

delay(10);

if(s_set==0)

day++;

while(s_set==0)

datedisplay();

单片机课程设计报告

单片机系统课程设计报告。专业 电气技术。学生姓名 朱海李威张杰。学号。指导教师 陈高燕。完成日期 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 二 课程设计...