51单片机电子时钟设计报告

51单片机电子时钟设计报告
51单片机电子时钟设计报告

电子时钟实验报告

全部代码在文档末尾:51单片机,LCD1602液晶显示屏平台下编程实现,可直接编译运行

目录:

一,实验目的 (1)

二,实验要求 (2)

三,实验基本原理 (2)

四,实验设计分析 (2)

五,实验要现 (3)

A.电路设计 (3)

1. 整体设计 (3)

2. 分块设计 (4)

输入部分 (4)

输出部分 (5)

晶振与复位电路 (6)

B.程序设计 (6)

程序总体设计 (6)

程序主要模块 (7)

五.实验总结及感想 (7)

一,实验目的

20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以电子钟是以其小巧,价格低廉,走时精度高,使用方便,

功能多,便于集成化而受广大消费的喜爱,得到了广泛的使用。

1. 学习8051定时器时间计时处理、按键扫描及LCD液晶显示的设计方法。

2. 设计任务及要求利用实验平台上LCD1602液晶显示屏,设计带有闹铃功能的数字时钟

二,实验要求

A.基本要求:

1. 在LCD1602液晶显示屏上显示当前日期,时间。

2. 利用按键可对时间及闹玲进行设置,并可显示设置闹玲的时间。闹玲时间到蜂鸣器发出

声响,一分钟后闹铃停止。

B.扩展部分:

1.日历功能(能对年,月,日,星期进行显示,分辨平年,闰年以及各月天数,并调整)实现年月日时分秒的调整,星期准确的随着日期改变而改变进行显示。

2.定时功能(设定一段时间长度,定时到后,闹铃提示)

C.可扩展部分:

1.闹铃重响功能(闹铃被停止后,以停止时刻开始,一段时间后闹铃重响,且重响时间的间隔可调)

2.可进行备忘录提示,按照年月日,可在设定的某年某月进行闹铃提示。

三,实验基本原理

利用单片机定时器完成计时功能,定时器0计时中断程序每隔中断一次并当作一个计数,设定定时1秒的中断计数初值为20,每中断一次中断计数初值加1,当减到20时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了,是否一天到了,是否一个月到了,是否一年到了。

将时间在LCD液晶屏上显示,降低了程序的编写难度。LCD的固定显示特性是我们省去了数码管的动态扫描显示。

四,实验设计分析

针对要实现的功能,采用AT89S52单片机进行设计,AT89S52 单片机是一款低功耗,高性能CMOS8位单片机,片含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。

这样,既能做到经济合理又能实现预期的功能。

在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。程序可分为闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等。运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。

首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。这是前期准备工作。第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。第三部分是软件部分:先学习理解C语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。第六部分是硬件实现部分:连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。最后进行功能扩展,在已经正确的设计基础上,添加额外的功能!

五,实验要现

A.电路设计

1. 整体设计

此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块:显示电路用lcd1602显示,年份,月份,星期,小时、分钟和秒(日),使电路更加简单。单片机采用AT89S51系列,这种单片机应用简单,适合电子钟设计。

电路的总体设计框架如下:

2. 分块设计

模块电路主要分为:输入部分、输出部分、复位和晶振电路。

输入部分

输入信号主要是各种模式选择和调整信号,由按键开关提供。以下为输入部分样例:

在本实验中主要用用P3口输入按键信号,还用到了特殊的P0口。对于P0口,由于其存在高阻状态,为了实现开关功能,给其添加上拉电阻,具体如下图所示:

输出部分

本电路的输出信号LCD的写入命令和写入数据,闹铃脉冲信号。闹铃由端输出,模块如下:

日期时间由LCD1602输出,模块如下:

晶振与复位电路

本实验单片机时钟用部时钟,模块如下:

复位电路为手动复位构成,模块如下:

B.程序设计

程序总体设计

本实验用汇编程序完成.

程序总的流程图如下:

程序主要模块

中断服务程序:

/******************一秒定时中断函数*****************/

void timer0() interrupt 1 using 1

{

ET0=0; 验总结及感想

一分耕耘,一分收获。只有亲自用实践来验证这句话,在能得其要领。经过这次单片机课程设计,我从一个单片机实践的门外汉,已经越升为略知一二的新手。虽然还有很多有关单片机的应用有待学习,但万变不离其宗,只要深入了解单片的原理,全部知识点,各个细节,一切设计皆有可能。

在实验的开始几天,基本上没有收获,不知何从下手,不知所措。为了看得更远,不妨站在前人的肩膀上,我在整体思路模糊的情况下,在网上大量招资粮,各种与电子时钟相关的文章,我阅读了不少。随着涉猎的点滴积累,我对电子时钟的设计方案已经慢慢酝酿而成。有了方向和不少知识储备后,在接下来的几天,几乎每天都有突破,虽然有时只是一句程序的修改或诞生,但那种收获的感觉很暖人心。

实验中遇到了不少问题,接下来总结一下,共同探讨。

1, P0口开关问题。P0口比较特殊,它存在高阻态,要使其输入不是高电平就是低电平,就要接上拉电阻,给其高电平输入。

以上就是实验中遇到的主要问题,基本上都找到了相应的解决之道。整个实验的过程就是一个解决问题的过程,每天都解决一些问题,我的实验也就解决了,当然结果不重要,功利化的追求结果,会使人浮躁,还是享受那份疑难迎刃而解的快感吧!

全部完整代码:

此代码未经本人优化,可以根据自己的需求优化代码。盗版不究,可直接引用。

/****************************************************************/

基于STC89S52单片机以及液晶1602显示的万年历项目

/***************************************************************/

#include<>

#include<>

#define uchar unsigned char

#define uint unsigned int

/***************液晶1602相关参数***************/

#define data_port P0 //液晶屏指令、数据通信接口

sbit rs=P1^0; //液晶屏寄存器选择接口(rs=0时选择指令寄存器,rs=1时选择数据寄存器)

sbit rw=P1^1; //液晶屏读写选择接口(rw=0时选择写入,rw=1时选择读出)

sbit en=P1^2; //液晶屏使能接口(en=0时通信接口中断,en=1时通信接口接通)

uchar code line1_str[]={"----Welcome!----"};//液晶屏第一行要显示的字符串

uchar code line2_str[]={" made by: MCU "};//液晶屏第二行要显示的字符串

/***************按键设置的相关参数************/

sbit timer=P1^5; //蜂鸣器

sbit sound=P3^4; //进入闹铃设置状态键

uchar sflag=0,ssflag=0; //闹铃设置标志位;闹铃工作标志位sbit set_key=P3^7; //进入设置

sbit up_key=P3^6; //加号键

sbit cancle_key=P3^5; //完成设置键

uchar set=0; //是否进行了设置

uchar flag=0; //设置选择标志

uchar year=0x00; //"年"寄存器

uchar month=0x01; //"月"寄存器

uchar day=0x01; //"日"寄存器

uchar week=0x06; //"星期"寄存器

uchar hour; //"时"寄存器

uchar minite; //"分"寄存器

uchar second; //"秒"寄存器

uchar jiamiao=0; //加秒参数

uchar fen1,fen2; //(数据交换)分定时寄存器

uchar shi1,shi2; // (数据交换)时定时寄存器

uchar code num_tab[]={"09"}; //液晶屏要显示的数字表

uchar dis_val[7]={0x00,0x01,0x01,0x06,0x00,0x00,0x00};//依次存储:年,月,日,星期,时,分,秒

/******************子函数部分*****************/

void lcd_int(); //初始化1602液晶

void welcome(); //欢迎界面

void in_command(uchar ); //向液晶屏输入命令

void in_data(uchar dat); //向液晶屏输入数据

void delay(uint ms); //延时函数

void key(); //按键设置函数

uchar calculate_week(); //星期计算函数

void week_disp(uchar x); //LCD1602显示星期值子函数声明

void lcd_disp_string(uchar str[]); //液晶屏显示一串字符子函数声明

void brush_lcd(); //刷新液晶屏显示容子函数声明

void run(); //万年历正常运行函数

/**********************************************/

void main()

{

TMOD=0x01; //0000 0001 使用定时器T0的模式1(16位模式)

TH0=(65536-50000)/256; //设定每次中断间隔50ms

TL0=(65536-50000)%256;

jiamiao=1;

EA=1; //打开总中断允许

ET0=1; //打开定时器T0中断允许位

TR0=1; //启动定时器T0

lcd_int();

welcome();

delay(1000);

while(1)

{

key();

if(jiamiao==20)

{

second++;

dis_val[6]=((second/10)<<4)|(second%10); //刷新"秒"

jiamiao=0;

run();

}

if(flag==0)

{

if(dis_val[0]==0x00 && dis_val[1]==0x01 && dis_val[2]==0x01)//2000年1月1日为星期六

{dis_val[3]=0x06;}

brush_lcd(); //刷新液晶屏显示容

}

if(hour==shi2 && minite==fen2 &&ssflag==1)

{

timer=0;

}

else

{

timer=1;

}

}

}

/********延时子函数************/

void delay(uint ms)

{

uchar i;

while(ms--)

{

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

}

}

/************LCD初始化*****************/

void lcd_int()

{

delay(30); //延时15MS,等待LCD初始化

in_command(0x01); //清显示屏

in_command(0x38); //8位通信,2行显示,5*7点阵

in_command(0x0c); //开显示,关光标,关闪烁

in_command(0x06); //字符不动,光标右移动,地址加一

}

/**********液晶屏显示一串字符**********/

void lcd_disp_string(uchar str[])

{

uchar i=0;

while(str[i]!='\0')

{

in_data(str[i]); //显示数据(字符)

i++;

}

}

/***************欢迎界面函数***************/

void welcome()

{

uchar i;

in_command(0x80); //设定第一行字符串起始显示位置while(line1_str[i]!='\0')

{

delay(100);

in_data(line1_str[i]); //显示数据(字符)

i++;

}

i=0;

in_command(0xc0); //设定第二行字符串起始显示位置while(line2_str[i]!='\0')

delay(100);

in_data(line2_str[i]); //显示数据(字符)

i++;

}

}

