基于51单片机的多功能定时器

摘要

本设计要求以单片机为核心主体,完成最小系统板的设计与制作(通过Protel

软件,对电路进行设计,调试。生成PCB板,再对元器件进行排布,焊接。)之

后要进行初调试,证实电路板无误后才能进行下面的内容。电路板完成后,在总

程序基础上通过编程设计家用多路定时控制器。本课程设计目标:具有正常数字

钟功能,包括时间校正,具有至少三路定时开关控制功能,每路定时时间可以任

意设置。但重要的是要有一定的创新,因为此系统还有很多值得开发的功能,单

纯的三路定时只是设计内容的基本要求。

关键词:Protel,单片机,MCS-51

目录

摘要 ........................................................................................................ - 1 -

引言 ........................................................................................................ - 2 -

1 绪论 .................................................................................................... - 2 -

1.1系统背景........................................................................................................... 1

1.1.1单片机技术及其发展特点..................................................................... 1

1.1.2单片机在电子技术中的应用................................................................. 3

1.1.3课程设计的内容与任务......................................................................... 4

2 系统电路设计 ........................................................................................ 5

2.1 系统总体设计框架结构.................................................................................. 5

2.2 系统硬件单元电路设计.................................................................................. 6

2.2.1 时钟电路设计........................................................................................ 6

2.2.2 复位电路设计........................................................................................ 6

2. 2.3 按键电路设计....................................................................................... 7

2.3数码管电路设计............................................................................................... 8

2.3.1、数码管的分类...................................................................................... 8

2.3.2、数码管的驱动方式.............................................................................. 8

2.3 系统硬件总电路............................................................................................ 14

3 系统软件设计 ...................................................................................... 10

3.1 系统软件流程图............................................................................................ 10

4 实验结果和分析 .................................................................................. 11

4.1 实验使用的仪器设备.................................................................................... 11

4.2 测试结果分析................................................................................................ 11

结论 ........................................................................................................... 12

参考文献 ................................................................................................... 13

附录 ........................................................................................................... 13

系统程序设计....................................................................................................... 15

Abstract ..................................................................................................... 25

致 谢 ....................................................................................................... 25

引言

我们在日常生活中,经常碰到一些需要定时的事情,例如:印相或放大照

片,需要定在零点几秒的时间,洗衣机洗涤衣物需要定在几分钟到几十分钟的

时间,电风扇需要定在数十分钟的时间。完成这种定时的定时器有多种多样,

在家用电器中采用机械定时器就是根据一般上弦钟表原理设计的,这种定时器

虽然结构简单,成本低,维修也比较方便,但是它的触头频繁接触和断开,大

大的缩减了它的使用寿命,也不利于进一步全自动化。在电子技术突飞猛进的

今天,电子定时器一定会逐步取而代之,这是不言而喻的。

本文是基于51系列单片机设计的一种用于控制家用电器的设计方案。

1 绪论

1.1系统背景

1.1.1单片机技术及其发展特点

早期的单片机(Single Chip Microcomputer单片微计算机)只是将CPU及

计算机外围功能单元(如I/O口、定时/计时器、UART、RAM、ROM等)集成

在一块芯片上。随着单片机技术的发展以及微处理器(MPU)技术及超大规模集

成电路技术的发展,单片机集成了更多的用于控制目的的功能单元(如高速I/O

口、ADC、PWM、WATCHDOG、 I2CBus - Inter IC Bus、CAN Bus – Controller

Area Network Bus等),从而成为严格意义上的单片微控制器(Single Chip

Microcontroller)。图1-1所示的为MCS—51单片机片内总体结构框图。

单片机系统以单片机为核心部件,可分为单机应用和多机应用。单机应用

是指一个应用系统中只使用一个单片机,这是目前应用最多的方式;多机应用

是单片机在高科技领域应用的主要模式。单片机的高可靠性、高控制功能及高

运行速度的―三高‖特点必然使得未来的高科技工程系统将采用da单片机多机系

统作为主要的发展方向。

图1-2所示的为典型的单片机系统原理框图。

图1-1 MCS—51单片机片内总体结构框图

单片机的生存周期相对于普通CPU而言非常之长,如MCS8051已超

过15年。以某类单片机(如8051/52)为核心,集成不同I/O功能模块的新单

片机系列层出不穷;而某些单片机更是突出了以功能分类的特点(如Microchip

公司的 PIC单片机)。8位、16位、32位单片机共同发展也是当前单片机技术

发展的另一特点。

单片机运算速度越来越快,为提高单片机抗干扰能力和降低噪声,尽量不

采用提高时钟频率单一措施,而是通过调整单片机的内部时序、使用琐相环技

术或内部倍频技术等技术,在不提高时钟频率的条件下,使运算速度提高了很

多。

图1-2 典型单片机系统原理框图

低电压与低功耗是单片机技术的发展的另一个特点。采用最新的集成电路

制造技术,全静态设计使时钟频率从直流到数十兆任选,使功耗不断下降。PIC

单片机、Motorola的某些单片机等在这方面具有很强的优势。

为提高单片机系统的抗电磁干扰能力,使产品能适应恶劣的工作环境,满

足电磁兼容性方面更高标准的要求,各单片机商家尽量采用低噪声与高可靠性

技术,在单片机内部电路中采取了一些新的技术措施,如增加了抗EMI电路、

增强了WATCHDOG的性能等。

为降低单片机产品的成本,广泛采用掩膜(Mask ROM)、一次编程(OTP-One

Time Programmable)和多次编程(MTP-Multi Time Programmable)单片机。过

去成熟的单片机产品一般采用掩膜型单片机,由于掩膜需要一定的生产周期,

而一次编程型单片机价格不断下降,使得近年来直接使用一次编程完成最终产

品制造更为流行。近年来,一次编程型单片机需量大幅度上扬,为适应这种需

求许多单片机都采用了在片编程技术(In System Programming)。未编程的一次

