基于单片机8051的密码锁控制内容摘要:
, 0x39,0x5e,0x79,0x71}。 bit enterflag。 //确认键按下与否的标志 bit mimaflag。 //密码正确与否的标志 bit xiugaiflag。 //修改密码标志 bit enter1flag。 //修改密码确认键标志 sbit red=P3^7。 sbit bell=P3^6。 sbit rs=P2^0。 sbit rw=P2^1。 sbit lcden=P2^2。 sbit green=P3^2。 sbit scl=P3^4。 sbit sda=P3^5。 uchar code table1[]=input the passco。 uchar code table2[]=de:。 uchar code table3[]=*。 uchar code table4[]=right (^_^)。 uchar code table5[]=error!!!。 uchar code table6[]=define the passc。 uchar code table7[]=ode:。 uchar code table8[]=code is new。 //********************************* 键 盘 消 抖 函 数**************************** void delay1() {。 } void delay2(uchar x) { uchar a,b。 for(a=x。 a0。 a) 23 for(b=100。 b0。 b)。 } void delay(uint z) { uint x,y。 for(x=z。 x0。 x) for(y=110。 y0。 y)。 } //****************************e^2room 的初始化******************************* void start() //开始信号 { sda=1。 delay1()。 scl=1。 delay1()。 sda=0。 delay1()。 } void stop() //停止 { sda=0。 delay1()。 scl=1。 delay1()。 sda=1。 delay1()。 } //**************************** 应 答 信 号************************************* void respond() { uchar i。 scl=1。 delay1()。 while((sda==1)amp。 amp。 (i250))i++。 scl=0。 delay1()。 } //********************************** 写字节操作函数***************************** void write_byte(uchar date) 24 { uchar i,temp。 temp=date。 for(i=0。 i4。 i++) { temp=temp1。 //保持最高位,左移到进位 CY scl=0。 delay1()。 sda=CY。 delay1()。 scl=1。 delay1()。 } scl=0。 delay1()。 sda=1。 //总线释放 delay1()。 } //********************************** 读字节操作函数************************** uchar read_byte() { uchar i,k。 scl=0。 delay1()。 sda=1。 delay1()。 for(i=0。 i4。 i++) { scl=1。 delay1()。 k=(k1)|sda。 //或运算,放到最低位 scl=0。 delay1()。 } return k。 } //*********************************** 写 地 址 函 数*************************** void write_add(uchar address,uchar date) { start()。 write_byte(0xa0)。 respond()。 25 write_byte(address)。 respond()。 write_byte(date)。 respond()。 stop()。 } //************************************ 读 地 址 函 数******************************** uchar read_add(uchar address) { uchar date。 start()。 write_byte(0xa0)。 respond()。 write_byte(address)。 respond()。 start()。 write_byte(0xa1)。 respond()。 date=read_byte()。 stop()。 return date。 } //**************************LCD1602 的初始 化******************************** void write_(uchar ) { rs=0。 lcden=0。 P0=。 delay(5)。 lcden=1。 delay(5)。 lcden=0。 } void write_date(uchar date) { rs=1。 lcden=0。 P0=date。 delay(5)。 lcden=1。 delay(5)。 26 lcden=0。 } //***************************** 密 码 比 较 函 数***************************************** bit mimacmp() { bit flag。 uchar i。 for(i=0。 i4。 i++) { if(mima[i]==tab_key[i]) flag=1。 else { flag=0。 i=4。 } } return(flag)。 //返回 flag } ////**************************LCD 显示函数开始********************************************** void lcd_display() { uchar i=0。 write_(0x80+0x40+4)。 for(i=0。 in。 i++) { write_date(table3[0])。 } } //*********************************** 键 盘 功 能 分 配 函数群开始********************************* //** 0 ** 4 ** 8 **修改 (clr) ** //** 1 ** 5 ** 9 **修改密码键 (a)** //** 2 ** 6 ** 确认 (en)**修改确认 密码键 (b)** //** 3 ** 7 ** void key_manage1() { tab_key[n]=0。 27 n++。 if(xiugaiflag==1) { mima[count4]=0。 count4++。 } } void key_manage2() { tab_key[n]=1。 n++。 if(xiugaiflag==1) { mima[count4]=1。 count4++。 } } void key_manage3() { tab_key[n]=2。 n++。 if(xiugaiflag==1) { mima[count4]=2。 count4++。 } } void key_manage4() { tab_key[n]=3。 n++。 if(xiugaiflag==1) { mima[count4]=3。 count4++。 } } void key_manage5() 28 { tab_key[n]=4。 n++。 if(xiugaiflag==1) { mima[count4]=4。 count4++。 } } void key_manage6() { tab_key[n]=5。 n++。 if(xiugaiflag==1) { mima[count4]=5。 count4++。 } } void key_manage7() { tab_key[n]=6。 n++。 if(xiugaiflag==1) { mima[count4]=。基于单片机8051的密码锁控制
相关推荐
一定规模的计算 机应用系统。 4. 可靠性高 因为芯片是按工业测控环境要求设计的 ,故抗干扰的能力优于 PC机。 系统软件 (如 :程序指令 ,常数 ,表格 )固化在 ROM 中 ,不易受病毒破坏。 许多信号的通道均在一个芯片内 ,故运作时系统稳定可靠。 频率的测量原理 频率的测量在电子设计和测量领域中经常用到,这使得对频率测量方法的研究在实际工程应用中具有重要的意义。
是由 12M 的石英晶体 组成的晶振电路 ,两个微调电容 都 是 30pF。 微调电容的一端接地,另一端分别接 在 石英晶体的两端, 最后 后接 XTAL1 和 XTAL2。 复位 是 单片机的初始化操作, 它的 主要 作用 是使 CPU 和系统中其他部件都处于一个 初始状态,并 且 从这个初始状态开始工作。 除了进入系统 的正常初始化 以 外 ,当程序运行出现错误 或 着
U 的处理字长或提高时钟频率。 采用双 CPU 结构,这样可以提高处理能力,改进系统设计提升系统的速度:高性能单片机增加数据总线宽度,提高了数据处理能力。 存储器的发展:主要是存储容量的扩展。 采用存储器不仅大大提高了程序固 10 化的速度,而且程序的檫写次数也高达 10 万次:内部程序存储器容量的扩大等。 单片机的应用 单片机的应用很广,分别在以下领域中得到了广泛的应用。 工业自动化
单片机 AT89C51 AT89C51 是一种带 4K 字节闪存可编程可擦除 只读存储器 ( FPEROM— Flash Programmable and Erasable Read Only Memory) 的低电压、高性能 CMOS 8 位微处理器,俗称 单 片机。 并且与工业标准的 MCS51 指令集和输出管脚相兼容。 由于将多功能 8 位 CPU和闪烁存储器组合在单个芯片中, ATMEL
,具有很高的实用价值。 2 1 PLC 的概述 自二十世纪六十年代美国推出可编程逻辑控制器( Programmable Logic Controller, PLC)取代传统继电器控制装置以来, PLC得到了快速发展,在世界各地得到了广泛应用。 同时, PLC的功能也不 断完善。 随着计算机技术、信号处理技术、控制技术网络技术的不断发展和用户需求的不断提高,
最大图像数 (无关图像排除能力 (3)特征计算复杂度 (4)特征的存储空间需求 图像内容可以理解为一个简化了的层次模型,第一层为原始数据层,即图像的原始像素点;第二层为物理特征层,反映了图像内容的低层物理特征,如颜色、纹理、形状、轮廓、图像内容的空间关系和时间关系 (对视频来说 )等;第三层为语义特征层,是人们 对图像内容概念性的反映,一般是对图像内容的文字性描述。 图像特征的表示 方法有三种