/********向液晶屏输入命令子函数************/

void in_command(uchar )

{

delay(2);

en=0;//关闭通信,为设置参数做准备

rs=0;//选择指令寄存器

rw=0;//写入液晶

_nop_();

data_port=;

en=1;//开始通信

_nop_();

en=0;//关闭通信,为设置参数做准备

}

/********向液晶屏输入数据子函数************/

void in_data(uchar dat)

{

delay(2);

en=0;//关闭通信,为设置参数做准备

rs=1;//选择数据寄存器

rw=0;//写入液晶

_nop_();

data_port=dat;

_nop_();

en=1;//开始通信

_nop_();

en=0;//关闭通信,为设置参数做准备

}

/***********计算星期值子函数**************/

uchar calculate_week()

{

uint days_number; //存储天数值

uchar i;

if(year>=1)

{

days_number=(((year-1)/4)+1); //从00年到year-1年的闰年个数

days_number=days_number+(year*365); //从00年到year-1年的总天数}

else

days_number=0;

}

for(i=1;i

{

switch(i)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:days_number+=31;//大月31天

break;

case 4:

case 6:

case 9:

case 11:days_number+=30;//小月30天

break;

case 2: if(year%4==0) //闰年2月29天

{days_number+=29;}

else //平年2月28天

{days_number+=28;}

break;

}

}

days_number+=day; //加上本月日期

if((days_number+5)%7==0) //计算现在的星期值,并返回其值{return(7);}

else

{return((days_number+5)%7);}

}

/*********LCD1602显示星期值子函数************/

void week_disp(uchar x)

{

switch(x)

{

case 1: lcd_disp_string("MON"); //显示"星期一"

break;

case 2: lcd_disp_string("TUE"); //显示"星期二"

break;

case 3: lcd_disp_string("WED"); //显示"星期三"

break;

case 4: lcd_disp_string("THU"); //显示"星期四"

break;

case 5: lcd_disp_string("FRI"); //显示"星期五"

break;

case 6: lcd_disp_string("SAT"); //显示"星期六"

break;

case 7: lcd_disp_string("SUN"); //显示"星期日"

break;

}

}

/*****************按键设置函数**************/

void key()

