单片机——电子密码锁设计

老廖
2021-04-09 / 66 评论 / 263 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年04月09日,已超过241天没有更新,若内容或图片失效,请留言反馈。

信息学院课程设计报告

**

课程名称: 单片机原理与应用
题 目: 电子密码锁设计
学生姓名:XXX 学 号: xxxxx
学生姓名: XXXX 学 号:XXXX
学 院: 信息学院
专业年级: XXXX
指导教师: XXXX
职 称: 讲 师 **

湖南人文科技学院信息学院制

*目 录 *
第一章 电子密码锁介绍
1.1电子密锁概述
1.2电子密码锁及发展与应用
1.3 设计目标及要求
第二章 软件设置
2.1 软件设计思路
2.2 程序流程
第三章 硬件设置
4、1 LCD
4、2 EEFROM
4、3矩阵键盘
第四章 总结与体会
5.1 总结

  1. 2体会
    附录A C语言源代码

参考文献

第1章电子密码锁介绍

1.1电子密码锁概述
本设计中,电子密码锁使用STC89C52单片机控制,采用C语言编写,通过Proteus软件仿真并进行了实物焊接。电子密码锁通过矩阵键盘进行密码输入,1602A液晶显示模块进行显示。其可实现的功能有: (1) 通过切换对输入的4位密码进行显示或隐藏; (2) 通过发光二极管和蜂鸣器,对解密正确或者错误进行声光报警; (3) 4位密码修改; (4) 在密码遗失情况下,通过初始密码进行密码再设置;
(5)采用AT24C02外部存储器,完成断电密码保护功能;
(6)具有1-9次的解锁次数任意设定功能; (7) 模拟密码箱随机产生密码,并进行解码。本设计特色为采用1602A液晶显示模块,这使得显示更加直观、使用更加方便。密码可实现显示和隐藏切换,通过隐藏密码实现密码保护。


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


1.3设计目标及要求
功能:
1、密码的设定,此密码是固定在程序存储器ROM中,假设预设的密码为“123456”共6位密码。
2、密码的输入: 用4*4矩阵键盘中的10个按键分别表示0~9的数字,完成6位密码的输入。
3、密码的修改:能够修改密码,修改以后的密码掉电不丢失,即下一次上电以后用新设定密码进入系统。
4、密码错误蜂鸣器发出报警音。


第2章 软件设置
2.1 软件设计思路
电子密码锁工作的主要过程是LCD1602液晶显示器提示开始输入密码,通过矩阵键盘输入密码,同时由液晶显示器显示输入的情况,到输入完成后系统自动作出判断,作出开锁或闭锁处理。
密码的设定,在本设计中的程序中输入的密码是保存在30H- -46H 中的。在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。


2.2程序流程
在这里插入图片描述
;-图3主程序流程图


**
第三章、硬件设置 **
3、1 LCD
LCD为液晶显示器,主要由LCD控制器、LCD驱动器、LCD显示装置。
它的16条引脚定义如下:在这里插入图片描述

对这个表的说明:


3.2 EEPROM
EEPROM 用于保存数据。一般保存在单片机RAM中的数据,掉电后就丢失了,为使掉电后数据不丢失,故使用EEPROM,其特点就是掉电后数据不丢失。


3.3 矩阵键盘
由于本设计中要求使用16个按键输入,为减少键盘与单片机接口时所占用的I/O线的数目,故使用矩阵键盘,本设计中,矩阵键盘行线和单片机的P1.0-P1.3相连,列线与单片机P1.4-P1.7相连。矩阵键盘设计电路图,如图2所示。
键盘扫描采用行扫描法,即依次置行线中的每一行为低电平,其余均为高电平,扫描列线电平状态,为低电平即表示该键按下。
在这里插入图片描述


**
第4章 总结与体会**
4.1 总结
1.根据原理和芯片引脚图,分功能设计原理图,并根据接线顺序分步骤验证。
2.利用开发板来实现设计功能,先要对开发板进行了解。线路搭建时可参考开发板的原理图,对照着进行连接。
3.导线连接时对开发板内部连接不清楚,易造成连线不正确。
4.注意6个数码管的放大电路的组建。
5.检查故障时除测试输入、输出信号外,要注意电源、接地和控制引脚。
6.程序编写的细微差错,引起程序编译不通过。