编程芯片先焊在印刷板上,然后再其进行编程,解决了批量写一次编程芯片时

容易出现的芯片与写入器接触不好的问题。编程线与I/O线共用,不增加单片

机的额外引脚。而多次编程向一次编程提出了挑战,一些单片机厂商采用

FLASH存储器作为程序存储器(如ATMEL 公司的单片机),可多次编程。

1.1.2单片机在电子技术中的应用

单片机的应用领域

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片

机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数

据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,

民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及

程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机

器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批

计算机应用与智能化控制的科学家、工程师。

单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备

的智能化管理及过程控制等领域,大致可分如下几个范畴:

1.在智能仪器仪表上的应用

单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便

等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、

功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压

力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,

且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示

波器,各种分析仪)。

2.在工业控制中的应用

用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线

的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制

系统等。

3.在家用电器中的应用

可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗

衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花

八门,无所不在。

4.在计算机网络和通信领域中的应用

现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,

为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备

基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自

动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群

移动通信,无线电对讲机等。

1.1.3课程设计的内容与任务

本课程设计是基于ATMEL公司生产的AT89CS51单片机为主而设计的,

本课程设计主要内容和任务是完成单片机最小系统板设计与制作,在此基础上

通过编程设计家用多路定时控制器。使其具有正常数字钟功能,包括时间校正,

具有至少三路定时开关控制功能,每路定时时间可以任意设置。当然,该定时

器依然可以通过编程设计出多种功能,例如:电子日历,交通指示灯等等。

2 系统电路设计

复位电路:通过复位电路使所有的状态都恢复原始状态。

时钟电路:通过该电路产生单片机工作所需要的时钟信号。

按键电路:通过该电路改变单片机控制的功能。

单片机 :控制整个电路。

数码管 : 显示时间或者其它。

2.2 系统硬件单元电路设计

2.2.1 时钟电路设计

图2-2 时钟电路设计

该时钟电路是由晶体振荡器和两个微调电容组成的。在单片机芯片内部有一

个高增益反相放大器,其输入端为引脚XTAL1,其输出端为引脚XTAL2。只需

要在片外通过XTAL1和XTAL2引脚跨接晶体振荡器或在引脚与地之间加接微

调电容,形成反馈电路,振荡器即可工作。由于该晶振使用的是12MHZ的晶体,

因此它的时钟周期是0.167us,机器周期为1us。

2.2.2 复位电路设计

图2-3 复位电路设计

2. 2.3 按键电路设计

RST键:复位键,按下后灯管均亮。

1 键:其功能是当该键按下时,进入时间调整功能。

2 键:其功能是对被调整位加一。

3 键:其功能是对被调整位减一。

4 键:其功能是对定时进行设置。

5 键:其功能是对被定时位加一。

6 键:其功能是对被定时位减一。

7 键:其功能是切换定时状态和时钟状态。

8 键:其功能是切换星期、秒和时钟状态。

图2-4按键电路设计

2.3数码管电路设计

数码管是一种半导体发光器件,其基本单元是发光二极管。

2.3.1、数码管的分类

数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个―8‖可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。

2.3.2、数码管的驱动方式

数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字。

动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM

端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

3 系统软件设计

3.1 系统软件流程图

说明:程序开始执行,启动定时器0和定时器1,然后执行while语句,但条件一直成立,因此while语句中的子函数一直在执行。If语句也一直在判断有没有shift键有没有按下,是否进入了调时调分的阶段,一段进入,通过键盘扫描和键值判断,使得按键处理子程序进入新的状态,从而数码管显示新的内容。

4 实验结果和分析

4.1 实验使用的仪器设备

本实验主要用到了电源,电脑,烧程器,电烙铁,元器件若干。

4.2 测试结果分析

通过按shift键来改变电路状态 第一次按下shift键,进入调时状态。 第二次按下shift键,进入调分状态。

第三次按下shift键,进入第一路定时的调时状态。 第四次按下shift键,进入第一路定时的调分状态。 第五次按下shift键,回归时钟状态。

第六次按下shift键,进入第二路定时的调时状态。 第七次按下shift键,进入第二路定时的调分状态。 第八次按下shift键,回归时钟状态。 然后按下1键,进入交通灯提示状态。 按下2键,正式进入交通灯状态。 按下shift键,回归原始时钟状态。

结论

本次试验终于接近尾声了,通过对家用多功能定时器进行设计与制作,我了解了设计电路的程序,也让我了解了定时器的基本原理和设计理念。本次实验主要内容是完成单片机最小系统的设计与制作,再在其基础上通过编程设计多功能定时控制器。本课程设计最大的难点在于编程的创新,即在已有的基本程序上对程序进行扩充,尽可能多的实现定时的多种功能。由于本课程设计采用的是C语言编写,更是增加了编写难度,只得重新看一些关于Case、Switch等相关的语句、后来发现,其实只要了解了相关语句和想要实现的效果,编程其实并不难,虽然没有什么特别的创新,但第一次系统的进行这方面的训练无疑是为以后的深入打下基础。还有就是一些关于一些问题的处理,如:(1)软件程序的调试应该分模块进行,使每个模块趋于完整,正确,最后将各个模块整合起来进行统调。(2)充分利用电路板上其他空余硬件资源来协助调试程序,即:用指示灯来指示有没有调用键盘扫描子程序,有没有扫描到键值,有没有指示中断,定时器0和定时器有没有工作等。接近两个星期的坚持,累,但却快乐着。。。

我的创新:〔1〕时钟的设置和定时的设置分别采用独立键控制,即:键1和键4。键2、3和键5、6为辅助调节按钮。

〔2〕单独的键7用于显示定时的开启和关闭状态。即:当按下7键,相应的定时开启状态会出现,再按一下,定时关闭状态出现。

〔3〕单独的键8用于显示星期和秒的走动情况。即:当按下八键,数码管此时显示的为星期和秒的走动情况,秒的走动显示与仿真显示一致。

参考文献