{

if(set_key==0) //检测"设置"键是否按下

{

delay(5); //延时消抖

if(set_key==0)

{

ET0=0; //打开定时器T0中断允许位

TR0=0; //启动定时器T0

if(flag<6)

{flag++;}

else

{flag=0;}

switch(flag)

{

case 0: if(set==1) //检测时间是否更改

{

set=0; //时间更改标志复位

dis_val[0]=((year/10)<<4)|(year%10); //刷新"年"

dis_val[1]=((month/10)<<4)|(month%10); //刷新"月"

dis_val[2]=((day/10)<<4)|(day%10); //刷新"日"

dis_val[3]=week; //刷新"星期"

dis_val[4]=((hour/10)<<4)|(hour%10); //刷新"时"

dis_val[5]=((minite/10)<<4)|(minite%10); //刷新"分"

dis_val[6]=((second/10)<<4)|(second%10); //刷新"秒"

}

in_command(0x0c); //开显示,关光标,关闪烁

break;

case 1: in_command(0x83); //设定显示(光标)位置----"年"低位闪

in_command(0x0d); //开显示,关光标,开闪烁

year=((dis_val[0]>>4)*10)+(dis_val[0]&0x0f); //预设调节变量初始值为当前时刻

month=((dis_val[1]>>4)*10)+(dis_val[1]&0x0f);

day=((dis_val[2]>>4)*10)+(dis_val[2]&0x0f);

hour=((dis_val[4]>>4)*10)+(dis_val[4]&0x0f);

minite=((dis_val[5]>>4)*10)+(dis_val[5]&0x0f);

second=((dis_val[6]>>4)*10)+(dis_val[6]&0x0f);

break;

case 2: in_command(0x86); //设定显示(光标)位置----"月"低位闪烁

break;

case 3: in_command(0x89); //设定显示(光标)位置----"日"低位闪烁

break;

case 4: in_command(0xc5); //设定显示(光标)位置----"时"低位闪烁

break;

case 5: in_command(0xc8); //设定显示(光标)位置----"分"低位闪烁

break;

case 6: in_command(0xcb); //设定显示(光标)位置----"秒"低位闪烁

break;

}

while(set_key==0);

}

}

if(up_key==0 && flag!=0) //检测"设置时间"启动时,"上升"键是否按下{

delay(5); //延时消抖

if(up_key==0)

{

switch(flag)

{

case 1: if(sflag==1)

{break;}

if(year<99)

{year++;}

else

{year=0;}

if(year%4!=0 && month==2)//平年的2月

{

if(day>28)

{

day=28;

in_command(0x88); //设定显示(光标)位置----"日"高位

in_data(num_tab[day/10]); //修正"日"

in_data(num_tab[day%10]);

}

}

week=calculate_week(); //计算星期值

in_command(0x8c); //设定显示(光标)位置----"星期"

week_disp(week); //LCD1602显示星期值

in_command(0x82); //设定显示(光标)位置----"年"高位

in_data(num_tab[year/10]); //显示正在调节的"年"

in_data(num_tab[year%10]);

in_command(0x83); //设定显示(光标)位置----"年"低位闪烁

break;

case 2: if(sflag==1)

{break;}

if(month<12)

{month++;}

else

{month=1;}

if(month==4 || month==6 || month==9 || month==11)

{

if(day>30)

{

day=30;

in_command(0x88);//设定显示(光标)位置----"日"高位

in_data(num_tab[day/10]); //修正"日"

in_data(num_tab[day%10]);

}

}

if(month==2)

{

if(year%4!=0) //平年

{

if(day>28)

{

day=28;

in_command(0x88); //设定显示(光标)位置

----"日"高位

in_data(num_tab[day/10]); //修正"日"

in_data(num_tab[day%10]);

}

}

else //闰年

{

if(day>29)

{

day=29;

in_command(0x88); //设定显示(光标)位置----"日"高位

in_data(num_tab[day/10]); //修正"日"

in_data(num_tab[day%10]);

}

}

}

week=calculate_week();//计算星期值

in_command(0x8c); //设定显示(光标)位置----"星期"

week_disp(week); //LCD1602显示星期值

in_command(0x85); //设定显示(光标)位置----"月"高位

in_data(num_tab[month/10]); //显示正在调节的"月"

in_data(num_tab[month%10]);

in_command(0x86); //设定显示(光标)位置----"月"低位闪烁

break;

case 3: if(sflag==1)

{break;}

if(month==4 || month==6 || month==9 || month==11)

{

if(day<30)

{day++;}

else

{day=1;}

}

else if(month==2)

{

if(year%4!=0) //平年

{

if(day<28)

{day++;}

else

{day=1;}

}

else //闰年

{

if(day<29)

{day++;}

else

{day=1;}

}

}

else

{

if(day<31)

{day++;}

else

{day=1;}

}

week=calculate_week();//计算星期值

in_command(0x8c); //设定显示(光标)位置----"星期"

week_disp(week); //LCD1602显示星期值

in_command(0x88); //设定显示(光标)位置----"日"高位

in_data(num_tab[day/10]); //显示正在调节的"日"

in_data(num_tab[day%10]);

in_command(0x89); //设定显示(光标)位置----"日"低位闪烁

break;

case 4: if(hour<23)

{

if(sflag==1) //完成闹钟状态下的数值变换,并保存设置前的状态

{

shi1=hour;

hour++;

shi2=hour;

}

else

{hour++;}

}

else

{hour=0;}

in_command(0xc4); //设定显示(光标)位置----"时"高位

in_data(num_tab[hour/10]); //显示正在调节的"时"

in_data(num_tab[hour%10]);

in_command(0xc5); //设定显示(光标)位置----"时"低位闪烁

break;

case 5: if(minite<59)

{

if(sflag==1) //完成闹钟状态下的数值变换,并保存设置前的状态

{

fen1=minite;

minite++;

fen2=minite;

}

else

{minite++;}

}

else

{minite=0;}

in_command(0xc7); //设定显示(光标)位置----"分"高位

in_data(num_tab[minite/10]); //显示正在调节的"分"

in_data(num_tab[minite%10]);

in_command(0xc8); //设定显示(光标)位置----"分"低位闪烁

break;

case 6: if(second<59)

{second++;}

else

{second=0;}

in_command(0xca); //设定显示(光标)位置----"秒"高位

in_data(num_tab[second/10]); //显示正在调节的"秒"

in_data(num_tab[second%10]);

in_command(0xcb); //设定显示(光标)位置----"秒"低位闪烁

break;

}

set=1; //时间更改标志置位

while(up_key==0);

}

}

if(sound==0 && flag!=0)//启动定时状态标志

{

sflag=1;

}

if(cancle_key==0 && flag!=0) //检测"设置时间"启动时,"完成"键是否按下{

delay(5); //延时消抖

if(cancle_key==0)

{

set=0; //时间更改标志复位

flag=0; //设置按键状态值复位

in_command(0x0c); //开显示,关光标,关闪烁

while(cancle_key==0);

if(sflag==1) //判断是否进行过闹钟定时设置

{

minite=fen1;

hour=shi1;

ssflag=1; //启动闹钟工作标志

sflag=0; //关闭闹钟定时状态标志

}

ET0=1; //打开定时器T0中断允许位

TR0=1; //启动定时器T0

}

}

}

/********刷新液晶屏显示容子函数*********/

void brush_lcd()

