单片机课程设计 简易报警系统设计(定稿)

时间:2019-05-14 21:32:04下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《单片机课程设计 简易报警系统设计(定稿)》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《单片机课程设计 简易报警系统设计(定稿)》。

第一篇:单片机课程设计 简易报警系统设计(定稿)

课程设计(论文)

题 目 名 称

简易防盗系统设计

课 程 名 称

单片机原理及应用课程设计

学 生 姓 名

系、专

信息工程系、信息工程类

指 导 教 师

2013年 6 月 28 日

目录

1概 要﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ 3

2设计指标与要求﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ 3 3设计方案与论证﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ 3 4电路设计原理与流程图﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌5采用的主要元器件﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌6编程实现﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌7仿真结果与分析﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌8总结与致谢﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

9参考文献﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

概 要

传感技术是21世纪人们在高新技术发展方面争夺的一个制高点,各个发达国家都将传感技术视为高新技术发展的关键。从20世纪80年代起,基于传感技术的光电防盗系统也得到了高速的发展,最早的非可见光侵物探测器,有发射机 将一个编码信号送到一个 IR LED中。此LED的输出聚成一束很窄的光束,并使其对准远距离仿制的接收机中的一只匹配的IR光敏探测器。此系统是以针尖视线的原理来工作的,它可以被任何一个进入到发射机与接收机透视镜之间瞄准直线上的大于针尖的物体所触发。随后又出现了给予被动是红外传感技术的被动式红外入侵报警器,它能可靠地将运动着的物体和飘落着的物体加以区别,同时它还具有强大的监控范围,隐蔽性好,抗干扰能力强,和误报率低等特点。

本设计采用光电传感器检测入侵者,其基本原理为:传感器感应到入侵者,将其转换成超低频信号,经电路放大,输出。同时由接受装置根据接受到的信号得到高低电平,输出。经判断,再将报警信号通过电路输入到单片机的接口上,由单片机决定是否对报警信号进行触发。

2设计指标与要求

采用光电式传感器检测入侵者,用蜂鸣器作为报警器的输出,报警距离≥10M;

3设计方案与论证

系统主控部分采用AT89C51芯片,当光电感应器感受到外部有入侵物时,发出信号,单片机接收到信号时,采用延时抖动,再次检测是否还有报警信号,如果有报警信号,启动报警器,红灯全部亮,报警结束后,红灯灭,绿灯亮,如果误报警,可以采用外部中断0使人工停止报警,如果光电感应器没能检测到入侵物,可以采用外部中断1人工报警,人工报警时流水灯亮,蜂鸣器响!

因为如果用光电感应器来检测入侵者,在仿真里无法看到现象,故采用开关来模拟光电感应器。

4电路设计的原理与流程图

(1)电路设计的原理

首先给单片机的P1.0安装一个开关,用来模拟光电感应器。然后给单片机的P3.1脚通过三级管接一个蜂鸣器,用于当有报警信号时用来报警。再给P3.0接4个LED灯,用于报警时显示报警灯作用。再给P3.2接一个按键,用于当光电感应误报警时,可以人工中断报警。给P3.3接一个按键,用于当光电感应没有报警时,按下可以人工报警。

(2)流程图

开始压入堆栈程序初始化P1.2=1P3.0=1P3.1=0P2=00HP1.2清零NP1.0=0?P1.2清零出栈N返回P1.0=0?P1.2=1P3.0取反P3.1取反20H=50TR0=1NTF0=1?Y压入堆栈P1.2=1R7=5P2=0FFH调用延时子程序NP2=00H调用延时子程序P3.1清零P1=0FFH调用延时子程序调用延时子程序YR7-1=0?YP3.1=1调用延时子程序30H=50TR0=1NTF0=1?YTF0清零TF0=0重装系统NN重装系统30H-1=0?P3.1=0P1.2=0出栈P2=00H返回结束YN20H-1=0?YP3.0=1P3.1=0P1.2=0

5采用的主要元器件

主要元器件:AT89C51,NPN,RES,CAP,CAP-ELEC,BUTTON,BUZZER, CRYSTAL 6编程实现

