>1;}}ucharread_ds1302_byte(){uchari;for(i=0;i{ACC=ACC>>1;ACC7=T_IO;T_CLK=1;T_CLK=0;}return(ACC);}voidwrite_ds" />
当前位置:文档之家› 毕业设计基于51单片机的密码锁设计程序

毕业设计基于51单片机的密码锁设计程序

毕业设计基于51单片机的密码锁设计程序
毕业设计基于51单片机的密码锁设计程序

#include "1302.h"

void write_ds1302_byte(uchar dat)

{

uchar i;

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

{

T_IO=dat&0x01;

T_CLK=1;

T_CLK=0;

dat=dat>>1;

}

}

uchar read_ds1302_byte()

{

uchar i;

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

{

ACC=ACC>>1;

ACC7=T_IO;

T_CLK=1;

T_CLK=0;

}

return (ACC);

}

void write_ds1302_dat(uchar addr,uchar dat) {

T_EN=0;

T_CLK=0;

T_EN=1;

write_ds1302_byte(addr);

write_ds1302_byte(dat);

T_CLK=1;

T_EN=0;

}

uchar read_ds1302_data(uchar addr)

{

uchar date;

T_EN=0;

T_CLK=0;

T_EN=1;

write_ds1302_byte(addr);

date=read_ds1302_byte();

T_EN=0;

T_CLK=0;

return (date);

}

void set_real_time(uchar *pclock)

{

uchar i,addr=0x80;

EA=0;

write_ds1302_dat(0x8e,0x00);

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

{

write_ds1302_dat(addr,*pclock);

pclock++;

addr+=2;

}

// write_ds1302_dat(0x8e,0x80);

EA=1;

}

void get_real_time(uchar Curtime[])

{

uchar j;

uchar address=0x81;

EA=0;

for(j=0;j<7;j++)

{

Curtime[j]=read_ds1302_data(address);

address+=2;

}

EA=1;

}

#ifndef __1302_H__

#define __1302_H__

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit T_IO=P2^5;

sbit T_CLK=P2^4;

sbit T_EN=P1^0;

sbit ACC0=ACC^0;

sbit ACC7=ACC^7;

void write_ds1302_byte(uchar dat);

uchar read_ds1302_byte();

void write_ds1302_dat(uchar addr,uchar dat);

uchar read_ds1302_data(uchar addr);

void set_real_time(uchar *pclock);

void get_real_time(uchar Curtime[]);

#endif

#include "delay.h"

#include "1602.h"

void lcd_busy_wait() /*LCD1602 忙等待*/

{

lcd_rs_port = 0;

lcd_rw_port = 1;

lcd_en_port = 1;

lcd_data_port = 0xff;

while (lcd_data_port&0x80);

lcd_en_port = 0;

}

void write_com(uchar command) /*LCD1602 命令字写入*/ {

lcd_busy_wait();

lcd_rs_port = 0;

lcd_rw_port = 0;

lcd_en_port = 0;

lcd_data_port = command;

lcd_en_port = 1;

lcd_en_port = 0;

}

void write_data(uchar dat)

lcd_busy_wait();

lcd_rs_port=1;

lcd_rw_port =0;

lcd_en_port=0;

P0=dat;

lcd_en_port=1;

lcd_en_port=0;

}

void wtite_lcd_1602_dat(uchar x_pos,uchar y_pos,uchar dat) {

x_pos&=0x0f;

y_pos&=0x01;

if(y_pos==0)

{

x_pos=x_pos+0x80;

}

else

{

x_pos=x_pos+0x80+0x40;

}

write_com(x_pos);

lcd_busy_wait();

lcd_rs_port=1;

lcd_rw_port=0;

lcd_en_port=0;

P0=dat;

lcd_en_port=1;

lcd_en_port=0;

}

void lcd_init() /*LCD1602 初始化*/

{

lcd_delay(20);

write_com(0x38);

lcd_delay(100);

write_com(0x38);

lcd_delay(50);

write_com(0x38);

lcd_delay(10);

write_com(0x08);

write_com(0x01);

write_com(0x06);

write_com(0x0c);

lcd_data_port = 0xff; /*释放数据端口*/

}

#ifndef __1602_H__

#define __1602_H__

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit lcd_rs_port=P3^5;

sbit lcd_rw_port=P3^6;

sbit lcd_en_port=P3^4;

#define lcd_data_port P0

void lcd_busy_wait();

void write_com(uchar command);

void write_data(uchar dat);

void wtite_lcd_1602_dat(uchar x_pos,uchar y_pos,uchar dat); void lcd_init();

#endif

#include "2402.h"

#include "delay.h"

void i2c_start()

{

scl=1;

delay1();

sda=1;

delay1();

sda=0;

delay1();

}

void i2c_stop()

{

sda=0;

delay1();

scl=1;

delay1();

sda=1;

delay1();

}

void i2c_ack()

{

uchar i;

scl=1;

delay1();

while((sda==1)&&(i<250)) i++;

scl=0;

delay1();

}

void i2c_nack()

{

scl=1;

delay1();

sda=1;

scl=0;

delay1();

}

void i2c_write_byte(uchar date)// { //

uchar i,temp;

temp=date;

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

{ //

temp=temp<<1;//

scl=0; //

delay1();; //

sda=CY;//

delay1();//

scl=1;//

} //

scl=0; //

delay1();//

sda=1;//

delay1();//

}//

uchar i2c_read_byte()