{

static uchar old_second=0x01;

if(dis_val[6]!=old_second)

{

old_second=dis_val[6]; //刷新原来的"秒"为新"秒"值

in_command(0x80); //设定第一行字符串起始显示位置

in_data('2'); //年的千位

in_data('0'); //年的百位

in_data(num_tab[dis_val[0]/16]); //显示"年"

in_data(num_tab[dis_val[0]%16]);

in_data('-'); //显示分隔符

in_data(num_tab[dis_val[1]/16]); //显示"月"

in_data(num_tab[dis_val[1]%16]);

in_data('-'); //显示分隔符

in_data(num_tab[dis_val[2]/16]); //显示"日"

in_data(num_tab[dis_val[2]%16]);

in_data(' '); //显示分隔符

in_data('['); //显示分隔符

week_disp(dis_val[3]); //LCD1602显示星期值

in_data(']'); //显示分隔符

in_command(0xc0); //设定第二行字符串起始显示位置in_data('-'); //显示分隔符

in_data('-'); //显示分隔符

in_data('-'); //显示分隔符

in_data('-'); //显示分隔符

in_data(num_tab[dis_val[4]/16]); //显示"时"

in_data(num_tab[dis_val[4]%16]);

in_data(':'); //显示分隔符

in_data(num_tab[dis_val[5]/16]); //显示"分"

in_data(num_tab[dis_val[5]%16]);

in_data(':'); //显示分隔符

in_data(num_tab[dis_val[6]/16]); //显示"秒"

in_data(num_tab[dis_val[6]%16]);

in_data('-'); //显示分隔符

in_data('-'); //显示分隔符

in_data('-'); //显示分隔符

in_data('-'); //显示分隔符}

}

/******************一秒定时中断函数*****************/

void timer0() interrupt 1 using 1

{

ET0=0; //关闭定时器T0中断允许位

TR0=0; //关闭定时器T0

jiamiao++;

TH0=(65536-50000)/256; //设定每次中断间隔50ms

TL0=(65536-50000)%256;

TR0=1; //启动定时器T0

ET0=1; //打开定时器T0中断允许位

}

/********************万年历正常运行函数********************/ void run()

{

if(second>=59)

{

minite++;

second=0x00;

}

if(minite>=59)

{

hour++;

minite=0x00;

}

if(hour>=23)

{

day++;

hour=0x00;

}

if(month==4 || month==6 || month==9 || month==11)

单片机类毕业设计题目汇总

单片机类毕业设计题目汇总

单片机类毕业设计题目汇总 1.孔子时钟的设计 2.?全自动节水灌溉系统--硬件部分 3.?数字式温度计的设计 4.?温度监控系统设计 5.?基于单片机的语音提示测温系统的研究 6.?简易无线电遥控系统 7.?数字流量计 8.?基于单片机的全自动洗衣机 9.冰塔智能水位控制系统 10.?温度箱模拟控制系统 11.?超声波测距仪的设计 12.?基于51单片机的LED点阵显示屏系统的设计与实现 16X16点阵显示屏 13.?基于AT89S51单片机的数字电子时钟 14.?基于单片机的步进电机的控制 15.?基于单片机的交流调功器设计 16.?基于单片机的数字电压表的设计 17.弹片机的数字钟设计 18.?智能散热器控制器的设计 19.弹片机打铃系统设计 20.?基于单片机的交通信号灯控制电路设计 21.?基于单片机的电话远程控制家用电器系统设计 22.?基于单片机的安全报警器 23.?基于单片机的八路抢答器设计 24.?基于单片机的超声波测距系统的设计 25.?基于MCS-51数字温度表的设计 26.?电子体温计的设计 27.?基于AT89C51的电话远程控制系统 28.?基于AVR单片机幅度可调的DDS信号发生器 29.?基于单片机的数控稳压电源的设计 30.?基于单片机的室内一氧化碳监测及报警系统的研究 31.?基于单片机的空调温度控制器设计

32.?基于单片机的可编程多功能电子定时器 33.?单片机的数字温度计设计 34.?红外遥控密码锁的设计 35.?基于51单片机的语音识别系统设计 36.?家用可燃气体报警器的设计 37.?基于数字温度计的多点温度检测系统 38.?基于凌阳单片机的语音实时采集系统设计 39.?基于单片机的数字频率计的设计 40.?基于单片机的数字电子钟设计 41.?设施环境中温度测量电路设计 42.?汽车倒车防撞报警器的设计 43.?篮球赛计时记分器 44.?基于单片机的家用智能总线式开关设计 45.?设施环境中湿度检测电路设计 46.?基于单片机的音乐合成器设计 47.?设施环境中二氧化碳检测电路设计 48.?基于单片机的水温控制系统设计 49.?基于单片机的数字温度计的设计 50.?基于单片机的火灾报警器 51.?基于单片机的红外遥控开关设计 52.?基于单片机的电子钟设计 53.?基于单片机的红外遥控电子密码锁 54.?大棚温湿度自动监控系统 55.?基于单片机的电器遥控器的设计 56.?单片机的语音存储与重放的研究 57.?基于单片机的电加热炉温度控制系统设计 58.次外遥控电源开关 59.?基于单片机的低频信号发生器设计 60.?基于单片机的呼叫系统的设计 61.?基于PIC16F876A单片机的超声波测距仪 62.?基于单片机的密码锁设计 63.?单片机步进电机转速控制器的设计 64.術AT89C51控制的太阳能热水器

51单片机课程设计

课程设计说明书
课程设计名称






学生姓名
指导教师
单片机原理及应用课程设计 电子信息工程 140405 20141329 李延琦 胡黄水
2016 年 12 月 26 日

课程设计任务书
课程设计 题目
酒精测试仪
起止日期
2016 年 12 月 26 日— 2017 年 1 月 6 日
设计地点
计算机科学与工程学 院单片机实验室 3409
设计任务及日程安排: 设计任务:分两部分: (一)、设计实现类:进行软、硬件设计,并上机编程、联线、调试、 实现; 1.电子钟的设计 2.交通灯的设计 3.温度计的设计 4.点阵显示 5.电机调速 6.电子音乐发声(自己选曲) 7.键盘液晶显示系统 (二)、应用系统设计类:不须上机,查资料完成软、硬件设计画图。 查资料选定题目。 说明:第 1--7 题任选其二即可。(二)里题目自拟。 日程安排: 本次设计共二周时间,日程安排如下: 第 1 天:查阅资料,确定题目。 第 2--4 天:进实验室做实验,连接硬件并编写程序作相关的模块实验。 第 5--7 天:编写程序,并调试通过。观察及总结硬件实验现象和结果。 第 8--9 天:整理资料,撰写课程设计报告,准备答辩。 第 10 天:上交课程设计报告,答辩。 设计报告要求:
1. 设计报告里有两个内容,自选题目内容+附录(实验内容),每 位同学独立完成。 2. 自选题目不须上机实现,要求能正确完成硬件电路和软件程序 设计。内容包括: 1) 设计题目、任务与要求 2)硬件框图与电路图 3) 软件及流程图 (a)主要模块流程图 (b)源程序清单与注释 4) 总结 5) 参考资料 6)附录 实验上机调试内容
注:此任务书由指导教师在课程设计前填写,发给学生做为本门课程设计 的依据。

单片机课程设计(温度控制器)

基于单片机的温度控制器设计 内容摘要:该温度报警系统以AT89C51单片机为核心控制芯片,实现温度检测报警功能的方案。该系统能实时采集周围的温度信息,程序内部设定有报警上下限,根据应用环境不同可设定不同的报警上下限。该系统实现了对温度的自动监测和自动调温功能。 关键词:AT89C51ADC0808 温度检测报警自动调温 Abstract:The temperature alarm system AT89C51 control chip, realize temperature detection alarm function scheme. The system can collect real-time temperature information around that internal procedures set alarm equipped, according to different application environment can be set different alarm upper. The system realizes the automatic monitoring of temperature. The instrument can achieve the automatic thermostat function. Keywords:AT89C51 ADC0808Temperature detectingalarmautomatic thermostat 引言:本课题是基于单片机的温度控制器设计,经过对对相关书籍资料的查阅确定应用单片机为主控模块通过外围设备来实现对温度的控制。实现高低温报警、指示和低温自加热功能(加热功能未在仿真中体现)。 1.设计方案及原理 1.1设计任务 基于单片机设计温度检测报警,可以实时采集周围的温度信息进行显示,并且可以根据应用环境不同设定不同的报警上下限。 1.2设计要求 (1)实时温度检测。 (2)具有温度报警功能。 (3)可以设报警置温度上下限。 (4)低于下限时启动加热装置。 1.3总体设计方案及论证

基于-89C51单片机的秒表课程设计汇本

《单片机技术》 课程设计报告 题目:基于MCU-51单片机的秒表设计班级: 学号: 姓名: 同组人员: 指导教师:王瑞瑛、汪淳 2014年6月17日

目录 1课程设计的目的 (3) 2 课程设计题目描述和要求 (3) 2.1实验题目 (4) 2.2设计指标 (4) 2.3设计要求 (4) 2.4增加功能 (4) 2.5课程设计的难点 (4) 2.6课程设计容提要 (4) 3 课程设计报告容 (5) 3.1设计思路 (5) 3.2设计过程 (6) 3.3 程序流程及实验效果 (7) 3.4 实验效果 (16) 4 心得体会 (17)

基于MCS-51单片机的秒表设计 摘要:单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。本次设计容为以8051 单片机为核心的秒表,它采用键盘输入,单片机技术控制。设计容以硬件电路设计,软件设计和PCB 板制作三部分来设计。利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LED 数码管以及按键来设计计时器。将软、硬件有机地结合起来,使他拥有正确的计时、暂停、清零、并同时可以用数码管显示,在现实生中应用广泛。 关键词:秒表;8051;定时器;计数器 1 课程设计的目的 《单片机应用基础》课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的就是配合本课程的教学和平时实验,以达到巩固消化课程的容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。 2 课程设计题目描述和要求

本科毕业设计--基于51单片机的电子日历设计

成都电子机械高等专科学校成教院毕业设计(论文) 论文题目:基于51单片机的电子日历设计 教学点:重庆科创职业学院 指导老师:张忠雨职称:讲师 学生姓名:聂燕学号: 2011700558 专业:应用电子技术 成都电子机械高等专科学校成教院制 2012 年 3 月 9 日