[1]张俊谟.单片机中级教程.北京:北京航空航天大学出版社,2006.10 [2]谭浩强.C程序设计教程.北京:清华大学出版社,2007.7

[3]康华光,陈大钦.电子技术基础.北京:高等教育出版社,1999.6

[4]沈卫红.单片机应用系统实例与分析.北京:北京航空航天大学出版社,2002 [5] Tyson Chandler. Protel 99 SE multi-function timer schematic and PCB design 5] Tyson Chandler. Protel 99 SE multi-function timer schematic and PCB design Board .Compilation of microcomputer and interface techniques,2005

附录

系统硬件总电路

图3-1系统硬件总电路

系统程序设计

#include #define uchar unsigned char #define uint unsigned int

/******************定义管脚**********************/ sbit RELAY=P1^0; sbit LED1=P1^1; sbit LED2=P1^2; sbit LED3=P1^3; sbit LED4=P1^4; sbit LED5=P1^5; sbit LED6=P1^6; sbit LED7=P1^7; sbit Line1=P2^1; sbit Line2=P2^0;

/******************定义缓冲区及初始化********************/ uchar data TimeTab[6]={0x06,0x5b,0x4f,0x66};

uchar data Tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar data TimeTab1[4],TimeTab2[4];

/*****************定义参数及初始化********************/ char hour=12,minute=34,second=0,h=0,m=0,h1=0,m1=0;char second1; char flag=0,flag1=0,flag2=0; uchar Keyno=0; uchar num=0,count=0; uchar STATE=0;

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

延时子函数

*************************************************/ void Delay( uint x) //自定义延时约0.1ms { uint t;

while(--x)

for(t=0;t

}

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

/* 刷新缓冲区子程序 */

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

void RefreshTab(void) { if(flag==0)

{TimeTab[0]=Tab[hour/10]; TimeTab[1]=Tab[hour%10]; TimeTab[2]=Tab[minute/10]; if(flag==1) {TimeTab1[0]=Tab[h/10]; TimeTab1[1]=Tab[h%10]; TimeTab1[2]=Tab[m/10]; TimeTab1[3]=Tab[m%10]; } if(flag==2)

{TimeTab2[0]=Tab[h1/10]; TimeTab2[1]=Tab[h1%10]; TimeTab2[2]=Tab[m1/10]; TimeTab2[3]=Tab[m1%10]; } if(flag==4) {TimeTab[0]=0x00; TimeTab[1]=0x00;

TimeTab[2]=Tab[(50-second1)/10]; TimeTab[3]=Tab[(50-second1)%10];}

TimeTab[3]=Tab[minute%10];}

}

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

/* 按键处理子程序 */

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

void Key_Process(void) {

switch(STATE) {

case 0: if(Keyno==1){STATE=1;}

break;

if(Keyno==3){hour--;if(hour==-1)hour=23;} if(Keyno==1){STATE=2;} break;

if(Keyno==3){minute--;if(minute==-1)minute=59;} if(Keyno==1){STATE=3;flag=1;} break;

if(Keyno==3){h--;if(h==-1)h=23;} if(Keyno==1){STATE=4;} break;

if(Keyno==3){m--;if(m==-1)m=59;} if(Keyno==1){STATE=5;flag=0;} break; break;

if(Keyno==3){h1--;if(h1==-1)h1=23;}

case 1: if(Keyno==2){hour++;if(hour==24)hour=0;}

case 2: if(Keyno==2){minute++;if(minute==60)minute=0;}

case 3: if(Keyno==2){h++;if(h==24)h=0;}

case 4: if(Keyno==2){m++;if(m==60)m=0;}

case 5: if(Keyno==1){STATE=6;flag=2;} case 6: if(Keyno==2){h1++;if(h1==24)h1=0;}

}

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

/* 数码管显示子程序 */

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

void SEG_Display(void) { if(flag==0)

P0=TimeTab[num]; if(flag==1) {

P0=TimeTab1[num];}

}

if(Keyno==1){STATE=7;} break;

if(Keyno==3){m1--;if(m1==-1)m1=59;} if(Keyno==1){STATE=8;flag=0;} break;

case 7: if(Keyno==2){m1++;if(m1==60)m1=0;}

case 8: if(Keyno==4){STATE=9;flag=3;}

break;

if(Keyno==1){STATE=0;flag=0;} break; break; break; break;

case 9: if(Keyno==5){STATE=10;second1=20;flag=4;}

case 10:if(Keyno==1){STATE=0;flag=0;} case 11:if(Keyno==1){STATE=0;flag=0;} case 12:if(Keyno==1){STATE=0;flag=0;} default:break;

if(flag==2)

{

P0=TimeTab2[num];}

if(flag==3)

{P0=0x49;}

if(flag==4)

{P0=TimeTab[num];}

}

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

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

void hlhd(void)

{if(second1==50&&STATE==10)

{STATE=11;second1=45;}

if(second1==50&&STATE==11)

{STATE=12;second1=30;}

if(second1==50&&STATE==12)

{STATE=10;second1=20;}

}

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

**/

/* 比较函数 */

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

**/

void compare(void)

{if(h==hour){if(m==minute){STATE=4;if(minute==m+2)STATE=0;}}

if(h1==hour){if(m1==minute){STATE=6;if(minute==m1+2)STATE=0;}}

}

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

**/

/* LED

*/

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

**/

19 红绿灯显示子程序

void LED_Display(void)

{

}

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

**/

/*

*/

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

**/

void main(void)