{

uchar i,temp=0;

scl=0;

// delay1();;

// sda=1;

delay1();

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

{

temp=temp<<1;

scl=1;

delay1();

temp=temp|sda;

scl=0;

delay1();

}

return (temp);

}

void write_at2404(uchar addr,uchar dat) {

i2c_start();

i2c_write_byte(0xa0);

i2c_ack();

i2c_write_byte(addr);

i2c_ack();

i2c_write_byte(dat);

i2c_ack();

i2c_stop();

delay3(5000);

}

uchar read_at2402(uchar addr)

{

uchar temp;

i2c_start();

i2c_write_byte(0xa0);

i2c_ack();

i2c_write_byte(addr);

i2c_ack();

i2c_start();

i2c_write_byte(0xa1);

i2c_ack();

temp=i2c_read_byte();

i2c_nack();

i2c_stop();

return (temp);

}

#ifndef __2402_H__

#define __2402_H__

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit scl=P2^1;

sbit sda=P2^0;

void i2c_start();

void i2c_stop();

void i2c_ack();

void i2c_nack();

void i2c_write_byte(uchar);

uchar i2c_read_byte();//

void write_at2404(uchar addr,uchar dat); uchar read_at2402(uchar addr);

#endif

#include"delay.h"

void delay(uchar x)

{

uchar a,b;

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

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

}

void lcd_delay(uchar ms) {

uchar j;

while(ms--){

for(j=0;j<250;j++)

{;}

}

}

void delay1()

{ ; ;}

void delay3(uint q)