成都电子机械高等专科学校成教院毕业设计(论文)任务书 题目:基于51单片机的电子日历设计 任务与要求: 通过单片机设计电子日历数码管正常显示阳历、阴历日期,显示的格式为年-月-日,利用外部按键的操作实现阳历和阴历之间的 转换,实现阴历和阳历显示的暂停、运行等功能。 时间:2011年12月15日至2012 年3月15日共12 周教学点:重庆科创职业学院 学生姓名:聂燕学号:2011700558 专业:应用电子技术 指导单位或教研室: 指导教师:张忠雨职称:讲师 成都电子机械高等专科学校成教院制

毕业设计(论文)进度计划表

摘要 设计以单片机AT89C51为核心部件的电子日历,利用74LS245作为驱动器,74LS138作为译码器使用,六个七段数码管均采用共阴极的方式,P0口作为段选码输出口,P2口作为位选码输出口。 本次设计的题目是基于单片机的电子日历设计,可以正常的显示年、月、日,还可以利用外部按键实现阴历和阳历之间的转换以及暂停等功能。电子日历具有性能稳定、精确度高、成本低、易于产品化,以及方便、实用等特点。适用于家庭、公司、机关等众多场所。为人们的日常生活、出行安排提供了方便,成为人们日常生活中不可缺少的一部分。 本次设计可分为两部分:硬件系统、软件系统。 硬件系统包括:AT89S51单片机、74LS245驱动器、74LS138译码器、RC复位电路、+5V直流电源电路、去抖电路、动态显示扫描电路。 软件系统主要有单片机的编程构成。 关键词:单片机,日历,位码,段码,显示

单片机课程设计——基于51单片机的温度监控系统设计

单片机课程设计报告 题目:温度监控系统设计 学院:能源与动力工程学院 专业:测控技术与仪器专业 班级: 2班 成员:魏振杰 二〇一五年十二月

一、引言 温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。对于不同场所、不同工艺、所需温度高低范围不同、精度不同,则采用的测温元件、测方法以及对温度的控制方法也将不同;产品工艺不同、控制温度的精度不同、时效不同,则对数据采集的精度和采用的控制算法也不同,因而,对温度的测控方法多种多样。 随着电子技术和微型计算机的迅速发展,微机测量和控制技术也得到了迅速的发展和广泛的应用。利用微机对温度进行测控的技术,也便随之而生,并得到日益发展和完善,越来越显示出其优越性。 作为获取信息的手段——传感器技术得到了显著的进步,其应用领域较广泛。传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。 为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。本系统利用传感器与单片机相结合,应用性比较强,本系统可以作为仓库温度监控系统,如果稍微改装可以做热水器温度调节系统、实验室温度监控系统,以及构成智能电饭煲等等。课题主要任务是完成环境温度监测,利用单片机实现温度监测并通过报警信号提示温度异常。本设计具有操作方便,控制灵活等优点。 本设计系统包括单片机,温度采集模块,显示模块,按键控制模块,报警和指示模块五个部分。文中对每个部分功能、实现过程作了详细介绍。整个系统的核心是进行温度监控,完成了课题所有要求。 二、实验目的和要求 2.1学习DS18B20温度传感芯片的结构和工作原理。 2.2掌握LED数码管显示的原理及编程方法。 2.3掌握独立式键盘的原理及使用方法。 2.4掌握51系列单片机数据采集及处理的方法。 三、方案设计

51单片机交通灯课程设计

第一章单片机概述 单片机是20世纪70年代中期发展起来的一种大规模集成电路器件。它在一块芯片内芯片内集成了计算机的各种功能部件,构成一种单片式的微型计算机。20世纪80年代以来,国际上单片机的发展迅速,其产品之多令人目不暇接,单片机应用不断深入,新技术层出不穷。 单片机的应用技术是一项新型的工程技术,其内涵随着单片机的发展而发展。由于MCS-51系列的单片机的模块化结构比较典型、应用灵活,为许多大公司所采纳,使8051系列的单片产品日新月异。在Intel公司20世纪80年代初推出MCS-51系列单片机以后,世界上许多著名的半导体厂商相继生产和这个系列兼容的单片机,使产品型号不断地增加、品种不断丰富、功能不断加强,在国内外单片机应用中占有重要地位。由于单片机具有功能强、体积小、价格低等一系列优点,在各个领域都有广泛的应用,有力地推动了各行各业的技术改造和产品更新换代。 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,

产品更新换代的节奏也越来越快。 第二章MSC-51芯片简介 8051是MCS-51系列单片机的典型产品。 8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明: ·中央处理器:

中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。 ·数据存储器(RAM) 8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM 只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。 ·程序存储器(ROM): 8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。 ·定时/计数器(ROM): 8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。 ·并行输入输出(I/O)口: 8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。 ·全双工串行口: 8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。

单片机课程设计题目

《单片机原理与应用》课程设计题目 1.基于单片机的电子秒表 本设计以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,两个按键,三位数码管显示,打开电源开关后显示8,每秒循环左移一位,即□□8—>□8□—>8□□—>□□8—>…,按A键开始计时,实时显示所经历的时间,按B键停止计时并显示从开始到当前时刻的时间,要求精确到0.1秒,量程为0~99.9秒。 要求按键输入采用中断方式,按键A接INT0,按键B接INT1。 2.智能电动百叶窗 本设计以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,用一台直流电机控制百叶窗叶片的旋转(正转/反转),用一个光敏电阻传感器测量室内光强度,并用两位数码管显示测量结果,设置三个按键:手动/自动切换、手动正转和手动反转,用一个发光二极管显示手动/自动状态,自动状态时二极管亮。 设置两个极限位置保护行程开关,用于保护百叶窗叶片:当正转到极限位置压下行程开关时,电机停止正转,但还可以反转;当反转到极限位置压下行程开关时,电机停止反转,但还可以正转。 按键输入采用中断方式,按键中断请求信号接INT0. 单片机根据设定光强S1和S2(S2 > S1)和实测光强P控制电机M的动作:当P<=S1时,控制M正转以增加进光量; 当P>S2时,控制M反转以减少进光量; 当S1S+1时,控制R断开电加热回路; 当S-1

基于51单片机课程设计

基于51单片机课程设计报告 院系:电子通信工程 团组:电子设计大赛1组 姓名: 指导老师:

目录 一、摘要 (3) 二、系统方案的设计 (3) 三、硬件资源 (5) 四、硬件总体电路搭建 (13) 五、程序流程图 (14) 六、设计感想 (14) 七、参考文献 (16) 附录 (17) 附录 1 程序代码 (17)

一、摘要 本设计以STC89C51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测电路、温度控制电路。单片机通过对信号进行相应处理,从而实现温度控制的目的。文中还着重介绍了软件设计部分,在这里采用模块化结构,主要模块有:数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、led控制程序、超温报警程序。 关键词:STC89C51单片机 DS18B20温度芯片温度控制 ,LED报警提示. 二、系统方案的设计 1、设计要求 基本功能: 不加热时实时显示时间,并可手动设置时间; 设定加热水温功能。人工设定热水器烧水的温度,范围在20~70度之间,打开开关后,根据设定温度与水温确定是否加热,及何时停止加热,可实时显示温度; 设定加热时间功能。限定烧水时间,加热时间内超过温度上限或低于温度下限报警,并可实时显示温度。 2、系统设计的框架