{

P1=0x00; EA=1; TMOD |=0x01;//定时器0计时50ms in 12M crystal TH0=0x3C; //初值 TL0=0xB0; ET0=1;

20 switch(STATE) { } case 0: LED2=0;LED3=0;LED4=0;LED5=0;LED6=0;LED7=0;break; case 1: LED2=1;LED3=0;LED4=0;LED5=0;LED6=0;LED7=0;break; case 2: LED3=1;LED2=0;LED4=0;LED5=0;LED6=0;LED7=0;break; case 3: LED4=1;LED2=0;LED3=0;LED5=0;LED6=0;LED7=0;break; case 4: LED4=1;LED2=0;LED3=0;LED5=0;LED6=0;LED7=0;break; case 6: LED5=1;LED2=0;LED3=0;LED4=0;LED6=0;LED7=0;break; case 7: LED5=1;LED2=0;LED3=0;LED4=0;LED6=0;LED7=0;break; case 8: LED2=1;LED3=1;LED4=1;LED5=0;LED6=0;LED7=0;break; case 9: LED2=1;LED3=1;LED4=1;LED5=0;LED6=0;LED7=0;break; case 10: LED2=0;LED3=1;LED4=0;LED5=0;LED6=0;LED7=0;break; case 11: LED2=1;LED3=0;LED4=0;LED5=0;LED6=0;LED7=0;break; case 12: LED2=0;LED3=0;LED4=1;LED5=0;LED6=0;LED7=0;break; default: break; 主程序

while(1)

}

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

**/

/* 定时器0中断用于计时 */

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

**/

void Timer0(void) interrupt 1

{TH0=0x3C; //重新赋值50ms溢出

TL0=0xB0;

count++;

if(count==10)

{

count=0;

second++;

if(flag==4)second1++; //秒加1

21 TR0=1; TMOD |=0x10; //定时器1用于动态扫描 TH1=0xFa; //初值 TL1=0xF0; ET1=1; TR1=1; { } RefreshTab(); LED_Display(); compare(); hlhd(); if(!Line1||!Line2){Delay(200);Key_Process();} LED1=~LED1; if (count==20)

if(second==60) { second=0; minute++; //分加1 if(minute==60) { minute=0; hour++; //时加1 if(hour==24) { hour=0; } }

}

}

}

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

**/

/* 定时器1中断扫描显示+键值判断 */

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

**/

void Timer1(void) interrupt 3

{ TH1=0xFa; //定时2ms显示下一个数码管

TL1=0xF0; switch(num) { case 0: P2=0x0f; if(!Line1)Keyno=1; if(!Line2)Keyno=6;

22

} num++; num=0;

23 SEG_Display(); break; if(!Line1)Keyno=4; if(!Line2)Keyno=5; SEG_Display(); break; if(!Line1)Keyno=3; if(!Line2)Keyno=12; SEG_Display(); break; if(!Line1)Keyno=7; if(!Line2)Keyno=8; SEG_Display(); break; if(!Line1)Keyno=2; if(!Line2)Keyno=9; SEG_Display(); break; if(!Line1)Keyno=10; if(!Line2)Keyno=11; SEG_Display(); break; case 1: P2=0x1f; case 2: P2=0x2f; case 3: P2=0x3f; case 4: P2=0x4f; case 5: P2=0x5f; default: break; if(num==6)

}

24

Abstract

Board Multifunction timer with Protel 99 SE to be schematic and PCB design Board, circuit board welding by electric iron.Software Proteus also used 7

Professional,Keil uVsion4, respectively for circuit simulation and program writing.

Key words: board multifunction software proteus

25

致 谢

经过几个月的查资料、整理材料、写作论文,最终顺利的完成了论文的制作,在此期间,感谢龙老师的悉心指导,指引我论文的写作方向和架构,并对本论文初稿进行逐字批阅,指正出其中不当之处,使我有了思考的方向,她的循循善诱的教导和不拘一格的教学品格以及严谨细致、一丝不苟的作风,将是我未来工作、学习中的榜样。龙老师除了指导其他六名同学的论文设计,还有繁重的教学任务,工作强度非常大,但在一次次的修改意见中,精确到每一个字的批改给了我深刻的印象,使我在论文之外明白了做学问所应有的态度。

另外,要感谢在大学期间所有传授我知识的老师,是他们的悉心教导使我有了良好的专业课知识,这也是论文得以完成的基础。

通过此次的论文,我学到了很多知识,跨越了传统方式下的教与学的体制束缚,在论文的写作过程中,通过查资料和搜集有关的文献,培养了自学能力和动手能力。并且由原先的被动的接受知识转换为主动的寻求知识,这可以说是学习方法上的一个很大的突破。在以往的传统的学习模式下,我们可能会记住很多的书本知识,但是通过毕业论文,我们学会了如何将学到的知识转化为自己的东西,学会了怎么更好的处理知识和实践相结合的问题。

总之,此次论文的写作过程,我收获了很多,即为大学四年划上了一个完美的句号,也为将来的人生之路做好了一个很好的铺垫。再次感谢我的大学和所有帮助过我并给我鼓励的老师,同学和朋友,谢谢你们!

26

摘要

本设计要求以单片机为核心主体,完成最小系统板的设计与制作(通过Protel

软件,对电路进行设计,调试。生成PCB板,再对元器件进行排布,焊接。)之

后要进行初调试,证实电路板无误后才能进行下面的内容。电路板完成后,在总

程序基础上通过编程设计家用多路定时控制器。本课程设计目标:具有正常数字

钟功能,包括时间校正,具有至少三路定时开关控制功能,每路定时时间可以任

意设置。但重要的是要有一定的创新,因为此系统还有很多值得开发的功能,单

纯的三路定时只是设计内容的基本要求。

关键词:Protel,单片机,MCS-51

目录

摘要 ........................................................................................................ - 1 -

引言 ........................................................................................................ - 2 -

1 绪论 .................................................................................................... - 2 -

1.1系统背景........................................................................................................... 1

1.1.1单片机技术及其发展特点..................................................................... 1

1.1.2单片机在电子技术中的应用................................................................. 3

1.1.3课程设计的内容与任务......................................................................... 4

2 系统电路设计 ........................................................................................ 5

2.1 系统总体设计框架结构.................................................................................. 5

2.2 系统硬件单元电路设计.................................................................................. 6

2.2.1 时钟电路设计........................................................................................ 6