4.2 体会
单片机课程设计是电类专业学生重要基础实践课是工科专业的必修课。经过查资料、选方案、设计电路、撰写设计报告、使我得到一次较全面的工程实践训练。理论联系实际,提高和培养创新能力,为后续课程的学习,毕业设计,毕业后的工作打下基础。进过此次的实践,我学会了很多。通过这次设计,我受益匪浅。课程设计是一次综合性的实践,它将各种知识结合到一起综合运用到实践上来扩展、弥补、串联所学的知识。通过本次课程设计我得到了很多收获。首先,了解了单片机的基本知识和在控制领域的作用和地位。其次掌握了C语言的编写程序,学会了使用PROTUTES和KEIL的仿真来实现,同时掌握了如何收集、查阅、应用文献资料,如何根据实际需要有选择的阅读书籍和正确确定系统所要使用的元器件的类型。再次,在精神方面锻炼了思想、磨练了意志。不仅可以充分的体会到自己动手实践的乐趣,获得哪怕是前进一小步时候的那种成功的喜悦,还有利于我们学习能力的提高,有利于我们团队精神的培养,有利于我们心理素质的锻炼。
在此次的基于单片机的电子密码锁设计过程中,更进一步地熟悉了芯片的结构及掌握了频率计的工作原理和其具体的使用方法.在设计电路中,往往是先仿真后连接实物图,但有时候仿真和电路连接并不是完全一致的,例如仿真的连接示意图中,往往没有接高电平以及接低电平,因此在实际的电路连接中往往容易遗漏。在这段时间内我们积极查找有关资料,相互讨论,不断总结经验,吸取教训。虽然在此期间我们也有过分歧,遇到过很多的问题。