本课题设计的是一种以STC89C51单片机为主控制单元,以DS18B20为温度传感器的温度控制系统。该控制系统可以实时存储相关的温度数据并记录当前的时间。其主要包括:电源模块、温度测量及调理电路、键盘、数码管显示、指示灯、报警、继电器及单片机最小系统。 图1 系统设计框架 3 工作原理 温度传感器 DS18B20 从设备环境的不同位置采集温度,单片机STC8951获取采集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温度上下限值,通过加热和降温对当前温度进行调整。当采集的温度经处理后超过设定温度的上限时,单片机通过三极管驱动继电器开启降温设备(压缩制冷器) ,当采集的温度经处理后低于设定温度的下时 , 单片机通过三极管驱动继电器开启升温设备 (加热器) ,这里采用通过LED1和LED2取代!!! 当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声,这里采用HLLED提示。

基于单片机的毕业论文题目有哪些

基于单片机的毕业论文题目有哪些 很多物联网专业的学生对单片机非常感兴趣,不光是对专业的热爱,另外由于单片机是集成电路芯片,是控制整个流程最基础的环节,大多数理科生对这种控制式设计充满着好奇,下面,我们学术堂整理了多个基于单片机的毕业论文题目,欢迎各位借鉴。 基于单片机的毕业论文题目一: 1、基于单片机的压电加速度传感器低频信号采集系统的设计 2、基于单片机的超声测距系统 3、基于C8051F005单片机的两相混合式直线步进电机驱动系统的设计 4、基于单片机的工业在线数字图像检测系统研究与实现 5、基于FPGA的8051单片机IP核设计及应用 6、基于单片机的军需仓库温湿度测控系统研究 7、单片机多主机通信模式在粮库温湿度监控系统中的应用 8、基于单片机的中小水电站闸门控制系统 9、基于单片机的正弦逆变电源研制 10、单片机实验教学仿真系统的设计与开发 11、基于单片机的温湿度检测系统的设计 12、基于单片机的蓝牙接口设计及数据传输的实现 13、基于单片机的多功能温度检测系统的设计与研究 14、基于单片机的温度控制系统的研究 15、行为导向教学策略在职校单片机课程教学中的应用研究 16、逻辑电路与单片机的虚拟实验系统设计与实现

17、基于单片机的LED显示系统 18、基于单片机的校园安防系统 19、基于MSP430单片机的红外甲烷检测仪设计及实现 20、基于高性能单片机的无线LED彩灯控制系统的设计与实现 21、基于AVR单片机教学实验板的设计 22、基于单片机的阀岛控制系统的研究 23、基于AT89S51单片机实验开发系统设计 24、基于单片机和GPRS数据传输技术的研究 25、基于HCS12单片机的智能车底层控制系统研究 26、单片机GPRS智能终端及远程工业监控技术研究 27、基于单片机的MODBUS总线协议实现技术研究 28、基于单片机的室内智能通风控制系统研究 29、基于单片机的通用控制器设计与实现 30、基于单片机控制的PTCR阻温特性测试系统的设计与实现 31、Proteus在单片机教学中的应用 32、基于单片机的变频变压电源设计 33、基于单片机的监控系统控制部分的设计 34、基于单片机的葡萄园防盗报警系统设计 35、基于单片机的温度智能控制系统的设计与实现 36、基于单片机的远程抄表系统的设计与研究 37、基于单片机的温度测控系统在温室大棚中的设计与实现 38、基于单片机的高精度随钻测斜仪系统开发 39、基于16位单片机MC9S12DG128B智能车系统的设计 基于单片机的毕业论文题目二: 40、基于单片机的压力/液位控制系统的设计研究 41、单片机与Internet网络的通信应用研究 42、基于单片机控制的温室环境测控装置研究 43、具有新型接口的MCS-51单片机实验系统设计 44、基于单片机控制的直流恒流源的设计 45、基于单片机的模糊控制方法及应用研究 46、基于AT89S52单片机的煤矿瓦斯监测系统的研制 47、基于AT89C51单片机的脉象信号采集系统研究 48、基于DTMF技术的单片机远程通信系统研究 49、基于单片机的GPRS无线数据采集与传输系统的设计 50、基于单片机控制的柴油机喷油泵数据采集系统的设计与实现 51、基于谐振技术及MK单片机的多路升压器研究设计 52、基于单片机的数据串口通信 53、基于单片机的智能寻迹系统设计 54、压电式阀门定位器与单片机实验装置研制 55、基于单片机的微型电子琴研究与实现 56、基于单片机的恒温恒湿孵化器系统设计 57、基于16位单片机MC9S12XS128的两轮自平衡智能车的系统研究与开发

单片机课程设计题目..(DOC)

单片机课程设计题目 1 基于单片机的数字电压表设计 2 基于单片机的智能电压表设计(温度检测器) 3 基于单片机的智能船模设计 4 基于单片机的电梯控制模型设计 5 基于单片机的水位控制系统设计(STC89—51型) 6 基于单片机的多路数据采集系统设计 7 基于单片机的8路抢答器设计 9 基于单片机的数字温度计设计 10 基于单片机的智能小车设计 11 基于单片机的数字温度计设计 12 基于单片机的遥控器设计 13 基于单片机的串行通信发射机设计 14 基于单片机的简易智能电动车设计 15 基于单片机的太阳能热水器控制器设计 16 基于单片机的太阳能热水器控制器设计 17 MCS-51单片机温度控制系统的设计 18 直流电动机的转速检测与脉宽调速 19 基于单片机的智能机器人的设计 20 基于单片机的简易无线竞赛系统的设计 21 基于单片机的车辆闯红灯监控系统设计(89C51) 22 基于单片机控制的井下瓦斯监控系统设计 23 基于单片机的煤气泄漏检测报警装置设计 24 基于单片机的井式渗碳炉控制系统设计 25 基于单片机的蔬菜大棚温湿度智能控制系统设计 26 基于单片机的电子钟设计 27 基于单片机的电力线载波节电群控设计 28 基于单片机的液位控制器设计

29 基于单片机的串行通信发射机设计 30 基于单片机的智能八路抢答器设计 32 基于单片机的水位监控器设计(STC12C2052AD) 32 基于单片机的点阵电子显示屏设计 33 基于单片机的智能温度控制系统设计 34 基于单片机的智能时钟控制器设计 35 基于单片机的智能温控系统设计 36 基于单片机的智能寻迹避障小车设计 37 基于单片机的家用太阳能热水器控制器设计 38 基于单片机的新型抢答计分器设计 39 基于单片机的热敏电阻测温系统设计 40 基于单片机的林火监测系统-飞艇姿态控制系统设计 41 基于单片机的人性化时钟控制器设计 42 基于单片机的智能型电话远程遥控器设计 43 基于单片机的远程通讯控制器设计 45 基于单片机的智能水位控制器设计 46 基于单片机的水位控制系统设计 47 基于单片机的智能电动小车设计 48 基于单片机的数码电子时钟设计 49 -基于单片机的数控直流电源设计 50 基于单片机的交通灯控制器设计 51 基于单片机的数字温度计设计(STC89C51) 52 基于单片机的智能小车设计 53 基于单片机的温度控制器设计 54 基于单片机的串行通信发射机设计(版本3) 55 基于单片机的温度控制系统设计(版本1) 56 基于单片机的交通灯控制系统设计 D58-基于单片机的电子万年历设计 D59-基于单片机的水位控制器设计 D60-基于单片机的水位控制系统设计(版本2)

单片机课程设计报告

《单片机原理及接口技术》课程设计题目:简易计算器设计 级:电子1547 名:苏丹丹、李静、齐倩 号:05号、17号、11号

导教师:张老师 间:2013年12月 西安航空学院电气学院