ORG 0000H LJMP MAIN ORG 0003H LJMP ZT0 ORG 0013H LJMP ZT1 ORG 0100H MAIN:MOV TMOD,#01 MOV TH0,#3CH MOV TL0,#0B0H SETB EA SETB EX0 SETB IT0 SETB EX1 SETB PX0 SETB IT1 MOV SP,#60 CLR P3.1 MOV P1,#0FFH MOV P2,#00H CLR P1.2 LP:JNB P1.0,LA LJMP LP LA:LCALL DS01 JNB P1.0,ALARM LJMP LP DS01:MOV R1,#0FFH D1:MOV R2,#0FFH D2:NOP DJNZ R2,D2 DJNZ R1,D1 RET ALARM:SETB P1.2 CPL P3.0 CPL P3.1 MOV 20H,#50 SETB TR0 L2:JBC TF0,L1 LJMP L2 L1:CLR TF0 MOV TL0,#0B0H MOV TH0,#3CH DJNZ 20H,L2 SETB P3.0 CLR P3.1 CLR P1.2 LJMP LP ZT0:PUSH ACC SETB P1.2 SETB P3.0 CLR P3.1 LCALL DS01 CLR P1.2 POP ACC RETI ZT1:PUSH ACC SETB P1.2 MOV R7,#05 DQ:MOV P2,#0FFH LCALL DS01 MOV P2,#00H LCALL DS01 DJNZ R7,DQ SETB P3.1 LCALL DS01 MOV 30H,#50 SETB TR0 L4:JBC TF0,L3 SJMP L4 L3:CLR TF0 MOV TH0,#3CH MOV TL0,#0B0H DJNZ 30H,L4 CLR P3.1 CLR P1.2 POP ACC MOV P2,#00H RETI END

7仿真结果与分析

在系统正常的情况下,系统不断检测是否有警报信号,当检测有警报信号时,系统转入报警,从而蜂鸣器响。8 总结

总结

课程设计是我们理论联系实际的最好的途径之一,让我们有机会把课本上学到的知识运用到实际生活中。目前单片机在工业检测领域中得到了广泛的应用,在我们平常的生活中也是随处可见,包括我们日常生活中随处可见的交通灯、闹钟等都含有单片机作为一个主要的部件,懂得并熟悉掌握单片机的运用技术常有用的。通过这次课程设计使对单片机语言的理解和掌握上有了很大的进步,以前所了解的单片机语言仅限于一些片面的知识,通过这次编程,将这些零零碎碎的知识汇集起来,编写出了一个完整的系统,并且对单片机语言的应用能力有了极大的提高。在这次课程设计的过程中,我深深体会到团队合作的精神是极其重要的。因为身在一个团队,有了困难大家一起解决,减少了压力,同时拓展了思维,交换了意见,一个人的思想当被接受和了解时,我们有了更多的思想关于一个问 题,我想这些都是作为一个团队的好处。经过此次课程设计,我们经历了喜,怒,哀,乐。同时我们也对明年的毕业设计有了一定的想法和实现自己想法的决心.9参考文献

[1] 李泉溪.单片机原理与应用实例仿真[M].北京:北京航空航天大学出版社,2009.[2] 江世明.基于Proteus的单片机应用技术[M].北京:电子工业出版社,2009.[3] 周润景,张丽娜.基于Proteus的电路及单片机系统设计与仿真[M].北京:北京航空航天大学出版社,2006.[4] 张友德.单片微型计算机原理、应用与实验[M].上海:复旦大学出版社,2003.

第二篇:单片机课程设计-简易数字钟的设计

单片机课程设计报告

课程设计题目:简易数字时钟

学生姓名:** 学号:********** 学院:****** 专业班级:**********

指导老师:**

2014年5月13日

摘要:

本设计采用了STC公司生产的STC89C52RC型单片机(80C51内核)设计了一个单片机最小系统,加上maxim232和usb转RS232线组成的下载电路,以及共阴极4位一体数码管和按键等外围电路构成了一个简易的数字钟,具有显示年、月、日、时、分、秒的功能,且年、月、日、时、分、秒每一个参数都可以自行设置,以实现时间的校正,总体来说实现了一个数字时钟的应有功能。

关键词:80C51系列单片机、单片机最小系统、时钟定时、下载电路、4位一体数码管显示

一、设计任务 简易数字时钟:自制一个单片机最小系统,包括串口下载、复位电路,采用内部定时器计时,或者采用外部时钟芯片DS1302,设计一个具有秒、分、日、月、年的数字时钟,采用四位一体数码管显示相关信息,秒、分显示一页,日、月显示一页,年显示一页。

二、方案选择

2.1、采用uln2003驱动数码管

由于单片机的I/O口的拉电流只有大约1mA左右,不足以提供4-5mA的电流以驱动数码管上的led,故需要为数码管提供一个驱动电路,如果采用三极管的话由于数码管有7段(实际是8段,但本设计只需要使用7段),需要7个三极管来驱动,给焊接部分增加了工作量,故可考虑采用ULN2003以给数码管提供驱动电流。