附录A
2.C语言源代码分析:
`/**

     电子密码锁

**/
//密码锁

include<reg52.h>

include <intrins.h>

include<string.h>

define uchar unsigned char

define uint unsigned int

define LCD1602_DB P0

sbit LCD1602_RS = P1^0;
sbit LCD1602_RW = P1^1;
sbit LCD1602_E = P1^5;
sbit I2C_SCL = P3^7;
sbit I2C_SDA = P3^6;
sbit buzz=P1^6;
bit buz=0;
extern void InitLcd1602();
extern void LcdShowDat(uchar x, uchar y, uchar dat);
extern void LcdShowStr(uchar x, uchar y, uchar *str);
extern void I2CStart();
extern void I2CStop();
extern bit I2CWrite(unsigned char dat);
extern unsigned char I2CReadNAK() ;
extern unsigned char E2ReadByte(addr);
extern void E2WriteByte(unsigned char addr, unsigned char dat);
bit ksetf=0;
bit kokf=0;
bit kinf=0;
bit jflag=0;
bit rflag=0;
void setpassword();
void inputpassword();
extern void LcdWriteCmd(uchar cmd);

uchar str[10]="mi ma suo";
uchar str1[17]="set the password";
uchar str2[15]="input password";
uchar str3[12]="set success";
uchar str4[7]="unlock";
uchar str5[6]="error";

void judge(uchar s);
unsigned char key=17;

unsigned char code keycode[]={
0xe7,0xd7,0xb7,0x77,
0xeb,0xdb,0xbb,0x7b,
0xed,0xdd,0xbd,0x7d,
0xee,0xde,0xbe,0x7e,
};

void delay_ms(unsigned int cnt)
{

unsigned char i;
while(cnt--){
for(i=0;i<=110;i++);
}    

}

void ScanKeyboard()
{

unsigned char s1,s2,keyboard;
unsigned char i;
P2=0xf0;
s1=P2;
if((s1&0xf0)!=0xf0)
{
    delay_ms(30);
    s1=P2;
    if((s1&0xf0)!=0xf0)
    {
    P2=0x0f;
    s2=P2;
    keyboard=s1|s2;
    while((P2&0x0f)!=0x0f);
    for(i=0;i<=15;i++)
        {
            if(keyboard==keycode[i])
            key=i+1;
            jflag=1;                    
        }
    }
}

}

void clock()
{

if(buz==1)
{buzz=~buzz;}

}
void main()
{

 
uchar t;
InitLcd1602();
buzz=1;    
while(1)
{    
       clock();
    LcdShowStr(0,0,str);
    delay_ms(11);
    ScanKeyboard();
    t=key;
    judge(t);
    if(ksetf==1)/t the password
    {
        kokf=0;
        LcdWriteCmd(0x01);      // 清屏
        
        LcdShowStr(0,0,str1);
        setpassword();

        LcdWriteCmd(0x01);      // 清屏
        
        LcdShowStr(0,0,str3);//success
        delay_ms(1000);
        ksetf=0;
    }
    if(kinf==1)    //input password
    {
        kokf=0;
        LcdWriteCmd(0x01);      // 清屏
        buz=0;
        LcdShowStr(0,0,str2);
        inputpassword();
        //result
        if(rflag)
        {
        LcdWriteCmd(0x01);      // 清屏            
        LcdShowStr(0,0,str4); //unlock
        delay_ms(2000);
        rflag=0;
        }
        else
        {    buz=1;
            LcdWriteCmd(0x01);
            LcdShowStr(0,0,str5);//error
            delay_ms(2000);
            rflag=0;
        }
        kinf=0;
    }
    LcdWriteCmd(0x01);      // 清屏
}

}
//判断功能键
void judge(uchar s)
{

if(s==14)ksetf=1;
if(s==15)kinf=1;
if(s==16)kokf=1;    

}
//设置密码
void setpassword()
{

    uchar t,x=0,y=0x2a,i,n;
    uint m=0;
    idata uchar password[16];
    while(1)
    {    
        jflag=0;
        ScanKeyboard();
        t=key;        
        judge(t);
        if(kokf==1)
        {
            kokf=0;
            for(i=0;i<x;i++)
            {
                n=password[i];
                E2WriteByte(i,n);
                delay_ms(8);    
            } 
            E2WriteByte(0x0f,m);//密码写入ROM保存
            x=0;m=0; 
            break;
        }
        t+=0x30;
        if(jflag)
        {
            password[x]=t;     
            LcdShowDat(x,1,t);
            delay_ms(800);
            LcdShowDat(x,1,y);
            x++;m++;
            jflag=0;
        }
        if(x>=16)break;            
    }

}
//输入密码
void inputpassword()
{

uchar t,x=0,y=0x2a,i;
uint m=0;
idata uchar l[16];    
idata uchar password[16];
while(1)
    {
        
        jflag=0;
        ScanKeyboard();
        t=key;
        judge(t);
        if(kokf==1)
          {
            kokf=0;    
            m=E2ReadByte(0x0f);            
            for(i=0;i<m;i++)
            {
                 l[i]=E2ReadByte(i);    //读取密码                            
            }                            
            if(strcmp((char*)password,(char*)l)==0){rflag=1;buz=0;}
            
            for(i=0;i<x;i++)
            {password[i]='\0';}    
            x=0;                    
            break;
          }
        t+=0x30;
        if(jflag)
        {
            password[x]=t;     
            LcdShowDat(x,1,t);
            delay_ms(800);
            LcdShowDat(x,1,y);
            x++;
            jflag=0;
        }
        if(x>=16)break;
    }

}

//ROM

include <reg52.h>

include <intrins.h>

define uchar unsigned char

define uint unsigned int

define I2CDelay() {_nop_();_nop_();_nop_();_nop_();}

sbit I2C_SCL = P3^7;
sbit I2C_SDA = P3^6;

/ 产生总线起始信号/
void I2CStart()
{

I2C_SDA = 1; //首先确保SDA、SCL都是高电平
I2C_SCL = 1;
I2CDelay()
I2C_SDA = 0; //先拉低SDA
I2CDelay()
I2C_SCL = 0; //再拉低SCL

}
/ 产生总线停止信号/
void I2CStop()
{

I2C_SCL = 0; //首先确保SDA、SCL都是低电平
I2C_SDA = 0;
I2CDelay();
I2C_SCL = 1; //先拉高SCL
I2CDelay();
I2C_SDA = 1; //再拉高SDA
I2CDelay();

}
/ I2C总线写操作,dat-待写入字节,返回值-从机应答位的值/
bit I2CWrite(unsigned char dat)
{

bit ack;  //用于暂存应答位的值
unsigned char mask;  //用于探测字节内某一位值的掩码变量
for (mask=0x80; mask!=0; mask>>=1) //从高位到低位依次进行
{
    if ((mask&dat) == 0)  //该位的值输出到SDA上
        I2C_SDA = 0;
    else
        I2C_SDA = 1;
     I2CDelay();
    I2C_SCL = 1;          //拉高SCL
    I2CDelay();
    I2C_SCL = 0;          //再拉低SCL,完成一个位周期
}
  I2C_SDA = 1;    //8位数据发送完后,主机释放SDA,以检测从机应答
               I2CDelay();
               I2C_SCL = 1;    //拉高SCL
               ack = I2C_SDA; //读取此时的SDA值,即为从机的应答值
               I2CDelay();
               I2C_SCL = 0;   //再拉低SCL完成应答位,并保持住总线
               return ack;    //返回从机应答值

}

unsigned char I2CReadNAK()
{

unsigned char mask;
unsigned char dat;
I2C_SDA = 1;  //首先确保主机释放SDA
for (mask=0x80; mask!=0; mask>>=1) //从高位到低位依次进行
{
    I2CDelay();
    I2C_SCL = 1;       //拉高SCL
    if(I2C_SDA == 0)  //读取SDA的值
        dat &= ~mask; //为0时,dat中对应位清零
    else
        dat |= mask;  //为1时,dat中对应位置1
    I2CDelay();
    I2C_SCL = 0;      //再拉低SCL,以使从机发送出下一位
            }
     I2C_SDA = 1;   //8位数据发送完后,拉高SDA,发送非应答信号
I2CDelay();
I2C_SCL = 1;   //拉高SCL
I2CDelay();
I2C_SCL = 0;   //再拉低SCL完成非应答位,并保持住总线
return dat;

}

    /* 读取 EEPROM 中的一个字节, addr -字节地址 */ 

unsigned char E2ReadByte(addr)
{

unsigned char dat;
I2CStart();
I2CWrite(0x50<<1); //寻址器件,后续为写操作
I2CWrite(addr);    //写入存储地址
I2CStart();         //发送重复启动信号
I2CWrite((0x50<<1)|0x01); //寻址器件,后续为读操作
dat = I2CReadNAK();        //读取一个字节数据
I2CStop();
return dat;

}

    /*向EEPROM中写入一个字节,addr-字节地址*/

void E2WriteByte(unsigned char addr, unsigned char dat)
{

I2CStart();
I2CWrite(0x50<<1); //寻址器件,后续为写操作
I2CWrite(addr);    //写入存储地址
I2CWrite(dat);     //写入一个字节数据
I2CStop();

}

//LCD

include<reg52.h>

define uchar unsigned char

define LCD1602_DB P0

sbit LCD1602_RS = P1^0;
sbit LCD1602_RW = P1^1;
sbit LCD1602_E = P1^5;
void InitLcd1602();
void LcdShowStr(uchar x, uchar y, uchar *str);
void LcdShowDat(uchar x, uchar y, uchar dat);
/ 等待液晶准备好 /
void LcdWaitReady()
{

uchar sta;
LCD1602_DB = 0xFF;
LCD1602_RS = 0;
LCD1602_RW = 1;
do
{
    LCD1602_E = 1;
    sta = LCD1602_DB;  //读取状态字
    LCD1602_E = 0;
}while(sta & 0x80); //bit7=1表示液晶正忙,重复检测直到其等于0为止

}

/ 向LCD1602液晶写入一字节命令,cmd为待写入命令值/
void LcdWriteCmd(uchar cmd)
{

LcdWaitReady();
LCD1602_RS = 0;
LCD1602_RW = 0;
LCD1602_DB = cmd;
LCD1602_E = 1;
LCD1602_E = 0;

}

/ 向LCD1602液晶写入一字节数据,dat为待写入数据值/
void LcdWriteDat(uchar dat)
{

LcdWaitReady();
LCD1602_RS = 1;
LCD1602_RW = 0;
LCD1602_DB = dat;
LCD1602_E = 1;
LCD1602_E = 0;

}

/ 设置显示RAM起始地址, (x,y)-对应屏幕上的字符坐标 /
void LcdSetCursor(uchar x, uchar y)
{

uchar addr;
if(y == 0)         //由输入的屏幕坐标计算显示RAM的地址
    addr = 0x00+x;       //第一行字符地址从0x00起始
else
    addr = 0x40+x;      //第二行字符地址从0x40起始
LcdWriteCmd(addr | 0x80);  //设置RAM地址

}

/在液晶上显示数字,(x,y)-对应屏幕上的起始坐标,dat为待显示数字/
void LcdShowDat(uchar x, uchar y, uchar dat)
{

LcdSetCursor(x, y);     //设置起始地址
LcdWriteDat(dat);     //写入数据

}

/初始化1602液晶/
void InitLcd1602()
{

LcdWriteCmd(0x38);      // 16*2显示,5*7点阵,8位接口
LcdWriteCmd(0x0C);      // 显示器开,光标关闭
LcdWriteCmd(0x06);      // 文字不动,地址自动加1
LcdWriteCmd(0x01);      // 清屏

}

//在液晶上显示字符串,(x,y)-对应屏幕上的起始坐标,
void LcdShowStr(uchar x, uchar y, uchar *str)
{

LcdSetCursor(x, y);      //设置起始地址
while(*str != '\0')      //连续写入字符串数据,直到检测到结束符
{
    LcdWriteDat(*str++); //先取str指向的数据,然后str自加1
}

}`