目录 一、选题的背景和意义-------------------1 1.1选题的背景-------------------------------------1 1.2选题的意义-------------------------------------1 二、总体设计-------------------------------1 2.1设计任务---------------------------------------1 2.2方案选择---------------------------------------1 三、硬件设计-------------------------------2 3.1 元器件名称--------------------------------------------------------2 3.2 计算器按键介绍--------------------------------------------------2 3.3硬件系统框图、单元电路--------------------------3 四、软件设计-------------------------------3 4.1 软件调试步骤-----------------------------------------------------3 4.2软件设计流程图---------------------------------------------------4 五、结束语------------------------------------5 六、参考文献--------------------------------5 七、附录---------------------------------------6

基于单片机的毕业设计题目

单片机类 业设计 刷电子时钟的设计 刷全自动节水灌溉系统--硬件部 刷数 式温度计的设计 刷温度 控系统设计 刷基于单片机的语音提示测温系统的研究 刷简易无线电遥控系统 刷数 流 计 刷基于单片机的全自动洗衣机 刷水塔智能水 控 系统 刷温度箱模拟控 系统 刷超声波测距仪的设计 刷基于51单片机的L司号点阵显示屏系统的设计与实 16×16点阵显示屏 刷基于A切89分51单片机的数 电子时钟 刷基于单片机的步 电机的控 刷基于单片机的交流调 器设计 刷基于单片机的数 电压表的设计 刷单片机的数 钟设计 刷智能散热器控 器的设计 刷单片机打铃系统设计 刷基于单片机的交通信 灯控 电路设计 刷基于单片机的电话 程控 家用电器系统设计 刷基于单片机的安全 警器 刷基于单片机的 路抢答器设计 刷基于单片机的超声波测距系统的设计 刷基于MC分-51数 温度表的设计 刷电子体温计的设计 刷基于A切89C51的电话 程控 系统 刷基于A三R单片机幅度 调的号号分信 发生器 刷基于单片机的数控稳压电源的设计 刷基于单片机的室内一氧化碳 测及 警系统的研究 刷基于单片机的空调温度控 器设计 刷基于单片机的 编程多 能电子定时器 刷单片机的数 温度计设计 刷红外遥控密码锁的设计 刷基于61单片机的语音识别系统设计 刷家用 燃气体 警器的设计 刷基于数 温度计的多点温度检测系统 刷基于凌 单片机的语音实时采集系统设计 刷基于单片机的数 频率计的设计 刷基于单片机的数 电子钟设计 刷设施 境中温度测 电路设计 刷汽车倒车 撞 警器的设计 刷篮球赛计时记 器

刷基于单片机的家用智能总线式开关设计 刷设施 境中湿度检测电路设计 刷基于单片机的音乐合成器设计 刷设施 境中二氧化碳检测电路设计 刷基于单片机的水温控 系统设计 刷基于单片机的数 温度计的设计 刷基于单片机的火灾 警器 刷基于单片机的红外遥控开关设计 刷基于单片机的电子钟设计 刷基于单片机的红外遥控电子密码锁 刷大棚温湿度自动 控系统 刷基于单片机的电器遥控器的设计 刷单片机的语音 储与 放的研究 刷基于单片机的电 热炉温度控 系统设计 刷红外遥控电源开关 刷基于单片机的 频信 发生器设计 刷基于单片机的呼叫系统的设计 刷基于PIC16F876A单片机的超声波测距仪 刷基于单片机的密码锁设计 刷单片机步 电机转速控 器的设计 刷由A切89C51控 的太 能热水器 刷 盗与恒温系统的设计与 作 刷A切89分52单片机实验系统的开发与 用 刷基于单片机控 的数 气压计的设计与实 刷智能压力传感器系统设计 刷智能定时器 刷基于单片机的智能火灾 警系统 刷基于单片机的电子式转速 程表的设计 刷 交车汉 显示系统 刷单片机数 电压表的设计 刷精密三F转换器与MC分-51单片机的接口技术 刷基于单片机的居室安全 警系统设计 刷基于89C2051 IC卡读/写器的设计 刷PC机与单片机串行通信设计 刷球赛计时计 器设计 刷 系列PCL五层电 控 系统设计 刷自动起闭光控窗帘设计 刷单片机控 交通灯系统设计 刷基于单片机的电子密码锁 刷基于51单片机的多路温度采集控 系统 刷点阵电子显示屏-- 业设计 刷超声波测距仪-- 业设计 刷单片机对玩 小车的智能控 业设计论文 刷基于单片机控 的电机交流调速 业设计论文

单片机课程设计题目

1.电子秒表设计:设计一个4位LED数码显示“秒表”,显示时间为00.00~99.99秒,每0.01 秒自动加一。另设计一个“开始”按键和一个“复位”按键。(2人) 2.简易4位(0—9999)计算器(+、-、*、/、四种运算)设计:设计一个能实现0-9整数 加法运算的计算器,利用LCD显示。键盘包括0-9及“+、-、*、/”和“=”及“清除” 16个按键。(除法应保留足够的的小数,满足共4位的显示)要有错误显示Err。(2人) 3.频率数显表:设计一个能实现对脉冲频率测量显示的电路。输入频率范围(0-10k),显 示为xxx.xx,用两个指示灯指示显示数字的单位,Hz和KHz两档,根据输入频率自动切换显示档。(脉冲信号是由外部信号发生器提供)(2人) 4.信号灯控制系统:南北线有红黄绿三只信号灯,东西线有红黄绿三只信号灯。 要求:(闪烁3次,每次亮灭时间各1s)时序要求如下(原始状态) 设计一个递增键和一个递减键,用于调节功能键选定的方向的绿灯时间,时间范围(10s-50s),每次以0.5S为增量。(2人) 5.简易电子时钟:用4位LED数码管分别显示小时数分钟和秒数,两个按键,一个为功能 键,用于切换显示界面(两个显示界面,一个是小时分钟,一个是秒数)长按此键3S 进入当前界面的参数修改界面。另一个按键用于参数修改(参数递增或递减),长按此键3s退参数修改,时间要求用单片机自带的定时器得到。(2人) 6.智能电子钟(LCD显示):以A T89C51单片机为核心,制作一个LCD显示的智能电子 钟:(1) 计时:秒、分、时、天、周、月、年。(2) 闰年自动判别。(3) 五路定时输出,可任意关断(最大可到16路)。(4) 时间、月、日交替显示。(5) 自定任意时刻自动开/关屏。(6) 计时精度:误差≤1秒/月(具有微调设置)。(7) 键盘采用动态扫描方式查询。所有的查询、设置功能均由功能键K1、K2完成。采用时钟芯片DS1302进行制作 7.多路报警器设计。用AT89C51单片机设计报警系统,用16个开关模拟报警点,当有 开关闭合时,用P1.0产生方波信号驱动蜂鸣器作为报警信号,同时用2位数码管显示报警点(即是第几个开关)。(2人) 8.简易数字电压表设计。利用单片机AT89S51与AD设计一个数字电压表,能够测量0- 36V之间的直流电压值,用LCE显示(根据测量精度,自定显示的位数)。(2人) 9.波形发生器。三种信号:正弦波、方波、三角波。利用DA转换器设计一波形发生器,

51单片机课程设计秒表

微控制器技术课程 设计报告 设计题目:秒表 专业:供用电技术 班级:供电141 学号:140315143 姓名:王晨铭 指导教师:李昊 设计时间:2016.6.21