{

uint e;

for(e=0;e

}

#ifndef __DELAY_H__

#define __DELAY_H__

#include

#include

#define uchar unsigned char #define uint unsigned int

void delay(uchar x);

void lcd_delay(uchar ms); void delay1();

void delay3(uint m);

#endif

#include "display.h"

void display()

{

P0=0;

dula=1;

dula=0;

P0=0x7f;

wela=1;

wela=0;

}

#ifndef __DISPLAY_H__

#define __DISPLAY_H__

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit dula=P2^6;

sbit wela=P2^7;

void display();

#endif

#include "delay.h"//一般放在最前面这个前后由调用先后决定着

#include "scan.h"

#include "1602.h"

//extern void write_data(uchar dat);

//extern void write_com(uchar command);

uchar key;

uchar temp,count,aa,bb,cc; /*一般将这些变量定义在C文件中

当主函数需要时用extern引用*/ bit shu_flag,modify_flag,rst;

bit fun_flag; //功能键标志位没使用

bit down_flag,up_flag,open_flag;

void keyscan()

{

P1=0xfe;

temp=P1;

temp=temp&0xf0;

if(temp!=0xf0)

{

delay(15);

if(temp!=0xf0)

{

temp=P1;

switch(temp)

{

case 0xee: key=0;shu_flag=1;write_data('*');

count++;if(count>6) count=0;aa=0;bb=0;cc=0;break;

case 0xde: key=1;shu_flag=1;write_data('*');

count++;if(count>6) count=0;aa=0;bb=0;cc=0;break;

case 0xbe: key=2;shu_flag=1;write_data('*');

count++;if(count>6) count=0;aa=0;bb=0;cc=0;break;

case 0x7e: key=3;shu_flag=1;write_data('*');

count++;if(count>6) count=0;aa=0;bb=0;cc=0;break;

}

while(temp!=0xf0)

{

temp=P1;

temp=temp&0xf0;

// beep=0;

delay(500);

}

// beep=1;

// write_data('*');count++;

}

while(temp!=0xf0);

{

temp=P1;

temp=temp&0xf0;

}

}

P1=0xfd;

temp=P1;

temp=temp&0xf0;

if(temp!=0xf0)

{

delay(15);

if(temp!=0xf0)

{

temp=P1;

switch(temp)

{

case 0xed: shu_flag=1;key=4;write_data('*');

count++;if(count>6) count=0;aa=0;bb=0;cc=0;break; //aa,bb,cc定时器中

使用

case 0xdd: shu_flag=1;key=5;write_data('*'); //每次按键清零

count++;if(count>6) count=0;aa=0;bb=0;cc=0;break; //保证在按键器件不会自动返回

case 0xbd: shu_flag=1;key=6;write_data('*'); //

count++;if(count>6) count=0;aa=0;bb=0;cc=0;break;

case 0x7d: shu_flag=1;key=7;write_data('*');

count++;if(count>6) count=0;aa=0;bb=0;cc=0;break;

}

while(temp!=0xf0)

{

temp=P1;

temp=temp&0xf0;

// beep=0;

delay(500); // 松手检测屏蔽蜂鸣器噪音污染

}

// beep=1;

// write_data('*');count++;

}

}

P1=0xfb;

temp=P1;

temp=temp&0xf0;

if(temp!=0xf0)

{

delay(15);

if(temp!=0xf0)

{

temp=P1;

switch(temp)

{ //fun_flag 功能键标志位

case 0xeb: key=8; shu_flag=1;write_data('*');

count++;if(count>6) count=0;aa=0;bb=0;cc=0;break;

case 0xdb: key=9; shu_flag=1;write_data('*');

count++;if(count>6) count=0;aa=0;bb=0;cc=0;break;

case 0xbb: modify_flag=1;fun_flag=1;aa=0;bb=0;cc=0;break; //修改键

case 0x7b: rst=1;fun_flag=1;aa=0;bb=0;cc=0;break; //返回键

}

while(temp!=0xf0)

{

temp=P1;

temp=temp&0xf0;

// beep=0;

delay(500);

}

// beep=1;

}

}

P1=0xf7;

temp=P1;

temp=temp&0xf0;

if(temp!=0xf0)

{

delay(15);

if(temp!=0xf0)

{

temp=P1;

switch(temp)

{ //清除键

case 0xe7: //key=12;shu_flag=1;break;

aa=0;bb=0;cc=0;

switch(count)

{

case 1: write_com(0x80+0x40+5);write_data(' ');write_com(0x80+0x40+5);break;

case 2: write_com(0x80+0x40+6);write_data(' ');write_com(0x80+0x40+6);break;

case 3: write_com(0x80+0x40+7);write_data(' ');write_com(0x80+0x40+7);break;

case 4: write_com(0x80+0x40+8);write_data(' ');write_com(0x80+0x40+8);break;

case 5: write_com(0x80+0x40+9);write_data(' ');write_com(0x80+0x40+9);break;

case 6: write_com(0x80+0x40+0x0a);write_data(' ');write_com(0x80+0x40+0x0a);break;

}

case 0xd7: key=13;up_flag=1;fun_flag=1;aa=0;bb=0;cc=0;break; //开门键

case 0xb7: key=14;down_flag=1;fun_flag=1;aa=0;bb=0;cc=0;break;

case 0x77: key=13;open_flag=1;fun_flag=1;aa=0;bb=0;cc=0;break;

while(temp!=0xf0)

{

temp=P1;

temp=temp&0xf0;

// beep=0;

delay(500);

}

// beep=1;

if(count>0) count--;break;

} //清除数字

}

}

}

#ifndef __SCAN_H__

#define __SCAN_H__

#include

#include

#define uchar unsigned char

#define uint unsigned int

void keyscan();

#endif

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

名称:电子密码锁

时间:2014年8月2日16:33:48 WRITE BY:Kengkeng

Today is Valentine's Day

程序功能:

1 :开机1302显示时间,按下key15:开门键进入输入密码界面

2 :输入密码输入错误超过三次电子锁锁死倒计时60s之后重新设置蜂鸣器快速响

3 :输入正确进入菜单页面两个选择key13:开门key10:修改密码

4 :修改已输入密码可由key12键清除重新输入

5 :选择key13开门打开继电器显示倒计时15s开门蜂鸣器慢响提示15s内开门

否则15后关门关闭继电器并自动返回时间页面

6 :选择key10修改密码共两次两次密码一致时设置成功否则会一直提示输入密码

7 :修改的密码存入2402中上电读出

8 :修改密码无限循环直到输入正确为止可以使用key11:返回键返回

9 :在10s内无任何按键按下时自动返回时间页面可重新进入

10:在20s内无任何按键按下时进入掉电模式外部中断唤醒

键盘列表:

00 01 02 03

04 05 06 07

08 09 修改返回

清除开锁切换开门

修改modify_flag 返回rst 清除key12 //切换down_flag// 开锁up_flag 开门open_flag

//切换的功能跟返回大致相同

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

#include

#include

#include "delay.h" //delay.h最好放在最前面

#include "scan.h"

#include "1302.h"

#include "2402.h"

#include "1602.h"

#include "display.h"

#define uchar unsigned char

#define uint unsigned int

extern uchar key;

extern uchar temp,count,aa,bb,cc; /*一般将这些变量定义在C文件中

extern声明不是定义当主函数需要时用extern引用*/

extern bit shu_flag,modify_flag,rst;

extern bit fun_flag; //功能键标志位没使用

extern bit down_flag,up_flag,open_flag;

uchar data lcd1602_line1[]={" 2014/08/02 000"};

uchar data lcd1602_line2[]={" 10:42:50 "};

uchar data time_data_buff[7]={0x50,0x42,0x10,0x02,0x08,0x06,0x14};

uchar code Weeks[][3]={{"SUN"},{"MON"},{"TUE"},{"WED"},{"THU"},{"FRI"},{"SAT"},{"SUN"}};

//二维数组八行三列

bit mod_flag,rst_flag;

uchar code num_to_char[] = {"0123456789ABCDEF"};

基于51单片机电子密码锁设计

一、设计目的 1.1课题简介 如何实现防盗是很多人关心的问题,传统的机械锁由于其构造简单,被撬的事件屡见不鲜,使人们的人身及财产安全受到很大威胁。电子密码锁是一种依靠电子电路来控制电磁锁的开和闭的装置,开锁需要输入正确密码,若密码泄露,用户可以随时更改密码。因此其保密性高,使用灵活性好,安全系数高,可以满足广大用户的需要,现在广泛使用的有红外遥控电子密码锁,声控密码锁,按键密码锁等。 1.2课题研究目的 本设计是一种基于单片机的密码锁方案,根据基本要求规划单片机密码锁的硬件电路和软件程序,同时对单片机的型号选择、硬件设计、软件流程图、单片机存储单元的分配等都有注释。现在很多地方都需要密码锁,电子密码锁的性能和安全性大大超过了机械锁,为了提高密码的保密性,必须可以经常更改密码,以便密码被盗时可以修改密码。 本次设计的密码锁具备的功能:LED数码管显示初始状态“——————”,用户通过键盘输入密码,每输入一位密码,LED数码管相应有一位变为“P”,若想重新输入密码,只需按下“CLR”键。密码输入完毕后按确认键“#”,密码锁控制芯片将输入的密码和密码锁控制芯片中存储的密码相比,若密码错误,则不开锁,会有红灯亮提示,同时显示“Error”。若正确,则开锁,会有绿灯亮提示,同时显示“PASS”。用户可以根据实际情况随意改变密码值或密码长度,密码输入正确后可以按下“CHG”修改密码,输入新密码时每输入一位新密码相应有一位变为“H”,以便提示用户此时输入的是新密码,修改新密码时若想重新输入新密码只需按下“CLR”键即可。输入新密码后按确认键即修改成功,新密码写入单片机内部RAM中,以便以后用来确认密码的正确性。按下复位键,系统恢复初始状态,密码也恢复初始密码,本设计中初始密码是“096168”。 本次设计中硬件主要由我完成,软件主要由张振完成。 二、硬件设计 2.1概述 本系统主要由单片机最小系统、电源电路、输入键盘电路、输出显示电路、开锁电路等组成,系统框图如图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提示。

基于指纹识别的电子密码锁设计

基于指纹识别的电子锁系统设计 作者姓名:XX 专业班级:测控技术和仪器2009060101 指导教师:XX 摘要 随着社会的发展和科技的进步,传统的安全防盗系统面临极大的挑战。生物识别技术的蓬勃发展,让人们对于安防系统的设计有了另一种灵感,指纹锁应运而生。可供二次开发的指纹模块已经解决了指纹图像的处理问题,如何实现这种技术的实际应用已经成为急需解决的问题,本设计利用单片机对指纹模块的控制实现了这种技术的应用。设计以指纹传感器对指纹图像的采集为基础,通过单片机控制指纹模块实现对指纹图像的组合处理,系统的各项具体功能皆建立在相应的指纹图像的组合处理基础之上,系统主要实现了指纹模板的录入以及指纹匹配功能。 关键词:指纹识别技术;指纹锁;系统设计

The Design of the system of Electronic lock based on Fingerprint Identification Abstract:With the development of the society and the progress of science and technology, The traditional security system faced with great challenges. With the vigorous development of Biometric Identification Technology, people have another kind of inspiration to design the lock,Fingerprint lock arises at the very historical moment. The fingerprint module for secondary development has solved the problem of image processing, The remaining problem is how to take advantage of the technology in practice. This design has realized the application, which mainly based on the control from MCU to the module of fingerprint. The foundation of this design is fingerprint collection, Through the control from MCU to the module can realize the combination of image processing, based on the combination of image processing can realize the various functions of the system . The mainly functions of the system include the landing and matching of fingerprint template . Keywords: Fingerprint identification technology;Fingerprint lock;System design

单片机电子密码锁_(可以修改设置密码)——基于51单片机与AT24C02与LCD1602显示

单片机电子密码锁(可以修改设置密码)——基于51单片机与AT24C02与LCD1602显示 其电路图连接如下:本人已经用硬件实验,程序可用。正确~~ 本程序特点:装载后读者可以自改密码,然后需要再次载入程序时:可以把主程序aa=Sendstring(0xa0,1,table2,6);这一句去掉。然后程序的电子锁密码就是你个人设置的密码。 程序代码为: #include #include #include #define uchar unsigned char #define uint unsigned int #define LCDIO P2 #define delay4us() _nop_();_nop_();_nop_();_nop_(); uchar buffer[6]={0}; sbit sda=P3^7; sbit scl=P3^6; sbit beep=P3^5; bit flag=0,aa; //用户蹲渊义定时溢出标志位 uchar DSY_BUFFER[16]=" ";

uchar DSY_BUFFER1[16]=" "; uchar Userpassword[6]={0}; sbit rs=P0^4; sbit rd=P0^3; sbit lcden=P0^2; sbit led=P3^0; uchar code table2[]="123456"; uchar code table[]="Your Password..."; void delayms(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void delay() //短延时,两个机器周期,做总线的延时用{;;} void write_com(uchar com) { rs=0; rd=0; lcden=0; P2=com; delayms(3); lcden=1; delayms(3); lcden=0; } void write_date(uchar date) { rs=1; rd=0; lcden=0; P2=date; delayms(3); lcden=1; delayms(3); lcden=0; } void Display_String(uchar *p,uchar com) { uchar i; write_com(com); for(i=0;i<16;i++) {

51单片机密码锁制作的程序和流程图

51单片码锁制作的程序和流程图(很详细) 一、基本组成: 单片机小系统+4*4矩阵键盘+1602显示+DC电机 基本电路: 键盘和和显示 键盘接P1口,液晶的电源的开、关通过P2.7口控制 电机(控制口P2.4) 二、基本功能描述: 1.验证密码、修改密码 a)锁的初始密码是123456(密码最长为10位,最短为1位)。 2.恢复初始密码 a)系统可以恢复初始密码,否则一旦忘记密码而又不能恢复初始密码,该锁就永远打不开。但是又不能让用户自行修改密码,否则其他人也可以恢复该初始密码,使得锁的安全性大大下降。