Uln2003的内部原理图

ULN2003 是高耐压、大电流复合晶体管阵列,由七个硅NPN 复合晶体管组成。

该电路的特点如下:[3]

ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路

直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。

ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还

可以在高负载电流并行运行。

ULN2003 采用DIP—16 或SOP—16 塑料封装。

内部还集成了一个消线圈反电动势的二极管,可用来驱动继电器。它是双列16脚封装,NPN晶体管矩阵,最大驱动电压=50V,电流=500mA,输入电压=5V,适用于TTL COMS,由达林顿管组成驱动电路。ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,它的输出端允许通过电流为200mA,饱和压降VCE 约1V左右,耐压BVCEO 约为36V。用户输出口的外接负载可根据以上参数估算。采用集电极开路输出,输出电流大,故可直接驱动继电器或固体继电器,也可直接驱动低压灯泡。通常单片机驱动ULN2003时,上拉2K的电阻较为合适,同时,COM引脚应该悬空或接电源。

ULN2003是一个非门电路,包含7个单元,单独每个单元驱动电流最大可达350mA,9脚可以悬空。

比如1脚输入,16脚输出,你的负载接在VCC与16脚之间,不用9脚。

ULN2003是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中。可直接驱动继电器等负载。

输入5VTTL电平,输出可达500mA/5V。

ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。该电路的特点如下: ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路 直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。

ULN2003 是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。

2.2、直接用单片机加上拉电阻的P0口驱动数码管

对于51单片机的4个IO口来说有一个IO口与其他三个有点不同,那就是P0口,由于P0口(在作为输出IO口时)是OC门在最小系统中需要加一个上拉电阻,由此,可以用P0口作为数码管的驱动(可以通过合理配置上拉电阻的大小以提供足够的驱动电流)

51单片机的P0口内部电路图

由于相对来说接一个排阻便宜可靠,且方便,且也足以提供驱动数码管的电流,故采用方案2:直接用单片机加上拉电阻的I/O口驱动数码管

三、电路原理图

简易数字钟原理图

3.1最小系统

本设计最小系统与一般的51最小系统设计保持一致性,晶振电路为12M的晶体振荡器搭配两个30pF的电容组成,复位电路由5v接一个开关与电容并联再与电阻串联后接地构成,下载电路采用的是串口下载,为电脑上连一根usb转串口线,然后串口练到电路上,再通过max232芯片进行电平转换将RS232串口的电平转换为单片机的5v以进行电平匹配。3.2共阴极4位一体数码管

四位一体数码管

数码管的显示由段选和位选控制,段选为图片中的每一位“8”型上的a、b、c、d、e、f、g、h共8段构成。位选有4个引脚,分别对应于数码管的4个位。

四、程序代码 如下:

#include sbit anjian1 = P1^0;sbit anjian2 = P1^1;sbit anjian3 = P1^2;sbit anjian4 = P1^3;int anjian11;int anjian22;int anjian33;int anjian44;int sec=55;//秒,分,时,日,月,年定义全局变量并装载初始值 int min=37;int hour=8;int day=30;int mon=12;int year=2014;int j=0;//j为秒计时变量,T0每计时50ms时j自增1,当j=20时立刻置0,且sec自增1 int play=1;//play为显示变量,当为“1”时显示“时,分”,为“2”时显示“月,日”,为“3”时显示“年”,为“0”时显示“秒” int led[4]={0,0,0,0};unsigned char code table[] ={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x76};void delay(void)

//延时10ms {

unsigned char a,b,c;

for(c=1;c>0;c--)

for(b=38;b>0;b--)