微控制器技术课程设计任务书 设计题目:秒表 设计时间:2016.6.20 设计任务: 在单片机开发板或软件仿真,编制程序,实现以下功能 1、利用定时器实现秒表功能,精确到0.1S; 2、数码管显示当前计时时间; 3、设定三个键,计时开始,停止计时和复位清零。 背景资料:1、单片机原理与应用 2、检测技术 3、计算机原理与接口技术 进度安排: 1、第1天,领取题目,熟悉设计内容,分解设计步骤和任务; 2、第3天,规划设计软硬件,编制程序流程、绘制硬件电路。 3、第5天,动手制作硬件电路,或编写软件,并调试。 4、第7天,中期检查。 5、第9天,完善设计内容,书写设计报告。 6、第13天,提交设计报告,整理设计实物,等待答辩。 7、第14天,设计答辩。

目录 一、设计任务和要求 (3) (1)设计任务 (3) (2)设计要求 (3) 二、设计方案与论证 (3) 三、单元电路设计与参数计算 (4) (1)时钟电路 (4) (2)按钮电路 (4) (3)显示电路 (5) (4)单片机 (5) 四、原理图及器件清单 (6) ( 1 )总原理图 (6) (2)PCB图 (7) (3)Proteus仿真图 (7) (4)元器件清单 (8) 五、安装与调试 (8) (1)安装 (8) (2)调试 (8) 六、性能测试和分析 (9) 七、结论和心得 (9) 八、参考文献 (9)

题目:秒表 二、方案设计与论证 本设计分为时钟电路、按钮电路、显示电路和单片机四大部分,这些模块中单片机占主控地位。其模块电路如图2-1所示。时钟电路常用的有内部时钟方式和外部时钟方式,但因为本设计中只需要一片单片机,所以采用内部时钟方式比较简单。按钮电路中的“复位”按钮是按键手动复位,它有电平和脉冲两种方式,比较电路的复杂程度,本设计选择了按钮电平复位电路,其他几个按钮则是通过单片机判断高低电平的不同来控制按钮。显示电路所用的数码管有共阴和共阳之分,不管使用何种数码管,P0口作为I/O使用时都是需要上拉电阻才能驱动数码管。另外,因为单片机的4个并行I/O口的输出电流一般是1mA,短路电流为4mA左右,而数码管的最少驱动电流也需要10mA,因而不管在使用共阴数码管时,单片机输出口也必须使用上拉电阻提高输出电流,才能驱动数码管。为了使电路简单化,本设计选用共阳数码管。但根据显示方式的不同选择,我们可以有几种方案: 方案一:使用静态显示方式。静态显示方式下的数码管的显示字符一经确定,相应锁存器锁存的断码输出將维持不变,直到送入另一个字符的断码为止。因而此设计中使用的显示位数使用了三个8位并行I/0口。如果另外想扩展单片机功能,则能使用的输出管脚很是有限。 方案二:使用动态显示方式。这个显示方式是将所有显示位的段码线的相应段并联在一起,由一个8位I/O口控制,而各位的共阴或共阴极分别由相应的I/O线控制,形成各位的分时选通。这种显示方式,简化了硬件电路,特别在多位数码管显示时尤为突出。 本小组尝试了各种方案,在此报告中以静态显示方式为例说明。(动态显示方式省略) 显示电路 单片机 AT89C51 时钟电路 按钮电路

51单片机课程设计源程序

TIME0_DOWN EQU F0 ;将F0设置为定时器0定时到标志 FINISH_ID EQU 30H ;学号发送标志 KEY_FLAG BIT 00H ;有键按下标志 KEY_LONG BIT 01H ;键长按 KEY_D EQU 31H ;键值存放地址 ADC0809_AD EQU 8000H ;设置ADC0809地址 DAC0832_AD EQU 0000H ;设置DAC0832地址 ADC_FLAG BIT 02H ;设置ADC0809读数据标志 ADC_DATE EQU 32H ;设置ADC0809数据地址 ADC_0 EQU 33H ;ADC0809转化为BCD码后个位存放地址 ADC_1 EQU 34H ;十分位存放地址 ADC_2 EQU 35H ;百分位存放地址 ADC_3 EQU 36H ;千分位存放地址 ORG 0000H ;程序开始,跳转至主程序 0000 020030 LJMP MAIN ORG 0003H ;外部中断0入口0003 020141 LJMP INT0_IN ORG 000BH ;设置定时器0中断入口地址 000B 020132 LJMP TIME0 ORG 0013H ;外部中断1入口0013 020151 LJMP INT1_IN ORG 0030H ;主程序开始地址 0030 758169 MAIN: MOV SP,#69H ;初始化堆栈指针 0033 C292 CLR P1.2 ;显示器清零 0035 D292 SETB P1.2 0037 753000 MOV FINISH_ID,#0 ;将标志位清零 003A C2D5 C LR TIME0_DOWN 003C C200 CLR KEY_FLAG 003E C201 CLR KEY_LONG 0040 753100 MOV KEY_D,#0 0043 C202 CLR ADC_FLAG 0045 753200 MOV ADC_DATE,#0 0048 753300 MOV ADC_0,#0 004B 753400 MOV ADC_1,#0 004E 753500 MOV ADC_2,#0 0051 753600 MOV ADC_3,#0 0054 C291 CLR P1.1 ;初始化键盘,行线置零,有键按下触发中断 0056 C293 CLR P1.3

51单片机16X16LED点阵式汉字电子显示屏设计_毕业设计(论文)

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

单片机课程设计题目11级1

题目1 电子时钟(LCD显示) 设计要求 以AT89C51单片机为核心的时钟,在LCD显示器上显示当前的时间: ●使用字符型LCD显示器显示当前时间。 ●显示格式为“时时:分分:秒秒”。 ●用4个功能键操作来设置当前时间,4个功能键接在P1.0~P1.3引 脚上。 功能键K1~K4功能如下。 ●K1—进入设置现在的时间。 ●K2—设置小时。 ●K3—设置分钟。 ●K4—确认完成设置。 程序执行后工作指示灯LED闪动,表示程序开始执行,LCD显示“00:00:00”,然后开始计时。 题目2 基于数字温度传感器的数字温度计 设计要求 利用数字温度传感器DS18B20与单片机结合来测量温度。利用数字温度传感器DS18B20测量温度信号,计算后在LED数码管上显示相应的温度值。其温度测量范围为?55℃~125℃,精确到0.5℃。所测量的温度采用数字显示,控制器使用单片机AT89C51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示。 题目3 十字路口交通灯控制 设计要求 设计一个十字路口交通灯控制器。用单片机控制LED模拟交通灯。东西

向通行时间为80s,南北向通行时间为60s,缓冲时间为3s。 本项目为典型的LED显示和中断定时电路。利用定时器T0产生每10ms 一次的中断,每100次中断为1s。对两个方向分别显示红、绿、黄灯,并显示相应的剩余时间。值得注意的是,A方向红灯时间=B方向绿灯时间+黄灯缓冲时间。 题目4 节日彩灯控制器的设计 设计要求 以单片机为核心,设计一个LED显示的节日彩灯控制器,P1.2~P1.5引脚上接有4个按键,4个按键的各自的功能如下: ●P1.2—开始键,按此键则灯开始流动(由上而下)。 ●P1.3—停止键,按此键则停止流动,所有灯为暗。 ●P1.4—上,按此键则灯由上向下流动。 ●P1.5—下,按此键则灯由下向上流动。 本题目本质上是由按键控制功能的流水灯,LED工作的方式通过键盘的扫描实现。其中的LED采取共阳极接法,通过依次向连接LED的I/O口送出低电平,即可实现所要求的功能。 题目5 数字音乐盒的设计 设计要求 以单片机为核心,设计一个数字音乐盒: 利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少3首乐曲,每首不少于30s)。采用LCD显示信息。开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称)。可通过功能键选择乐曲、暂停、播放。 题目6 单片机控制步进电机 设计要求

相关文档
最新文档