参考文献

[1] 楼然苗、李光飞.单片机课程设计指导(第2版)[M].北京:北京航空航天大学出版社,2013.
[2] 杨恢先、黄辉先.单片机原理及应用 [M].湘潭:湘潭大学出版社,2003.
[3] 周兴华.手把手教你学单片机C语言程序设计[M].北京:北京航空航天大学出版社,2007.
[4] 彭伟. 单片机C语言程序设计实训100例[M].电子工业出版社,2009.
[5]康华光.电子技术基础(数字部分)[M]. 高等教育出版社. 1998.
[6]康华光.电子技术基础(模拟部分)[M]. 高等教育出版社. 1998.

0

评论 (66)

取消
  1. 头像
    gabapentin mg
    Windows 10 · Google Chrome

    Mebendazole Over The Counter Canada

    回复
  2. 头像
    unfomeons
    Windows 7 · Google Chrome

    neurontine

    回复
  3. 头像
    gabapentin side effect
    Windows 10 · Google Chrome

    How To Mail Order Cheap Viagra

    回复
  4. 头像
    Fraurry
    Windows 10 · Google Chrome

    http://buyneurontine.com/ - gabapentin 300 mg

    回复
  5. 头像
    canada can you buy prednisone
    Windows 8.1 · Google Chrome

    Acquisto Viagra Italia

    回复
  6. 头像
    Fraurry
    Windows 10 · Google Chrome

    https://buyneurontine.com/ - gabapentin dogs

    回复
  7. 头像
    vieviesee
    Windows 10 · Google Chrome

    https://prednisonebuyon.com/ - Prednisone

    回复
  8. 头像
    vieviesee
    Windows 7 · Google Chrome

    https://prednisonebuyon.com/ - dosage prednisone in humans

    回复
  9. 头像
    unfomeons
    Windows 10 · Google Chrome

    gabapentin side effects

    回复
  10. 头像
    sefiave
    Windows 10 · Google Chrome

    prednisone high

    回复
  11. 头像
    sefiave
    Windows 7 · Google Chrome

    buy prednisone 5mg

    回复
  12. 头像
    gwxvfwhnzx
    Windows XP · Internet Explore

    单片机——电子密码锁设计 - 老廖&&Games
    [url=http://www.gu9lco2079976h6mmxgm717n55vfsb09s.org/]ugwxvfwhnzx[/url]
    gwxvfwhnzx http://www.gu9lco2079976h6mmxgm717n55vfsb09s.org/
    agwxvfwhnzx

    回复
  13. 头像
    Lasix
    Windows 7 · Google Chrome

    Compresse Cialis

    回复
  14. 头像
    Bruinee
    Windows 7 · Google Chrome

    Lasix

    回复
  15. 头像
    lasix water pill
    Windows 10 · Google Chrome

    cialis marketing strategy

    回复
  16. 头像
    CeaxVally
    Windows 10 · Google Chrome

    http://buylasixshop.com/ - Lasix

    回复
  17. 头像
    Zithromax
    Windows 10 · Google Chrome

    Tadalafil

    回复
  18. 头像
    jimdofreeKab
    Windows 10 · Google Chrome

    We spent a lot of time at her home. Maybe so her mother could keep an eye on us. Mrs. Spencer made sure to be around, offering drinks, snacks, chit chat. I noticed that she was fairly young herself. Granted at my age, anyone over 25 was old, but she was probably mid-30s, divorced. If she was a indiction of how Carley would develop, maybe I should wait. Mrs. Spencer had fuller breasts and a nice butt. She appeared to be in great shape for her "advanced" age. I knew she was keeping an eye on me as much as I was on her and her younger daughter. Her eldest, Sharon was away at college at the time. With Mrs. Spencer around we mostly limited ourselves to holding hands and sneaking in a few light kisses. One day Mrs. Spencer caught us by surprise walking in as I'd slid my hand up from Carley's stomach to rub her right breast through her shirt. She didn't really need a bra yet, so I could feel her nipple, hard, through her shirt. Just this much contact had me hard also.

    https://sites.google.com/view/7RTC86KBL1mvbuCP https://sites.google.com/view/c4bxv5c2rKKzkY7R

    回复
  19. 头像
    Zithromax
    Windows 10 · Google Chrome

    viagra a domicilio

    回复
  20. 头像
    Snopism
    Windows 8.1 · Google Chrome

    Priligy

    回复
  21. 头像
    nestionna
    Windows 10 · Google Chrome

    Plaquenil

    回复
  22. 头像
    Isodwig
    Windows 10 · Google Chrome

    https://buyplaquenilcv.com/ - Plaquenil

    回复
  23. 头像
    CeaxVally
    Windows 10 · Google Chrome

    https://buylasixshop.com/ - Lasix

    回复
  24. 头像
    nestionna
    Windows 8.1 · Google Chrome

    buy hcq online

    回复
  25. 头像
    buy hcq
    Windows 8.1 · Google Chrome

    Voltaren Retard

    回复
  26. 头像
    Prahdeeds
    Windows 10 · Google Chrome

    http://buyzithromaxinf.com/ - Zithromax

    回复
  27. 头像
    Isodwig
    Windows 10 · Google Chrome

    https://buyplaquenilcv.com/ - hydroxychloroquine for sale online

    回复
  28. 头像
    Priligy
    Windows 10 · Google Chrome

    Amoxicillin Treatment Course For Pneumonia

    回复
  29. 头像
    buy priligy in usa
    Windows 10 · Google Chrome

    Generic Viagra From Us Pharmacy

    回复
  30. 头像
    Prahdeeds
    Windows 8.1 · Google Chrome

    https://buyzithromaxinf.com/ - Zithromax

    回复
  31. 头像
    Bruinee
    Windows 10 · Google Chrome

    buy lasix canada no prescription

    回复
  32. 头像
    Plaquenil
    Windows 10 · Google Chrome

    comprar viagra

    回复
  33. 头像
    Phigreeli
    Windows 10 · Google Chrome

    https://buypriligyhop.com/ - where to buy priligy usa

    回复
  34. 头像
    AgrItow
    Windows 8.1 · Google Chrome

    Zithromax

    回复
  35. 头像
    AgrItow
    Windows 7 · Google Chrome

    78 buy azithromycin chlamydia treatment

    回复
  36. 头像
    Snopism
    Windows 10 · Google Chrome

    priligy sg

    回复
  37. 头像
    Phigreeli
    Windows 10 · Google Chrome

    http://buypriligyhop.com/ - does priligy work

    回复
  38. 头像
    propeciahelp
    Windows 8.1 · Google Chrome

    acheter viagra paris sans ordonnance

    回复
  39. 头像
    viagra uk boots
    Windows 10 · Google Chrome

    No Presription Finasteride

    回复
  40. 头像
    AlCorruff
    Windows 10 · Google Chrome

    viagra online free

    回复
  41. 头像
    Punteetry
    Windows 10 · Google Chrome

    ivermectin 3mg tab

    回复
  42. 头像
    Propecia
    Windows 10 · Google Chrome

    cialis water retention

    回复
  43. 头像
    indian viagra karmagra
    Windows 10 · Google Chrome

    875 Mg Amoxicillin

    回复
  44. 头像
    FlierlY
    Windows 10 · Google Chrome

    https://buytadalafshop.com/ - buy cialis online

    回复
  45. 头像
    admique
    Windows 7 · Google Chrome

    Cialis

    回复
  46. 头像
    Chusiabuh
    Windows 10 · Google Chrome

    http://buysildenshop.com/ - viagra women side effects

    回复
  47. 头像
    admique
    Windows 10 · Google Chrome

    where to buy cialis online safely

    回复
  48. 头像
    Cialis
    Windows 10 · Google Chrome

    Cheap Misoprostol

    回复
  49. 头像
    Zortabs
    Windows 10 · Google Chrome

    http://buypropeciaon.com/ - Propecia

    回复
  50. 头像
    FlierlY
    Windows 10 · Google Chrome

    http://buytadalafshop.com/ - cialis tablets for sale

    回复
  51. 头像
    Stromectol
    Windows 8.1 · Google Chrome

    Cialis Prix Lyon

    回复
  52. 头像
    Zortabs
    Windows 10 · Google Chrome

    http://buypropeciaon.com/ - propecia fast delivery

    回复
  53. 头像
    ivermectin prezzo
    Windows 10 · Google Chrome

    Vendita Levitra Per

    回复
  54. 头像
    Chusiabuh
    Windows 10 · Google Chrome

    http://buysildenshop.com/ - viagra and lisinopril interaction

    回复
  55. 头像
    Cialis
    Windows 10 · Google Chrome

    Dosage Of Keflex For Cellulitis

    回复
  56. 头像
    Edipuct
    Windows 10 · Google Chrome

    Propecia

    回复
  57. 头像
    unodemn
    Windows 10 · Google Chrome

    https://buystromectolon.com/ - ivermectin for scabies

    回复
  58. 头像
    AlCorruff
    Windows 10 · Google Chrome

    make your own viagra

    回复
  59. 头像
    Edipuct
    Windows 10 · Google Chrome

    Propecia

    回复
  60. 头像
    Punteetry
    Windows 10 · Google Chrome

    ivermectin stromectol

    回复
  61. 头像
    wjswgehwof
    Windows XP · Internet Explore

    单片机——电子密码锁设计 - 老廖&&Games
    wjswgehwof http://www.g928l325vqks3aewy35q93gq71281uros.org/
    awjswgehwof
    [url=http://www.g928l325vqks3aewy35q93gq71281uros.org/]uwjswgehwof[/url]

    回复
  62. 头像
    zwnvhfnxi
    Windows XP · Internet Explore

    单片机——电子密码锁设计 - 老廖&&Games
    azwnvhfnxi
    [url=http://www.g17avz217vh7311ep50mjm3564zbhv4ss.org/]uzwnvhfnxi[/url]
    zwnvhfnxi http://www.g17avz217vh7311ep50mjm3564zbhv4ss.org/

    回复
  63. 头像
    hsrqprsgpq
    Windows XP · Internet Explore

    单片机——电子密码锁设计 - 老廖&&Games
    [url=http://www.gozt7z31c7t9r17dzl96d51j5u238qk8s.org/]uhsrqprsgpq[/url]
    hsrqprsgpq http://www.gozt7z31c7t9r17dzl96d51j5u238qk8s.org/
    ahsrqprsgpq

    回复
  64. 头像
    小王
    Windows 10 · Google Chrome

    路过测试

    回复
    1. 头像
      老廖 作者
      Windows 10 · Google Chrome
      @ 小王

      6666

      回复
      1. 头像
        小王
        Windows 10 · Google Chrome
        @ 老廖

        2626

        回复