2.2.2 复位电路设计........................................................................................ 6

2. 2.3 按键电路设计....................................................................................... 7

2.3数码管电路设计............................................................................................... 8

2.3.1、数码管的分类...................................................................................... 8

2.3.2、数码管的驱动方式.............................................................................. 8

2.3 系统硬件总电路............................................................................................ 14

3 系统软件设计 ...................................................................................... 10

3.1 系统软件流程图............................................................................................ 10

4 实验结果和分析 .................................................................................. 11

4.1 实验使用的仪器设备.................................................................................... 11

4.2 测试结果分析................................................................................................ 11

结论 ........................................................................................................... 12

参考文献 ................................................................................................... 13

附录 ........................................................................................................... 13

系统程序设计....................................................................................................... 15

Abstract ..................................................................................................... 25

致 谢 ....................................................................................................... 25

引言

我们在日常生活中,经常碰到一些需要定时的事情,例如:印相或放大照

片,需要定在零点几秒的时间,洗衣机洗涤衣物需要定在几分钟到几十分钟的

时间,电风扇需要定在数十分钟的时间。完成这种定时的定时器有多种多样,

在家用电器中采用机械定时器就是根据一般上弦钟表原理设计的,这种定时器

虽然结构简单,成本低,维修也比较方便,但是它的触头频繁接触和断开,大

大的缩减了它的使用寿命,也不利于进一步全自动化。在电子技术突飞猛进的

今天,电子定时器一定会逐步取而代之,这是不言而喻的。

本文是基于51系列单片机设计的一种用于控制家用电器的设计方案。

1 绪论

1.1系统背景

1.1.1单片机技术及其发展特点

早期的单片机(Single Chip Microcomputer单片微计算机)只是将CPU及

计算机外围功能单元(如I/O口、定时/计时器、UART、RAM、ROM等)集成

在一块芯片上。随着单片机技术的发展以及微处理器(MPU)技术及超大规模集

成电路技术的发展,单片机集成了更多的用于控制目的的功能单元(如高速I/O

口、ADC、PWM、WATCHDOG、 I2CBus - Inter IC Bus、CAN Bus – Controller

Area Network Bus等),从而成为严格意义上的单片微控制器(Single Chip

Microcontroller)。图1-1所示的为MCS—51单片机片内总体结构框图。

单片机系统以单片机为核心部件,可分为单机应用和多机应用。单机应用

是指一个应用系统中只使用一个单片机,这是目前应用最多的方式;多机应用

是单片机在高科技领域应用的主要模式。单片机的高可靠性、高控制功能及高

运行速度的―三高‖特点必然使得未来的高科技工程系统将采用da单片机多机系

统作为主要的发展方向。

图1-2所示的为典型的单片机系统原理框图。

图1-1 MCS—51单片机片内总体结构框图

单片机的生存周期相对于普通CPU而言非常之长,如MCS8051已超

过15年。以某类单片机(如8051/52)为核心,集成不同I/O功能模块的新单

片机系列层出不穷;而某些单片机更是突出了以功能分类的特点(如Microchip

公司的 PIC单片机)。8位、16位、32位单片机共同发展也是当前单片机技术

发展的另一特点。

单片机运算速度越来越快,为提高单片机抗干扰能力和降低噪声,尽量不

采用提高时钟频率单一措施,而是通过调整单片机的内部时序、使用琐相环技

术或内部倍频技术等技术,在不提高时钟频率的条件下,使运算速度提高了很

多。

图1-2 典型单片机系统原理框图

低电压与低功耗是单片机技术的发展的另一个特点。采用最新的集成电路

制造技术,全静态设计使时钟频率从直流到数十兆任选,使功耗不断下降。PIC

单片机、Motorola的某些单片机等在这方面具有很强的优势。

为提高单片机系统的抗电磁干扰能力,使产品能适应恶劣的工作环境,满

足电磁兼容性方面更高标准的要求,各单片机商家尽量采用低噪声与高可靠性

技术,在单片机内部电路中采取了一些新的技术措施,如增加了抗EMI电路、

增强了WATCHDOG的性能等。

为降低单片机产品的成本,广泛采用掩膜(Mask ROM)、一次编程(OTP-One

Time Programmable)和多次编程(MTP-Multi Time Programmable)单片机。过

去成熟的单片机产品一般采用掩膜型单片机,由于掩膜需要一定的生产周期,

而一次编程型单片机价格不断下降,使得近年来直接使用一次编程完成最终产

品制造更为流行。近年来,一次编程型单片机需量大幅度上扬,为适应这种需

求许多单片机都采用了在片编程技术(In System Programming)。未编程的一次

编程芯片先焊在印刷板上,然后再其进行编程,解决了批量写一次编程芯片时

容易出现的芯片与写入器接触不好的问题。编程线与I/O线共用,不增加单片

机的额外引脚。而多次编程向一次编程提出了挑战,一些单片机厂商采用

FLASH存储器作为程序存储器(如ATMEL 公司的单片机),可多次编程。

1.1.2单片机在电子技术中的应用

单片机的应用领域

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片

机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数

据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,

民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及

程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机

器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批

计算机应用与智能化控制的科学家、工程师。

单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备

的智能化管理及过程控制等领域,大致可分如下几个范畴:

1.在智能仪器仪表上的应用

单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便

等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、

功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压

力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,

且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示

波器,各种分析仪)。

2.在工业控制中的应用

用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线

的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制

系统等。

3.在家用电器中的应用

可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗

衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花

八门,无所不在。

4.在计算机网络和通信领域中的应用

现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,

为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备

基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自

动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群

移动通信,无线电对讲机等。

1.1.3课程设计的内容与任务

本课程设计是基于ATMEL公司生产的AT89CS51单片机为主而设计的,

本课程设计主要内容和任务是完成单片机最小系统板设计与制作,在此基础上

通过编程设计家用多路定时控制器。使其具有正常数字钟功能,包括时间校正,