3.使系统进入低功耗状态 a)在实际使用中,锁只有在开门时才被使用。因而在大多数的时间里,应该让锁进入休眠状态、以降低功耗,这使系统进入掉电状态,可以大大降低系统功耗。 b)同时将LCD背光灯关闭 4.DC电机模拟开锁动作。 a)DC电机启动时解除开锁把手的锁定,允许通过把手开锁。DC电机不直接开锁,使得DC电机的功率不用太大,系统的组成和维护将变得简单,功耗也降了下来。 三、密码锁特点说明: 1.0 输入将被以字符形式输入,最长为10位。 超过10位时系统将自动截取前10位、但不作密码长度溢出提示。 2.0 开锁10秒后不允许更改密码、并提示修改超时_进入初始态,需要重新输入密码方可再次修改密码。 3.0 系统未使用存储器存储密码故掉电后密码自动恢复为初始密码。 4.0 若2分钟无任何操作,系统自动进入省电模式运行,同时关闭液晶显示,以节省电力。 5.0 输入密码正确后、电机允许开锁时间为5秒, 5秒后需要再次输入密码才可以再次开锁。 6.0 修改密码键和恢复初始密码键最好置于室。 这是Proteus仿真结果: 输入密码123456: 显示结果: 密码正确时电机启动、电机将持续5秒:

基于51单片机简易电子琴的课程设计

基于51单片机简易电子琴 1 课题背景 单片微型计算机室大规模集成电路技术发展的产物,属于第四代电子计算机它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。他的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘扬声器等模块组成核心主控制模块,在主控模块上设有8个按键,和一个复位按键。 主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴硬件的组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏要表达的音符。并且分别从原理图,主要芯片,个模块原理及各莫奎的程序的调试来详细阐述。 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,构成我们想演奏的那首曲目。当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样的方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系编写正确就可以达到我们想要的曲目。 2 任务要求与总体设计方案 2.1 设计任务与要求 利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出7个不同的音调,而且有一个按键可以自动播放歌曲,要求按键按下时发声,松开延时一小段时间,中间再按别的键则发另外一音调的声音,当系统扫描到键盘按下,则快速检测出是哪一个按键被按下,然后单片机的定时器启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一个按键被按下,则启动中断系统。前面的发音停止,转到后按的键的发音程序。发出后按的键的音调。 2.2 设计方案 2.2.1 播放模块 播放模块是由喇叭构成,它几乎不存在噪声,音响效果较好,而且由于所需驱动功率较小,且价格低廉,所以,被广泛应用。 2.2.2 按键控制模块

51单片机电子密码锁

目录 第1节引言 (1) 1.1 电子密码锁述 (1) 1.2 本设计主要任务 (1) 1.3 系统主要功能 (2) 第2节系统硬件设计 (3) 2.1 系统的硬件构成及功能 (3) 2.2 AT89C2051单片机及其引脚说明 (3) 第3节系统软件设计 (5) 3.1 系统主程序设计(流程图) (5) 3.2 软件设计思想 (5) 3.3 储单元的分配 (5) 3.4 系统源程序 (6) 3.5 系统应用说明 (9) 3.6 小结 (9) 结束语 (10) 参考文献 (11) 附录 (12)

电子密码锁 第1节引言 1.1 电子密码锁概述 随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一。而锁自古以来就是把守门的铁将军,人们对它要求甚高,即要求可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。传统的门锁既要备有大量的钥匙,又要担心钥匙丢失后的麻烦。另外,如:宾馆、办公大楼、仓库、保险柜等,由于装修施工等人住时也要把原有的锁胆更换,况且钥匙随身携带也诸多便。随着单片机的问世,出现了带微处理器的密码锁,它除具有电子密码锁的功能外,还引入了智能化、科技化等功能。从而使密码锁具有很高的安全性、可靠性。目前西方发达国家已经大量应用智能门禁系统,可以通过多种的更加安全更加方便可靠的方法来实现大门的管理。但电子密码锁在我国的应用还不广泛,成本还很高,希望通过不断地努力使电子密码锁能够在我国及居民日常生活中得到广泛应用,这也是一个国家生活水平的体现。 很多行业的许多地方都要用到密码锁,随着人们生活水平的提高,如何实现家庭或公司的防盗这一问题也变的尤其突出,传统的机械锁由于其构造简单,被撬的事件屡见不鲜,再者,普通密码锁的密码容易被多次试探而破译,所以,考虑到单片机的优越性,一种基于单片机的电子密码锁应运而生。电子密码锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲睐。 设计本课题时构思的方案:采用以AT89C2051为核心的单片机控制方案;能防止多次试探而不被破译,从而有效地克服了现实生活中存在的许多缺点。 1.2 本设计主要任务 (1)共8位密码,每位的取值范围为1~8。 (2)用户可以自行设定和修改密码。 (3)按每个密码键时都有声、光提示。 (4)若键入的8位开锁密码不完全正确,则报警5秒钟,以提醒他人注意。

基于51单片机的电子琴设计课程设计

目录 前言 (2) 第1章基于51单片机的电子琴设计 (3) 1.1 电子琴的设计要求 (3) 1.2 电子琴设计所用设备及软件 (3) 1.3 总体设计方案 (3) 第2章系统硬件设计 (5) 2.1 琴键控制电路 (5) 2.2 音频功放电路 (6) 2.3 时钟-复位电路 (6) 2.4 LED显示电路 (6) 2.5 整体电路 (6) 第3章电子琴系统软件设计 (7) 3.1 系统硬件接口定义 (7) 3.2 主函数 (8) 3.2.1 主函数程序 (8) 3.3 按键扫描及LED显示函数 (9) 3.3.1 键盘去抖及LED显示子程序 (10) 3.4 中断函数 (11) 3.4.1 中断程序 (12) 第4章电子琴和调试 (12) 4.1 调试工具 (12) 4.2 调试结果 (13) 4.3 电子琴设计中的问题及解决方法 (14) 第5章电子琴设计总结 (15) 参考文献 (16) 附录 (17)