for(a=130;a>0;a--);} void main(){ IE=0x8F;//开总中断,开定时T0,开定时T1,开外部中断0,开外部中断1 IP=0x00;//设置中断优先级均为低优先级,默认优先级为:调整时间》定时》设置显示页 IT0=1;IT1=1;TMOD=0x11;//定时器0工作于工作方式1,定时工作方式,由运行控制位TR1启动定时器;定时器1工作于工作方式1,定时工作方式,由运行控制位TR1启动定时器 P2=0Xfd;

TH0 = 0x3C;

TL0 = 0xB0;

{ switch(play){ case 1 :

{

if(anjian1==0)

{

{ delay();delay();if(anjian1==0)anjian11=anjian1;if(anjian1 &!anjian11)hour++;

} TH1=0xD8;TL1=0xF0;TR0=1;TR1=1;

//定时器T0用于20分之一秒的定时,定时器T1用于数码管的动态显示,外部中断0为调整时间,外部中断1为设置显示页

for(;;)else if(anjian2==0)

if(anjian2==0)

anjian22=anjian2;

if(anjian2 &!anjian22)

hour--;

else if(anjian3==0)

{

delay();

if(anjian3==0)

anjian33=anjian3;

if(anjian3 &!anjian33)

min++;

else if(anjian4==0)

{

delay();

if(anjian4==0)

anjian44=anjian4;

if(anjian4 &!anjian44)

min--;

}

break;case 2 : {

if(anjian1==0)

{

delay();

if(anjian1==0)

anjian11=anjian1;

if(anjian1 &!anjian11)

mon++;

else if(anjian2==0)

{

delay();

if(anjian2==0)

anjian22=anjian2;

if(anjian2 &!anjian22)

mon--;

else if(anjian3==0)

{

delay();if(anjian3==0)}

}

}

}

}

anjian33=anjian3;

if(anjian3 &!anjian33)

day++;

else if(anjian4==0)

{

delay();

if(anjian4==0)

anjian44=anjian4;

if(anjian4 &!anjian44)

day--;

}

break;case 3 : {

if(anjian1==0)

{

delay();

if(anjian1==0)

anjian11=anjian1;

if(anjian1 &!anjian11)

year++;

else if(anjian2==0)

{

delay();

if(anjian2==0)

anjian22=anjian2;

if(anjian2 &!anjian22)

year--;

else if(anjian3==0)

{

delay();

if(anjian3==0)

anjian33=anjian3;

if(anjian3 &!anjian33)

year++;

else if(anjian4==0)

{

delay();

if(anjian4==0)anjian44=anjian4;}

}

}

}

}

if(anjian4 &!anjian44)

year--;

}

break;case 0 : {

if(anjian1==0)

{

delay();

if(anjian1==0)

anjian11=anjian1;

if(anjian1 &!anjian11)

sec++;

else if(anjian2==0)

{

delay();

if(anjian2==0)

anjian22=anjian2;

if(anjian2 &!anjian22)

sec--;

else if(anjian3==0)

{

delay();

if(anjian3==0)

anjian33=anjian3;

if(anjian3 &!anjian33)

sec++;

else if(anjian4==0)

{

delay();

if(anjian4==0)

anjian44=anjian4;

if(anjian4 &!anjian44)

sec--;

} break;}

switch(play){

}

}

}

}

} case 1 : { led[0]=hour/10;

};}}

void service_int1()interrupt 2 using 1 { if(play==3)play=0;else play++;} void service_t0()interrupt 1 using 1

//实现1s的延时以及sec到min,min到hour,hour到day,day到month,month到year,year到next_year的转换 {

TH0 = 0x3C;if(j==20){

j=0;sec++;if(sec>=60)

TL0 = 0xB0;

led[1]=hour%10;led[2]=min/10;led[3]=min%10;

} break;

led[1]=mon%10;led[2]=day/10;led[3]=day%10;

} case 2 : { led[0]=mon/10;break;

led[0]=year/1000;led[1]=((year%1000)/100);led[2]=((year%100)/10);led[3]=(year%10);

} case 3 : {

break;

led[1]=16;led[2]=sec/10;led[3]=sec%10;

} case 0 : { led[0]=16;break;

}

else { { sec=0;min++;if(min>=60){ min=0;hour++;if(hour>=24){hour=0;day++;if(day>=31){ day=1;mon++;if(mon>=13){ mon=1;year++;} } } } } } j++;} void service_t1()interrupt 3 using 1 //定时器1实现了数码管的动态显示 {

TH1=0xFC;TL1=0x18;if(P2==0xfd){P2=0xfb;P0=table[led[2]];} else if(P2==0xfb){ P2=0xf7;P0=table[led[3]];} else if(P2==0xf7){P2=0xfe;P0=table[led[0]];

} else if(P2==0xfe){P2=0xfd;P0=table[led[1]];} }

五、制作实物图

六、心得收获

经过本次课程设计,我将课本上的知识转化为了实际的实物,更加深入的理解了单片机这,加强了自己的编程能力,与软硬件调试能力,总体来说,还是收获很大的。

第三篇:单片机课程设计_简易频率计数器..

单 片 机 课 程 设 计

简易频率计数器

1.实验目的

1.要求学生具有制作调试单片机最小系统及外设的能力,能够掌握单片机内部资源的使用。

2.熟练掌握焊接技术的基础上,能熟练使用单片机软件开发环境Keil C51编程调试,并使用STC ISP调试工具采用串口下载方式联调制作的单片机最小系统。

二、实验要求