具有至少三路定时开关控制功能,每路定时时间可以任意设置。当然,该定时

器依然可以通过编程设计出多种功能,例如:电子日历,交通指示灯等等。

2 系统电路设计

复位电路:通过复位电路使所有的状态都恢复原始状态。

时钟电路:通过该电路产生单片机工作所需要的时钟信号。

按键电路:通过该电路改变单片机控制的功能。

单片机 :控制整个电路。

数码管 : 显示时间或者其它。

2.2 系统硬件单元电路设计

2.2.1 时钟电路设计

图2-2 时钟电路设计

该时钟电路是由晶体振荡器和两个微调电容组成的。在单片机芯片内部有一

个高增益反相放大器,其输入端为引脚XTAL1,其输出端为引脚XTAL2。只需

要在片外通过XTAL1和XTAL2引脚跨接晶体振荡器或在引脚与地之间加接微

调电容,形成反馈电路,振荡器即可工作。由于该晶振使用的是12MHZ的晶体,

因此它的时钟周期是0.167us,机器周期为1us。

2.2.2 复位电路设计

图2-3 复位电路设计

2. 2.3 按键电路设计

RST键:复位键,按下后灯管均亮。

1 键:其功能是当该键按下时,进入时间调整功能。

2 键:其功能是对被调整位加一。

3 键:其功能是对被调整位减一。

4 键:其功能是对定时进行设置。

5 键:其功能是对被定时位加一。

6 键:其功能是对被定时位减一。

7 键:其功能是切换定时状态和时钟状态。

8 键:其功能是切换星期、秒和时钟状态。

图2-4按键电路设计

2.3数码管电路设计

数码管是一种半导体发光器件,其基本单元是发光二极管。

2.3.1、数码管的分类

数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个―8‖可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。

2.3.2、数码管的驱动方式

数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字。

动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM

端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

3 系统软件设计

3.1 系统软件流程图

说明:程序开始执行,启动定时器0和定时器1,然后执行while语句,但条件一直成立,因此while语句中的子函数一直在执行。If语句也一直在判断有没有shift键有没有按下,是否进入了调时调分的阶段,一段进入,通过键盘扫描和键值判断,使得按键处理子程序进入新的状态,从而数码管显示新的内容。

4 实验结果和分析

4.1 实验使用的仪器设备

本实验主要用到了电源,电脑,烧程器,电烙铁,元器件若干。

4.2 测试结果分析

通过按shift键来改变电路状态 第一次按下shift键,进入调时状态。 第二次按下shift键,进入调分状态。

第三次按下shift键,进入第一路定时的调时状态。 第四次按下shift键,进入第一路定时的调分状态。 第五次按下shift键,回归时钟状态。

第六次按下shift键,进入第二路定时的调时状态。 第七次按下shift键,进入第二路定时的调分状态。 第八次按下shift键,回归时钟状态。 然后按下1键,进入交通灯提示状态。 按下2键,正式进入交通灯状态。 按下shift键,回归原始时钟状态。

结论

本次试验终于接近尾声了,通过对家用多功能定时器进行设计与制作,我了解了设计电路的程序,也让我了解了定时器的基本原理和设计理念。本次实验主要内容是完成单片机最小系统的设计与制作,再在其基础上通过编程设计多功能定时控制器。本课程设计最大的难点在于编程的创新,即在已有的基本程序上对程序进行扩充,尽可能多的实现定时的多种功能。由于本课程设计采用的是C语言编写,更是增加了编写难度,只得重新看一些关于Case、Switch等相关的语句、后来发现,其实只要了解了相关语句和想要实现的效果,编程其实并不难,虽然没有什么特别的创新,但第一次系统的进行这方面的训练无疑是为以后的深入打下基础。还有就是一些关于一些问题的处理,如:(1)软件程序的调试应该分模块进行,使每个模块趋于完整,正确,最后将各个模块整合起来进行统调。(2)充分利用电路板上其他空余硬件资源来协助调试程序,即:用指示灯来指示有没有调用键盘扫描子程序,有没有扫描到键值,有没有指示中断,定时器0和定时器有没有工作等。接近两个星期的坚持,累,但却快乐着。。。

我的创新:〔1〕时钟的设置和定时的设置分别采用独立键控制,即:键1和键4。键2、3和键5、6为辅助调节按钮。

〔2〕单独的键7用于显示定时的开启和关闭状态。即:当按下7键,相应的定时开启状态会出现,再按一下,定时关闭状态出现。

〔3〕单独的键8用于显示星期和秒的走动情况。即:当按下八键,数码管此时显示的为星期和秒的走动情况,秒的走动显示与仿真显示一致。

参考文献

[1]张俊谟.单片机中级教程.北京:北京航空航天大学出版社,2006.10 [2]谭浩强.C程序设计教程.北京:清华大学出版社,2007.7

[3]康华光,陈大钦.电子技术基础.北京:高等教育出版社,1999.6

[4]沈卫红.单片机应用系统实例与分析.北京:北京航空航天大学出版社,2002 [5] Tyson Chandler. Protel 99 SE multi-function timer schematic and PCB design 5] Tyson Chandler. Protel 99 SE multi-function timer schematic and PCB design Board .Compilation of microcomputer and interface techniques,2005

附录

系统硬件总电路

图3-1系统硬件总电路

系统程序设计

#include #define uchar unsigned char #define uint unsigned int

/******************定义管脚**********************/ sbit RELAY=P1^0; sbit LED1=P1^1; sbit LED2=P1^2; sbit LED3=P1^3; sbit LED4=P1^4; sbit LED5=P1^5; sbit LED6=P1^6; sbit LED7=P1^7; sbit Line1=P2^1; sbit Line2=P2^0;

/******************定义缓冲区及初始化********************/ uchar data TimeTab[6]={0x06,0x5b,0x4f,0x66};

uchar data Tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar data TimeTab1[4],TimeTab2[4];

