实验名称 eda课程设计。
课程名称 8位数字密码锁设计。
专业班级电子科学与技术。
学生姓名 指导教师
实验日期 2017-10-18
1 实验目的与要求。
实验目的:设计一个电子密码锁,要求是设定6位的密码锁,从键盘输入密码,可用6个数码管显示输入的密码位数。密码输入正确后即可开锁,输入三次错误密码就不断报警。
实验内容:. 电子密码锁的硬件的选择。
1.1主控芯片。
本次设计采用的单片机芯片是a t89s52。a t89s52是一种低功耗、高性能cmos8位微控制器,具有8k 在系统可编程flash 存储器、节ram位i/o口线,看门狗定时器、2个数据指针、三个16位定时器、计数器、一个6向量2级中断结构、全双工串行口、片内晶振及时钟电路。
1.2eeprom 数据存储器24c02, 。本次设计采用24c02芯片为密码存储器,宰掉电的情况下可以继续保存数据。
24c02芯片作为系统的从器件,它与主器件之间的通信遵循i^2c总线协议,协议规定任何将数据传送到总线的器件作为发送器,任何从总线接收数据的器件为接收器。
串入并出移位寄存器74hc164。它是高速硅门cmos 器件,与低功耗肖特基型ttl 器件的引脚兼容,是8位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端之一串行输入,任一输入端可以用作高电平使能端,控制另一输入端的数据输入。
两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不能悬空。时钟每次由低变高时,数据右移一位,输入到q0,主复位输入端上的一个地电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。
1.4八位数据锁存器74273。74273芯片是八位高速寄存器,其内部由8个d 锁存器构成,有共同的时钟输入端和异步复位器。
其特性有:边沿触发、8位高速寄存器、数据并入并出、同步时钟,异步复位。
2、系统硬件各部分电路。
2.1数据处理及控制。
本次设计中,由a t89s52芯片连同附加电路构成的单片机最小系统作为数据处理及控制部分。
2.2键盘输入。
本次采用行列式键盘作为密码锁系统的输入部分,把2单个按键按4*4格式组合成键盘,四条行线连接到单片机的p1.0~p1.3四条i/o口线上,四条列线连接到单片机芯片的p1.
4~p1.7四条i/o口线上,在系统运行时,通过检测每条行线和列线上的电平变化,即可判断出用户输入的为何种信息,其电路连接图如下图所示:
2.3密码存储。
本次设计采用在掉电情况下依然能保存数据的eeprom 存储芯片24c02作为密码存储部分的记忆芯片,在电子密码锁系统中,系统需要存储的密码仅有6位,数量较小,所以,芯片的地址选择端口可以直接接地线,只需把芯片的时钟输入端口(sck )和数据输入端口(sda )和单片机相连,其电路图。
2.4显示部分。
电子密码锁系统需要显示的信息少,故采用七段led 数码显示器,数据传输采用串行方式,由单片机的串行数据口p3.0发送,在经过74hc164串行移位寄存器把串行数据转换成8位并行数据,用以驱动七段led 数码显示管。电路图如下:
本次设计得程序:
void main()
uchar i = 0;
uchar iic_password[10];
uchar is_valid_user = 0;
p0 = 0xff;
p1 = 0xff;
p2 = 0xff;
tmod = 0x02; /t0设置为8位自动重装模式 th0 = 175;
tl0 = 175;
tr0 = 1; /启动t0
delayms(10)
/将24c04中预先写入的密码读入pass
recstring(0xa0, 0 , iic_password, 6);
iic_password[6] =0';
while(1)
p1 = 0xf0;
if(p1 !=0xf0) keyno = keys_scan();扫描键盘获取键序号keyno
switch ( keyno )
case 0: case 1: case 2: case 3: case 4:
case 5: case 6: case 7: case 8: case 9:
if ( i<= 5 ) 密码限制在6位以内 {
/如果i 为0则执行一次清屏。
if (i ==0) display_string(" 0x40);
userpassword[i] =keyno + 0';
userpassword[i+1] =0';
dsy_buffer[i] =
dsy_buffer[i+1] =0';
display_string(dsy_buffer,0x40);
i++;break;
case 10: /按a 键开锁。
if (strcmp(userpassword,iic_password) =0) {
led_open = 0; /点亮led
clear_password();
display_string("unlock ok! "0x40);
实验心得: 在这次的课程设计中也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学相互**,相互学习,相互监督。
学会了合作,学会了宽容,学会了理解,也学会了做人与处世,在设计的过程中培养出了我们的团队精神。
EDA课程设计实验报告
课题名称 16 16点阵显示。专业 通信工程。班级 2013级通信工程 2 班。学号 12013241953 姓名 刘乐。指导教师 杨泽林。完成时间 2015年12月18号。一 设计目的。二 课题的主要功能。三 课题的功能模块划分。四 主要功能的实现。五 实验程序。六 系统调试与 七 总结与体会。一...
EDA课程设计
题目一 数字钟设计 学号1 15 一 实验目的。学习并掌握数字钟的原理 设计方法。二 实验内容。计数始终由模60秒计数器 模60分计数器 模24小时计数器 报时模块 分 时设定模块及输出显示模块构成。可以采用同步计数器或异步计数器设计方法。三 实验要求。计时范围为0小时0分0秒至23小时59分59秒...
eda课程设计
哈尔滨工业大学 威海 信电学院电子信息工程。一 软硬件介绍。1软件部分介绍。1.1 quartus ii 是altera公司的综合性pld fpga开发软件,支持原理图 vhdl veriloghdl以及ahdl altera hardware description language 等多种设计输...