前言 音乐教育是学校美育的主要途径和最重要内容,它在陶冶情操、提高素养、开发智力,特别是在培养学生创新精神和实践能力方面发挥着独特的作用。近年来,我国音乐教育在理论与实践上都取得了有目共睹的成绩,探索并形成了具有中国特色的、较为完整的音乐教育教学体系。但我国音乐教育的改革力度离素质教育发展的要求还存在一定距离。如今,电子琴作为电子时代的新产物以其独特的功能和巨大的兼容性被人们广泛的接受和推崇。而在课堂教学方面,它拥有其它乐器无法比拟的两个瞬间:瞬间多元素思维的特殊的弹奏方法;瞬间多声部(包括多音色)展示的乐队音响效果的特点。结合电子琴自身强大的功能及独特的优点来进行音乐教育的实施,这样就应该大力推广电子琴进入音乐教室,让电子琴教学在音乐教育中发挥巨大的作用。现代乐器中,电子琴是高新科技在音乐领域的一个代表,体现了人类电子技术和艺术的完美结合。电子琴自动伴奏的稳定性、准确性,以及鲜明的强弱规律、随人设置的速度要求,都更便于人们由易到难、深入浅出的准确掌握歌曲节奏和乐曲风格,对其节奏的稳定性和准确性训练能起到非常大的作用。电子琴所包含的巨量的音乐信息和强大的音乐表现力可以帮助音乐教学更好地贯彻和落实素质教育,更有效地提高人们的音乐素质和能力。目前,市场上的电子琴可谓琳琅满目,功能也是越来越完备。以单片机作为主控核心,设计并制作的电子琴系统运行稳定,其优点是硬件电路简单、软件功能完善、控制系统可靠、性价比较高等,具有一定的实用与参考价值。这就为电子琴的普及提供了方便。 二、电子琴设计要求本设计主要是用AT89C51单片机为核心控制元件,设计一台电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有7个按键和1个复位按键。本系统主要是完成2大功能:音乐自动播放、电子琴弹奏。关于声音的处理,使用单片机C语言,利用定时器来控制频率,而每个音符的符号只是存在自定义的表中。

电子密码锁毕业设计论文(分享版)

毕业论文声明 本人郑重声明: 1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。本人完全意识到本声明的法律结果由本人承担。 2.本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被查阅和借阅。本人授权大学学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。 3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。 4.本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究成果做出重要贡献的个人和集体,均已在论文中已明确的方式标明。 学位论文作者(签名): 年月

关于毕业论文使用授权的声明 本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。本人完全了解大学有关保存,使用毕业论文的规定。同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入学校有关数据 库和收录到《中国学位论文全文数据库》进行信息服务。在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。 论文作者签名:日期: 指导教师签名:日期: 摘要 近年来,随着改革开放的深入发展,电子电器的飞速发展.人民的生活水平有了很大提高。各种高档家电产品和贵重物品为许多家庭所拥有。然而一些不法分子也是越来越多。这点就是看到了大部分人防盗意识还不够强。造成偷盗现象屡见不鲜。因此,越来越多的居民家庭对财产安全问题十分担忧。 有报警功能的密码锁这时正为人们解决了不少问题.但是市场上的密码锁大部分都是用于一些大公司财政机构。价格高昂,一般人们难以接受。如果再设计和生产一种价格低廉、性能灵敏可靠的密码锁,必将在防盗和保证财产安全方面发挥更加有效的作用。 由于电子密码锁是一种通过密码输入来控制电路或是芯片工作的,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心。 关键词密码;开锁;报警

基于51单片机的智能密码锁

单片机的电子密码锁 目录 第一章绪论......................................................... . (2) 1.1电子密码锁简介......................................................... .. (2) 1.2电子密码锁设计的背景及意 义............................................................................. . (3) 第2章总体设计............................................................................. . (3) 2.1设计分析............................................................................. (3) 2.2系统结构............................................................................. (4) 第3章硬件电路设计............................................................................. (5) 3.1单片机最小系统设计............................................................................. . (5) 3.1.1时钟电路............................................................................. (5) 3.1.2 复位电 路 ............................................................................ . (6) 3.1.3 最小系 统 ............................................................................

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

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

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

电子密码锁设计毕业设计论文

*****大学******学院 毕业设计(论文) 设计说明书 设计(论文)题目: 电子密码锁设计 学生:****** 专业:电子信息工程 班级:电信**-* 指导教师:****** 设计日期:2015年6月10日

******大学******学院 毕业设计(论文)任务书 毕业设计(论文)题目: 电子密码锁设计 原始资料: 20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对它的研究一直没有明显进展。 目前,在西方发达国家,电子密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。在我国电子锁整体水平尚处于国际上70年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供应市场。但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。国内的不少企业也引进了世界上先进的技术,发展前景非常可观。希望通过不断的努力,使电子密码锁在我国也能得到广泛的应用。 电子防盗锁广泛应用于金融业,其根本的作用是“授权”,即被“授权”的人才可以存取钱、物。广义上讲,金融业的“授权”主要包括以下三种层次的内容: 1、授予保管权,如使用保管箱、保险箱和保险柜; 2、授予出入权,如出入金库、运钞车和保管室; 3、授予流通权,如自动存取款。 毕业设计(论文)主要内容: 拟在此电子密码锁的系统中设计主要由三部分组成:4×4矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。另外系统还有LED提示灯,报警蜂鸣器等。系统能完成本机超时报警、超次锁定、修改用户密码基本的密码锁的功能。 本设计的任务拟采用单片机(STC89C52)作为单片机的核心单元,利用单片机串行发射、接收等功能而设计的一款具有本机开锁和报警功能的电子密码锁。本系统成本低廉,功能实用。 本系统根据设定好的密码,采用4×4键盘实现密码的输入功能,当密码输入正确之后,锁就打开,如果输入的密码不正确,就锁定按键3秒钟,同时发出报警声。 (1)单片机型号可选STC89C52。 (2)6位密码的设定在程序中完成。 (3)密码的输入采用4×4键盘实现,输入6位数字后,按回车键结束。 (4)若输入的密码正确,锁打开,同时用发光二极管亮1秒作为提示。 (5)报警可采用蜂鸣器或扬声器。