/*****************定义参数及初始化********************/ char hour=12,minute=34,second=0,h=0,m=0,h1=0,m1=0;char second1; char flag=0,flag1=0,flag2=0; uchar Keyno=0; uchar num=0,count=0; uchar STATE=0;

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

延时子函数

*************************************************/ void Delay( uint x) //自定义延时约0.1ms { uint t;

while(--x)

for(t=0;t

}

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

/* 刷新缓冲区子程序 */

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

void RefreshTab(void) { if(flag==0)

{TimeTab[0]=Tab[hour/10]; TimeTab[1]=Tab[hour%10]; TimeTab[2]=Tab[minute/10]; if(flag==1) {TimeTab1[0]=Tab[h/10]; TimeTab1[1]=Tab[h%10]; TimeTab1[2]=Tab[m/10]; TimeTab1[3]=Tab[m%10]; } if(flag==2)

{TimeTab2[0]=Tab[h1/10]; TimeTab2[1]=Tab[h1%10]; TimeTab2[2]=Tab[m1/10]; TimeTab2[3]=Tab[m1%10]; } if(flag==4) {TimeTab[0]=0x00; TimeTab[1]=0x00;

TimeTab[2]=Tab[(50-second1)/10]; TimeTab[3]=Tab[(50-second1)%10];}

TimeTab[3]=Tab[minute%10];}

}

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

/* 按键处理子程序 */

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

void Key_Process(void) {

switch(STATE) {

case 0: if(Keyno==1){STATE=1;}

break;

if(Keyno==3){hour--;if(hour==-1)hour=23;} if(Keyno==1){STATE=2;} break;

if(Keyno==3){minute--;if(minute==-1)minute=59;} if(Keyno==1){STATE=3;flag=1;} break;

if(Keyno==3){h--;if(h==-1)h=23;} if(Keyno==1){STATE=4;} break;

if(Keyno==3){m--;if(m==-1)m=59;} if(Keyno==1){STATE=5;flag=0;} break; break;

if(Keyno==3){h1--;if(h1==-1)h1=23;}

case 1: if(Keyno==2){hour++;if(hour==24)hour=0;}

case 2: if(Keyno==2){minute++;if(minute==60)minute=0;}

case 3: if(Keyno==2){h++;if(h==24)h=0;}

case 4: if(Keyno==2){m++;if(m==60)m=0;}

case 5: if(Keyno==1){STATE=6;flag=2;} case 6: if(Keyno==2){h1++;if(h1==24)h1=0;}

}

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

/* 数码管显示子程序 */

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

void SEG_Display(void) { if(flag==0)

P0=TimeTab[num]; if(flag==1) {

P0=TimeTab1[num];}

}

if(Keyno==1){STATE=7;} break;

if(Keyno==3){m1--;if(m1==-1)m1=59;} if(Keyno==1){STATE=8;flag=0;} break;

case 7: if(Keyno==2){m1++;if(m1==60)m1=0;}

case 8: if(Keyno==4){STATE=9;flag=3;}

break;

if(Keyno==1){STATE=0;flag=0;} break; break; break; break;

case 9: if(Keyno==5){STATE=10;second1=20;flag=4;}

case 10:if(Keyno==1){STATE=0;flag=0;} case 11:if(Keyno==1){STATE=0;flag=0;} case 12:if(Keyno==1){STATE=0;flag=0;} default:break;

if(flag==2)

{

P0=TimeTab2[num];}

if(flag==3)

{P0=0x49;}

if(flag==4)

{P0=TimeTab[num];}

}

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

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

void hlhd(void)

{if(second1==50&&STATE==10)

{STATE=11;second1=45;}

if(second1==50&&STATE==11)

{STATE=12;second1=30;}

if(second1==50&&STATE==12)

{STATE=10;second1=20;}

}

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

**/

/* 比较函数 */

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

**/

void compare(void)

{if(h==hour){if(m==minute){STATE=4;if(minute==m+2)STATE=0;}}

if(h1==hour){if(m1==minute){STATE=6;if(minute==m1+2)STATE=0;}}

}

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

**/

/* LED

*/

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

**/

19 红绿灯显示子程序

void LED_Display(void)

{

}

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

**/

/*

*/

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

**/

void main(void)

{

P1=0x00; EA=1; TMOD |=0x01;//定时器0计时50ms in 12M crystal TH0=0x3C; //初值 TL0=0xB0; ET0=1;

20 switch(STATE) { } case 0: LED2=0;LED3=0;LED4=0;LED5=0;LED6=0;LED7=0;break; case 1: LED2=1;LED3=0;LED4=0;LED5=0;LED6=0;LED7=0;break; case 2: LED3=1;LED2=0;LED4=0;LED5=0;LED6=0;LED7=0;break; case 3: LED4=1;LED2=0;LED3=0;LED5=0;LED6=0;LED7=0;break; case 4: LED4=1;LED2=0;LED3=0;LED5=0;LED6=0;LED7=0;break; case 6: LED5=1;LED2=0;LED3=0;LED4=0;LED6=0;LED7=0;break; case 7: LED5=1;LED2=0;LED3=0;LED4=0;LED6=0;LED7=0;break; case 8: LED2=1;LED3=1;LED4=1;LED5=0;LED6=0;LED7=0;break; case 9: LED2=1;LED3=1;LED4=1;LED5=0;LED6=0;LED7=0;break; case 10: LED2=0;LED3=1;LED4=0;LED5=0;LED6=0;LED7=0;break; case 11: LED2=1;LED3=0;LED4=0;LED5=0;LED6=0;LED7=0;break; case 12: LED2=0;LED3=0;LED4=1;LED5=0;LED6=0;LED7=0;break; default: break; 主程序

while(1)

}

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

**/

/* 定时器0中断用于计时 */

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

**/

void Timer0(void) interrupt 1