自制一个单片机最小系统,包括串口下载、复位电路,采用外部计数器T0或T1作为外部频率输入,外部频率由信号源提供,计算出来的频率显示在四位一体的数码管上。

三、实验器材

89C54RD芯片(与89c51芯片管脚和指令共用,只是内部存储单元有差异)一个,晶振一个,电容3个,电阻3个,12个10千欧姆电阻,4位一体共阴数码显示管一个,按钮1个,导线若干。

四、实验原理 1.芯片介绍

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

1.主要特性: ·与MCS-51 兼容 ·4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 ·全静态工作:0Hz-24Hz ·三级程序存储器锁定 ·128*8位内部RAM ·32可编程I/O线 ·两个16位定时器/计数器 ·5个中断源 ·可编程串行通道 ·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路 2.管脚说明:

VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

4.芯片擦除:

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

2、最小系统电路的组成

由电源、复位及振荡电路、四位一体数码管显示电路、按钮及LED电路。

复位及振荡电路

复位电路由按键复位和上电复位两部分组成。电阻给电容充电,电容的电压缓慢上升直到vcc,到vcc时芯片复位脚近似低电平,于是芯片复位,接近vcc时芯片复位脚近高电平,于是芯片停止复位,复位完成。

AT89C51系列单片机为高电平复位,通常在复位引脚RST上连接一个电容到VCC,再连接一个电阻到GND,由此形成一个RC充放电回路保证单片机在上电时RST脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态,这个电阻和电容的典型值为10K和10uF。

按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。使用6MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。如下图所示

数码管显示电路

利用单片机的T0,T1计数定时器功能,来完成对输入信号进行率计数,计数结果通过4位动态数码管显示出来,能对0到9999HZ的方波信号频率进行准确计数。如下图所示

3、软件设计

根据设计项目所需功能,我们先进行初始化,在待机状态下,采集频率。然后检测是否有按钮按下,若按钮按下,则数码管显示所采集的频率,再按下键0时则不显示。系统实现所有功能,其程序框图如图所示。

4、设计源程序 #include bit int_flag;//定时器0,1S到标志位

unsigned char volatile T0Count;//定时器0的中断次数 unsigned char volatile T1Count;unsigned char code table[] //定时器1的中断次数