基于单片机的密码锁

基于单片机的密码锁 在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开 锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。 随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。 为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。 密码锁具有安全性高、成本低、功耗低、易操作等优点。 在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在 技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是 单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外, 还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、 可靠性,应用日益广泛。 随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只

能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容 易机械损坏,IC卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子 密码锁是这类电子防盗产品的主流。 基于以上思路,本次设计使用ATMEL公司的AT89C51实现一基于单片机的电子密码锁的设计,其主要具有如下功能: (1)设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。 (2)密码可以由用户自己修改设定(只支持6位密码),锁打开后才能 修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要 二次确认,以防止误操作。 (3)报警、锁定键盘功能。密码输入错误数码显示器会出现错误提示, 若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。 电子密码锁的设计主要由三部分组成:4×4矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。另外系统还有LED提示灯,报警蜂鸣器等。 密码锁设计的关键问题是实现密码的输入、清楚、更改、开锁等功能: (1)密码输入功能:按下一个数字键,一个“-”就显示在最右边的 数码管上,同时将先前输入的所有“-”向左移动一位。 密码清除功能:当按下清除键时,清除前面输入的所有值,并清(2) 除所有显示。 (3)密码更改功能:将输入的值作为新的密码。 (4)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如 果正确锁打开,否则不打开。

单片机课程设计——基于C51简易计算器

单片机双字节十六进制减法实验设计 摘要 本设计是基于51系列的单片机进行的双字节十六进制减法设计,可以完成计 算器的键盘输入,进行加、减、3位无符号数字的简单运算,并在LED上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机,输入采用5个键盘。显示采用3位7段共阴极LED动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,最终选用KEIL公司的μVision3软件,采用汇编语言进行编程,并用proteus 仿真。 引言 十六进制减法计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。 单片机课程设计既要让学生巩固课本学到的理论,还要让学生学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,十进制加法计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生的个人创新能力,并提高学生对单片机的兴趣,同时学习查阅资料、参考资料的方法。 关键词:单片机、计算器、AT89C51芯片、汇编语言、数码管、加减

目录 摘要 (01) 引言 (01) 一、设计任务和要求............................. 1、1 设计要求 1、2 性能指标 1、3 设计方案的确定 二、单片机简要原理............................. 2、1 AT89C51的介绍 2、2 单片机最小系统 2、3 七段共阴极数码管 三、硬件设计................................... 3、1 键盘电路的设计 3、2 显示电路的设计 四、软件设计................................... 4、1 系统设计 4、2 显示电路的设计 五、调试与仿真................................. 5、1 Keil C51单片机软件开发系统 5、2 proteus的操作 六、心得体会.................................... 参考文献......................................... 附录1 系统硬件电路图............................ 附录2 程序清单.................................. 一、设计任务和要求

基于51单片机的无线电子密码锁课程设计

单片机课程设计报告书 基于89C51单片机 课题名称 无线电子密码锁的设计姓名刘武 学号131220330 学院通信与电子工程学院 专业电子信息工程 指导教师祝秋香讲师 2015年12月20日

基于89C51单片机无线电子密码锁的设计 1 设计目的 (1)了解MCS-51单片机使用方法和熟悉蓝牙模块; (2)掌握AT89C51芯片的使用方法及蓝牙模块的连接与使用; (3)熟悉单片机程序仿真软件Proteus的使用; (4)了解MCS-51单片机开发板工作原理以及芯片的组合; (5)熟悉无线电子密码锁的设计及实现。 2设计思路 2.1 选择设计电路 设计51单片机与蓝牙连接的电路。 2.2 所选设计电路的原因 (1)由于无线电子密码锁的设计需要用到蓝牙模块,用到的单片机资源并不是很多,而51单片机的资源有8位CPU、4KB的ROM、128B的RAM、2个16位定时/计数器、4组8位的I/O、1个串口和5个中断源,可以更有效率的利用到51单片机的资源。 (2)可现实无线功能的模块有:蓝牙模块、无线模块、红外遥控模块,因为相对之下,蓝牙模块更容易实现,更容易操作,最后选择蓝牙模块实现手机远程控制。 (3)为了提高效率,可以利用51单片机开发板的硬件,用LED灯模拟密码锁的开关,当LED灯亮起时代表锁已经开启,熄灭则代表密码锁被关闭。应用在实际中可用继电器替代LED的亮灭去控制强电开关。 3 设计过程 3.1 设计总框图 无线电子密码锁分为两个主要功能模块:51单片机模块,蓝牙实现模块。这两个模块共同工作完成本电路的功能实现。其中利用AT89C51芯片来实现51单片机模块功能,完成数码管、发光二极管的实现,同时利用HC06蓝牙模块来

(完整版)基于51单片机的4人抢答器课程设计

基于51单片机的4人抢答器设计 设计要求: 以单片机为核心,设计一个4位竞赛抢答器:同时供4名选手或4个代表队比赛,分别用4个按钮S0~S3表示。 设置一个系统清除和抢答控制开关S,开关由主持人控制。 抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。 抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。 当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间为0.5s左右。 参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。 工作原理: 通过键盘改变抢答的时间,原理与闹钟时间的设定相同,将定时时间的变量置为全局变量后,通过键盘扫描程序使每按下一次按键,时间加1(超过30时置0)。同时单片机不断进行按键扫描,当参赛选手的按键按下时,用于产生时钟信号的定时计数器停止计数,同时将选手编号(按键号)和抢答时间分别显示在LED上。