{TH0=0x3C; //重新赋值50ms溢出

TL0=0xB0;

count++;

if(count==10)

{

count=0;

second++;

if(flag==4)second1++; //秒加1

21 TR0=1; TMOD |=0x10; //定时器1用于动态扫描 TH1=0xFa; //初值 TL1=0xF0; ET1=1; TR1=1; { } RefreshTab(); LED_Display(); compare(); hlhd(); if(!Line1||!Line2){Delay(200);Key_Process();} LED1=~LED1; if (count==20)

if(second==60) { second=0; minute++; //分加1 if(minute==60) { minute=0; hour++; //时加1 if(hour==24) { hour=0; } }

}

}

}

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

**/

/* 定时器1中断扫描显示+键值判断 */

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

**/

void Timer1(void) interrupt 3

{ TH1=0xFa; //定时2ms显示下一个数码管

TL1=0xF0; switch(num) { case 0: P2=0x0f; if(!Line1)Keyno=1; if(!Line2)Keyno=6;

22

} num++; num=0;

23 SEG_Display(); break; if(!Line1)Keyno=4; if(!Line2)Keyno=5; SEG_Display(); break; if(!Line1)Keyno=3; if(!Line2)Keyno=12; SEG_Display(); break; if(!Line1)Keyno=7; if(!Line2)Keyno=8; SEG_Display(); break; if(!Line1)Keyno=2; if(!Line2)Keyno=9; SEG_Display(); break; if(!Line1)Keyno=10; if(!Line2)Keyno=11; SEG_Display(); break; case 1: P2=0x1f; case 2: P2=0x2f; case 3: P2=0x3f; case 4: P2=0x4f; case 5: P2=0x5f; default: break; if(num==6)

}

24

Abstract

Board Multifunction timer with Protel 99 SE to be schematic and PCB design Board, circuit board welding by electric iron.Software Proteus also used 7

Professional,Keil uVsion4, respectively for circuit simulation and program writing.

Key words: board multifunction software proteus

25

致 谢

经过几个月的查资料、整理材料、写作论文,最终顺利的完成了论文的制作,在此期间,感谢龙老师的悉心指导,指引我论文的写作方向和架构,并对本论文初稿进行逐字批阅,指正出其中不当之处,使我有了思考的方向,她的循循善诱的教导和不拘一格的教学品格以及严谨细致、一丝不苟的作风,将是我未来工作、学习中的榜样。龙老师除了指导其他六名同学的论文设计,还有繁重的教学任务,工作强度非常大,但在一次次的修改意见中,精确到每一个字的批改给了我深刻的印象,使我在论文之外明白了做学问所应有的态度。

另外,要感谢在大学期间所有传授我知识的老师,是他们的悉心教导使我有了良好的专业课知识,这也是论文得以完成的基础。

通过此次的论文,我学到了很多知识,跨越了传统方式下的教与学的体制束缚,在论文的写作过程中,通过查资料和搜集有关的文献,培养了自学能力和动手能力。并且由原先的被动的接受知识转换为主动的寻求知识,这可以说是学习方法上的一个很大的突破。在以往的传统的学习模式下,我们可能会记住很多的书本知识,但是通过毕业论文,我们学会了如何将学到的知识转化为自己的东西,学会了怎么更好的处理知识和实践相结合的问题。

总之,此次论文的写作过程,我收获了很多,即为大学四年划上了一个完美的句号,也为将来的人生之路做好了一个很好的铺垫。再次感谢我的大学和所有帮助过我并给我鼓励的老师,同学和朋友,谢谢你们!

26


相关内容

  • 单片机毕业设计题目
  • 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数字气压计的设计与实现 8. 基于MSC1211的温度智能温度传感器 9. 机器视觉系统 ...

  • 自动化毕业设计论文题目
  • 自 动 化 毕 业 设 计 论 文 题 目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数字气压计的设计与实现 8. 基于MSC12 ...

  • 通信工程毕业设计题目精选
  • 不管怎样,生活还是要继续向前走去.有的时候伤害和失败不见得是一件坏事,它会让你变得更好,孤单和失落亦是如此.每件事到最后一定会变成一件好事,只要你能够走到最后. 通信工程毕业设计题目精选 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激 ...

  • 电气自动化设计论文题目大全
  • 机电一体化 毕 业 设 计 论 文 题 目 第1-100个电气自动化毕业设计论文题目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数 ...

  • 电气自动化毕业设计论文题目
  • 电 气 自 动 化 毕 业 设 计 论 文 题 目 第1-100个电气自动化毕业设计论文题目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机 ...

  • PLC毕业设计论文题目
  • P L C 第1-100个PLC毕业设计论文题目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数字气压计的设计与实现 8. 基于MS ...

  • 基于单片机的时钟设计
  • 基于单片机的时钟设计 摘要:20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快.单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时.分 ...

  • 实验报告基于AT89C51的液晶显示频率计的设计
  • 本科学生单片机课程设计报告 题姓学院 目名 号(系) 基于单片机的频率计设计 201218033工程与设计学院应用电子技术教育2012级杨 进 宝 专业.年级指导教师 课程设计成绩评定表 项目 评分依据 电路板焊接工艺功能完整 设计作品 性能指标程序运行可靠 人机交互友好,操作方便内容完整 设计报告 ...

  • [单片机原理及应用]课程设计
  • <微机控制技术及应用> 课程设计 题 目∶ 院 系∶ 8051单片机系统扩展 专业班级∶ 姓 名∶ 学 号∶ 指导教师∶ 成 绩∶ 目录 引言 -----------------------------------(2) 一.设计目的和要求------------------------ ...

  • 基于STM32的可遥控智能跟随小车设计
  • 基于STM32的可遥控智能跟随小车设计 刘 磊 孙晓菲 张 煜 )(西南交通大学电气工程学院 成都 611756 摘 要:针对物品搬运时人类双手仍无法完全解放的现状,设计并实现了一种基于S超声波测距以及比例控TM32.制算法的可遥控智能跟随小车.小车以S有智能跟随和红外遥控2个模式可选.跟随模式下用 ...