={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示段码值为123456789 unsigned char code temp[] = {0xfe,0xfd,0xfb,0xf7};//数码管选通 unsigned long sum;//1S内脉冲总个数 unsigned char Led[4];//Led显示缓存

void delay(unsigned int num){ //软件延时

while(--num);//定时器0初始化 } void init(void){ TMOD=0x51;//T1定时器0工作于方式1,定时器1计数 TH0=(65536-50000)/256;//定时50ms TL0=(65536-50000)%256;TH1=0x00;TL1=0x00;} void disp(void){ //数码显示

unsigned char i;for(i=0;i<4;i++){

P2=temp[i];//片选

P0=table[Led[i]];//取数据显示

delay(100);//延时1毫秒

} } void main(void){ EA=1;//开总中断

init();//初始化定时器

TR0=1;//定时器开始工作

TR1=1;ET1=1;//开T0中断

ET0=1;while(1){

if(int_flag==1){

int_flag=0;

sum=TL1+TH1*256+T1Count*65536;//计算个数

//将数据格式化,转化成可显示的BCD码

Led[3]=sum%10000/1000;//显示千位

Led[2]=sum%1000/100;//显示百位

Led[1]=sum%100/10;//显示十位

Led[0]=sum%10;//显示个位

T0Count=0x00;

T1Count=0;

TH1=0x00;

TL1=0x00;

TR1=1;

}

内脉冲1S

disp();} } void int_t0(void)interrupt 1{ TH0=(65535-50000)/256;TL0=(65536-50000)%256;T0Count++;if(T0Count==20){

TR1=0;

int_flag=1;

T0Count=0x00;} } void int_T1(void)interrupt 3{ T1Count++;

5、设计仿真图 输入正弦波频率为1324HZ的仿真情况; 输入方波频率为4216HZ的仿真情况;

6、实物图(未上电)

六、实验结果分析

在实验电路板验收的时候,对于给定的输入信号,数码管显示的频率示数与实际信号源给定的频率有大约20HZ的偏差,产生偏差的原因可能有:1.电路电容的选取不恰当;2.焊接电路板的时候,因为操作不恰当,某些焊点的焊接不到位;3.实际器件与仿真所用到的的元件有差别。

七、心得体会

通过这次课程设计,我熟悉了Keil C51编程与PROTUSE的使用,对单片机的使用有了更深刻的了解,在焊接与测试过程中要有大局观,注意布局和布线。频率计的设计让我更好的了解如何应用单片机的定时器计数器模块。其中最重要的是分析问题解决问题的能力,在我看来,写程序并不难,重要的是把程序优化,无论是在节省硬件资源,还是提高数据的准确度来看,都需要下一些功夫把它做到最好。通过这次课程设计使我明白了自己原来知识还比较欠缺。学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。

第四篇:单片机课程设计秒表系统设计

单片机课程设计

学院:信息工程专业:

——秒表系统设计

一,设计目的:

1,熟悉51单片机的内部结构,计数器,中断控制器等的用法,来实现简单的控制应用系统。

2,通过简单系统的设计了解单片机应用系统的设计与开发过程及其相应的调试程序过程。

二,设计任务:

实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、快加功能,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义。

三,设计题目:

秒表系统设计——用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一。另设计一个“开始”按键和一个“复位”按键。调用子程序:暂停键子程序,计时键子程序,清0键子程序,加一子程序,显示子程序,定时子程序,所用特殊寄存器:寄存器A,寄存器C,所用中断:外部中断INT0、INT1,定时器T0、T1

四,设计的硬件接线图:

五,设计思路及描述

要求进行计时并在数码管上显示时间,则可利用DVCC系列单片机微机仿真实验系统中的芯片8032(芯片的功能类似于芯片AT89C51,其管脚功能也和AT89C51的管脚功能类似)中的P3.2管脚做为外部中断0的入口地址,并实现“开始”按键的功能;将P3.3做为外部中断1的入口地址,并实现“清零”按键的功能;将P3.0做为数据信号DATA输入的入口地址;将P3.1做为时钟信号CLK输入的入口地址。定时器T0作为每秒加一的定时器;定时器T1作为“快加”键的定时器。其中“开始”按键当开关由1拨向0(由上向下拨)时开始计时;“清零”按键当开关由1拨向0(由上向下拨)时数码管清零,此时若再拨“开始”按键则又可重新开始计时。

六,流程图

七,程序 源程序: ORG

0000H AJMP

MIAN;主程序入口地址 ORG

0003H

AJMP

ZHONGDUAN0;中断0入口地址

ORG

000BH

AJMP YANSHI;定时器T0入口地址

ORG

0013H

AJMP

ZHONGDUAN1;中断1入口地址

ORG

001BH

AJMP

DINGSHI1;定时器T1入口地址

ORG

0030H

;主程序

;***********************************************************

MAIN: MOV

TCON,#05H;主程序开始 外部中断跳变模式

MOV

TMOD,#11H;定时器0,1模式1 MOV

IE,#8FH;开总中断,中断0,1,定时器0,1 MOV

DPTR,#TAB MOV

R1,#00H MOV

R2,#00h MOV

R3,#40;循环次数40 MOV

TL0#2CH;置初值,定时25MS

MOV

TH0,#0CFH

MOV

TL1#78H;置初值,定时10MS

MOV

TH1,#0ECH CLR TR0;关定时器

CLR

TR1;***********************************************************;暂停键K3,快加键K4程序

;*********************************************************** HERE:JB P1.0,HERE SHOW:

CLR

TR1 CLR

TR0 ACALL

XIANSHI KUAIJIA

:JB P1.2,KUAIJIA;等待P1.2为0 快加 CLR

TR0 SETB

TR1

HERE 3JNB

P1.2,HERE 3 AJMP

HERE;***********************************************************;外部中断INT0子程序-----计时按键K1子程序

;***********************************************************

ZHONGDUAN 0:

SETB TR0;计时按键 RETI;***********************************************************;外部中断INT1子程序----复位按键K2子程序

;***********************************************************

ZHONGDUAN 1: CLR TR0;复位按键

CLR

TR1

MOV

12H,#00H

MOV

11H,#00H ACALL

XIANSHI;调用显示子程序

MOV

R1,#00H

MOV

R2,#00H RETI;***********************************************************;加一子程序

;***********************************************************

JIA1:

INC

R1;加1子程序

CJNE R1,#0AH ,LOOP;判断是否到表尾

MOV

R1,#00H INC

R2

CJNE

R2,#0AH,LOOP

MOV

R2,#00H

LOOP: MOV

12H,R1;重新赋值

MOV

11H,R2

RET;***********************************************************;显示子程序

;*********************************************************** XIANSHI: MOV R7,#02H;2个数码管显示子程序 MOV R0,#12H LOOP5: MOV R6,#08H;8位2进制数 MOV A,@R0 MOVC A,@A+DPTR LOOP6: RLC A;循环左移 CLR P3.1 MOV P3.0,c SETB P3.1 DJNZ R6,LOOP6 DEC R0 DJNZ R7,LOOP5 RET;***********************************************************;定时器T0子程序;*********************************************************** YANSHI: MOV Tl0,#2CH;定时子程序 MOV TH0,#0CFH DJNZ R3,LOOP7 ACALL JIA1;调用加1子程序 ACALL XIANSHI;调用显示子程序 MOV R3,#40 LOOP7: RETI;***********************************************************;定时器T1子程序

;*********************************************************** DINGSHI1:MOV Tl1,#78H;置初值,定时10MS MOV TH1,#0ECH CLR TR0 SETB TR1 MOV 12H ,R1 MOV 11H,R2 JNB p1.0,SHOW ACALL JIA1 ACALL XIANSHI LOP7:TETI;*********************************************************** TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END

八,内容提要

利用单片机的定时器/计数器定时和记数的原理,结合dvcc实验箱上的集成电路芯片8032、LED数码管以及实验箱上的按键来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。其中本设计了四个开关按键:其中一个按键按下去时以1秒加一开始计时,即秒表开始键(本实验中当开关从1变为0时开始计时),另一个按键按下去时暂停计时,使秒表停留在原先的计时(本实验中当相应开关从1变为0时即停止计时),第三个按键按下去时清0(本实验中当相应开关从1变为0时即停止计时),第四按键按下去则是以每10ms秒快速加一计时(本实验中当开关从1变为0时开始计时)。本设计中开始时都要使各按键回到各初始位置,即都处于1状态。

九,课程设计心得体会

选择适当的课题,不益太简单或者太难。做到既能把课题完成又能锻炼自己的能力!根据课题要求,复习相关的知识,查询相关的资料。根据实验条件,找到适合的方案,找到需要的元器件及工具,准备实验。根据课程设计的要求和自己所要增加的功能写好程序流程图,在程序流程图的基础上,根据芯片的功能写出相应的程序。然后再进行程序调试和相应的修改,以达到能够实现所要求的功能的目的。还要根据实验的实际情况,添加些额外程序来使系统更加的稳定,如开关的消震荡(采用延迟)。程序要尽量做到由各个子程序组成,在有些程序后面最好加注释,这样在程序出错的检查过程中可以更容易查找的到,也更简洁,更明白易懂。该设计的程序可以参考DVCC系列单片机微机仿真实验系统实验指导书中的串并转换实验,也可自己根据自己熟悉的方法来编程。在设计控制开关时,注意2个中断的打开和关闭的先后顺序,否则就会出错。这次的单片机课程设计重点是理论与实际的相结合。不再只读书了。该设计从头到尾都要自己参与,熟悉了对整个设计的过程,更系统的锻炼了自己。

十、参考文献

苏家健等编的《单片机原理及应用技术》 高等教育出版社 2004年11月 余锡存等,《单片机原理及接口技术》 西安电子科技大学出版社 2004

孙涵芳等 《单片机原理及应用》 北京航空航天大学出版社 1990

吴金戌等 《8051电片机的实践与应用》 清华大学出版社

第五篇:基于单片机的温度报警系统报告

基于单片机的温度报警系统报告

姓名:

班级:

学号:

随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术,本次主要设计一个基于89C52单片机的数字温度传感器开发测温系统,重点掌握对传感器下在单片机的硬件连接,软件编程以及各个模块系统流程的详尽分析,提高电路设计的技巧。该系统可以方便的实现温度的采集和显示,它使用起来相当方便,具有精度高、灵敏度高、体积小、功耗低等优点,适用于我们的日常生活。该系统结构简单,抗干扰能力强,有广泛的应用前景。

在工业生产中,电流、电压、温度、压力、流量、速度和开关量都是常用的主要被控制参数、其中,温度控制也越来越重要。在工业生产的很多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用单片机对温度进行控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度技术指标,从而大大提高产品的质量和数量。因此,单片机对温度的控制问题是工业生产中经常遇到的控制问题。

在传统的温度测控系统设计中,往往采用模拟技术进行设计,这样就不可避免的遇到诸如传感器外围电路复杂及抗干扰能力差等问题,而其中任何一环节处理不当,就会造成整个系统性能的下降。采用数字温度传感器与单片机组成的温度检测系统进行温度检测、数值显示和数据储存,体积减小,精度提高,抗干扰能力强,并可组网进行多点协测,还可以实现实时控制等技术,在现代工业中应用越来越广泛。

传统的温度测控系统设计往往是热电阻、adc转换器和控制器的搭配,再加上人机互动操作操作设备这样就会增加系统的成本和系统软件设计的负担,传统的温度测控系统软件设计不仅要控制温度采集、adc的转换、数据的处理、显示和按键功能。制温度采集、adc的转换、显示和按键功能相对简单一些,但是adc采集数据不是现成的温度数据还要控制器处理器对数据处理进行处理,热电阻是反映温度和电压的关系,常用的有正温度和负温度电阻,而且大多数不是正比例而是指数型,这样的数据处理函数可想而知有多复杂,还要考虑电压在传输时的损耗。

本设计就采用以52单片机为核心,和单总线数字式温度传感器模拟出一温度测控系统。

方案:

采用AT89C52单片机,温度传感器,液晶显示屏,设计能设定温度上下限。当温度低于下限值或高于上限值是能进行报警,能显示实际的温度值,显示精度为±1°本方案主要利用硬电路连接,通过软件编程,显示出温度。

重要元器件1:AT89C52 AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件ATMEL公司的高密度、非易失性存储技术生产兼容标准MCS-51指令系统,片内置通用位

中央处理器和Flash存储单元,功能强的AT89C52单片机可为您提供许多较复杂统控制应用场合。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。具有低电压供电和体积小等特点。

重要元器件2:DS18B20温度传感器

DS18B20数字温度传感器是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。DS18B20数字温度传感器接线方便,耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

本温度计采用一种智能温度传感器DS18B20作为检测元

件。该元件测温范围为-55~125度,最高分辨率为0.0625度,完全满足本设计中分辨率为0.1度的要求!考虑到下载程序的方便和一些条件的限制我选了STC89C52RC这款单片机作为控制器。

报警方面,当温度超过警界最高温度时,报警,红色发光二极管打开;当温度低于最低温度报警时,报警,红色发光二级管打开。为使电路的简化,其温度报警值已预设在程序中,可以通过修改程序中的预设值改变报警温度!主要实现:在基于52单片机的情况下进行,实时温度测量以及显示,超出温度范围声光报警,上下限温度可设定等功能。

电路图:

总结:

从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。并且做每一件事都要认真严谨去完成,否则,一个小小的问题都会让你付出更多的时间和代价。

总的来说,自己从这次独立的课程中收获了一些的知识与经验,一些从书本中学之不来的东西。

下载单片机课程设计 简易报警系统设计(定稿)word格式文档
下载单片机课程设计 简易报警系统设计(定稿).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    开题报告-基于单片机的汽车超速报警系统设计

    开题报告电气工程及自动化基于单片机的汽车超速报警系统设计一、综述本课题国内外研究动态,说明选题的依据和意义随着我国改革开放的继续深入以及国家经济战略的实施下,我国的......

    单片机课程设计设计项目

    09级通信专业《课程设计》方案 单片机应用系统设计项目介绍学生:09级通信1、2、3班指导教师:周秋茜一、16×16点阵LED电子显示屏的设计1.功能要求设计一个室内用16×16点阵LED......

    单片机课程设计电子钟设计

    单片机课程设计电子钟设计目录一、摘要二、设计任务三、基本原理数码管显示可以用静态显示或动态显示方法。静态显示需要数据锁存器等硬件,接口复杂,时钟显示用四个数码管。动......

    单片机课程设计

    单片机课程设计 课题: 简易电子琴设计 学院:电气与信息工程学院 专业:电子信息工程 姓名:李琳琳 学号:093411106 指导老师:田巍 河南城建学院 2014年01 月01 日......

    单片机课程设计

    课 程 设 计 设计题目: 基于单片机的8*8点阵显示数字设计 学生姓名: 指导教师: 二级学院: 专业: 班级: 学号: 目 录 摘要„„„„„„„„„„„„„„„„„„„„„„„„„„......

    单片机课程设计

    基于单片机的火灾智能报警控制系统的设计前言在各种灾害中,火灾是最经常、最普通地威胁公众安全和社会发展的灾害之一。人类能够对火进行利用和控制,是文明进步的一个重要标志......

    单片机课程设计

    《单片机技术》课程设计说明书 音乐盒 院、部:电气与信息工程学院 学生姓名:刘亮 指导教师:凌云职称讲师 专业:电子信息工程 班级:电子1302班 学号:1330340220 完成时间: 2016年1......

    单片机课程设计

    单片机课程设计_报警器 报警器 ORG 0010H START:MOV DPTR,#TAB CLR P3.1 SETB P1 MOV A,P1 CPL A ANL A,#0F0H SWAP A MOV R0,A LCALL DISP1 MOV A,P1 CPL A ANL A,#0FH MOV......