#include #define uchar unsigned char #define uint unsigned int uchar num; //定义中断变量,num计满20表示1秒时间到uchar num1; //十秒倒计时显示初始值 uchar flag1,flag2; //清零键及开始键按下标志位 uchar flag3,flag4=0; //定义键盘按下标志位 uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f}; //数码管编码

毕业设计_电子密码锁的设计

毕业综合实训报告 实训题目: WFS-907电子密码锁专业: 楼宇智能化工程技术

呼和浩特职业学院毕业综合实训报告任务书楼宇智能化工程技术 姓名学号11031200 11 班级1班年级11级专业 楼宇智能 化工程技 术 通信地址呼和浩特职业学院 邮政 编码 010050 E-mail 地址 电话 毕业综合实训报告题 目 WFS-907电子密码锁 指导教师姓名职称工作单位及所从事专业联系方式备注 教师呼和浩特职业学院 毕业综合实训报告要求: 1、查阅技术资料对综合实训项目进行电路原理分析; 2、元件选择(识别、筛选与测试) 3、电路板焊接与装配 4、软、硬件调试 5、独立撰写规范的实训报告,编写技术文件并对实训结果进行分析、讨论和总结。 教 研 室 审 批 意 见 教研室负责人: 年月日系 部 审 批 意 见审核人签字: 年月日 备注 1、任务书由指导教师填写,一式二份。其中学生一份,指导教师一份。 2、审批若不能通过,需重新填报此表。不通过的原因如下:(请画○标明) A、任务不明确; B、雷同;(同学之间或其它方) C、其他原因

目录 摘要.................................................... (4)矚慫润厲钐瘗睞枥庑赖。 一、概述 (4) 1.1. 关于密码锁 (4) 1.2. 系统设计要求及内容 (5) 二、实训目的 (5) 三、实训内容和步骤 (5) 3.1. 主要元器件 (5) 3.1.1. 主控芯片AT89C51 (5) 3.1.1.1. AT89C51简介 (5) 3.1.1.2. AT89C51 主要特性及其概述........... (6)聞創沟燴鐺險爱氇谴净。 3.1.1.3. AT89C51管脚说明 (6) 3.1.2. 存储芯片AT24C02 (9) 3.1.2.1. AT24C02概述 (9) 3.1.2.2. AT24C02管脚描述 (9) 3.1.2.3. AT24C02特性 (10) 3.1.3. 三位共阳数码管 (10) 3.1.3.1. 三位共阳数码管驱动方式--动态显示驱动(10)残骛楼諍锩瀨濟溆塹籟。 3.1.4. 晶体振荡器 (11) 3.1.5. BJ015音乐集成电路 (12) 3.1.6. 7805三端稳压管 (12) 3.1.6.1. 三端稳压管简述 (12) 3.1.6.2. 7805三端稳压管主要参数 (13) 3.1.6.3. 7085三端稳压管工作原理 (13) 3.2. 设计原理及原理图分析 (13) 3.2.1. 设计原理 (13) 3.2.2. 设计原理图 (14) 3.2.3. 原理图分析 (14) 3.2.3.1. 键盘输入电路 (14) 3.2.3.2. 密码储存电路 (15)

51单片机密码锁程序

自己做的基于单片机的密码锁设计(c语言设计) 时间:2011-08-16 21:08:01 来源:作者: 自己做的基于单片机的密码锁设计(c语言设计) 系统说明 该系统如图所示使用了80C51单片机、普通键盘、排阻、1602液晶。 该系统的功能: ①该系统输入正确的密码LED灯会亮(其实就是很多操作都可以,用LED只是 代表作用,主要是操作简单,效果明显。) ②系统可以修改密码;(系统断电后重启后必须用初始密码(初始密码是:000000) 重新改密,当然修改的密码可以与掉电前的一样。) 具体操作: ①系统开机时显示请输入密码的提示,直接输入密码#键确认 ②系统会自动提醒密码错误,数秒后系统会再次提醒重新输密码。 ③在系统提醒输入密码的界面可以按*键修改密码,系统会提醒输入两次密码,并 且会检查两次密码是否相同。同则修改成功。否则在数秒后可以重新按*键修改。 ④在改密前(就是按了*键后系统)会提醒身份识别,请输入旧密码,系统判断旧 密码正确方可更改密码。 源程序 #include #define uchar unsigned char #define uint unsigned int sbit lcdrs=P3^0; sbit lcdrw=P3^1; sbit lcden=P3^2; sbit h1=P1^0; sbit h2=P1^1; sbit h3=P1^2; sbit sa=P1^3; sbit sb=P1^4; sbit sc=P1^5; sbit sd=P1^6; sbit kd=P3^7; uchar code table[]=" PLEASE INPUT "; uchar code table1[]="CODE: "; uchar code table2[]=" *****WIN*****"; uchar code table3[]=" PLEASE AFFIRM"; uchar code table4[]=" *****FAIL*****"; uchar code table5[]=" MODIFICATION"; uchar code table6[]=" IDENTITY LIMITS "; uchar unm,M1,M2,M3,M4,M5,M6,sex,k1,k2,k3,k4,k5,k6,flge,flge1; uchar q1,q2,q3,q4,q5,q6,w1,w2,w3,w4,w5,w6,g;

相关主题
文本预览
相关文档 最新文档