基于AT24C02电子密码锁的设计_第1页
基于AT24C02电子密码锁的设计_第2页
基于AT24C02电子密码锁的设计_第3页
基于AT24C02电子密码锁的设计_第4页
基于AT24C02电子密码锁的设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机应用课程设计单片机应用课程设计设计题目:基于设计题目:基于 AT24C02AT24C02 电子密码锁的设计电子密码锁的设计目录目录1 1 设计任务设计任务 .3 32 2 系统总体方案设计系统总体方案设计 .3 32.12.1 各个模块方案论证各个模块方案论证 .3 32.1.12.1.1 芯片选择芯片选择.3 32.1.22.1.2 显示器的选择显示器的选择.3 32.22.2 总体方案设计总体方案设计.4 43 3 硬件电路设计硬件电路设计 .4 43.13.1 单片机最小系统单片机最小系统 .4 43.23.2 AT24C20AT24C20 储存密码电路储存密码电路.5 53.33

2、.3 矩阵键盘电路矩阵键盘电路 .6 63.43.4 液晶显示电路液晶显示电路 .6 64 4 系统软件设计系统软件设计 .6 64.14.1 主程序流程图主程序流程图.7 74.24.2 子程序流程图子程序流程图.8 84.2.14.2.1 AT24C20AT24C20 子程序流程图子程序流程图 .8 84.2.24.2.2 16021602 子程序流程图子程序流程图 .9 95 5 实物调试实物调试.9 95.15.1 实性物能分析实性物能分析.9 96 6 心得体会心得体会.1212附录附录 1 1.1414(1 1)系统总电路图)系统总电路图 .1414(2 2)系统仿真图)系统仿真图

3、 .1414附录附录 2 2.1616(1 1)程序清单)程序清单 .16161. 设计任务设计任务基本要求:采用 AT24C02 与单片机 STC89C52 相结合设计电子密码锁,然后通过矩阵键盘按键进行密码的输入、清除、更改、开锁等功能。2. 系统总体方案设计系统总体方案设计2.1 各个模块方案讨论各个模块方案讨论2.1.1 芯片选择芯片选择由于设计的是电子密码锁,而单片机 AT89C52 为 8 位通用微处理器,采用工业标准的 C51 内核,在内部功能及管脚排布上与通用的 8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主 IC 内部寄存器、数据 RAM 及外部接口等功能

4、部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号 IR 的接收解码及与主板 CPU 通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接 12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和 VSS(20 脚)为供电端口,分别接+5V 电源的正负端。P0P3 为可编程通用 I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为 N1 功能控制端口,分别与 N1 的相应功能管脚相连接,13 脚定义为 IR 输入端,10 脚和 11 脚定义为 I2C 总线控制端口,分别连

5、接 N1 的 SDAS(18 脚)和 SCLS(19 脚)端口,12 脚、27 脚及 28 脚定义为握手信号功能端口,连接主板 CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。所以我们以此单片机为核心,采用 AT24C02 作为储存密码芯片,利用单片机进行控制,外加显示电路和键盘电路,即构成一个基本的电子密码锁系统。2.1.2 显示器的选择显示器的选择LCD1602 具有微功耗、体积小、显示内容丰富、超薄轻巧,对比度可调、内含复位电路、提供各种控制命令等特点,完全满足本次设计的需要,因此,选择 LCD1602 作为显示器进行使用。2.2总体方案设计总体方案设计密码锁设计的

6、关键问题是实现密码的输入、清除、更改、开锁等功能:1、密码输入功能:插上电源后,第一次使用或忘记密码时可以用 111111对其密码初始化,LCD 提示输入密码,输入密码时在 1602LCD 上显示“*”每输入一个数字,LCD 上向右移一格,同时“*”加一个。值到输入 6 个“*”为此,若一次性输入大于 6 个密码,则只保留前 6 位密码,按“确定”生效。若按取消键,锁关闭,所有输入清除错误。输入计数达三次时,报警并锁定键盘 。2、密码更改功能:密码锁在打开的状态再次输入原密码,会有提示输入新密码,输入新密码后按修改键再次输入新密码后就能成功修改密码(初始密码是 6 个 1 ) 。3、当密码输入

7、成功后,或者密码修改成功后,LCD 上有提示成功字符 LED灯亮,同时蜂鸣器响两声作为提示。AT24C02 电子密码锁总体设计方案如图 1 所示。图图 1 1 总体设计方案总体设计方案3.3.系统硬件电路设计系统硬件电路设计3.13.1单片机最小系统单片机最小系统单片机是电子时钟系统的主控制器。其最小系统主要由 STC89C52 单片机、晶振电路及单片机复位电路组成。晶振系统由两个 30pf 的陶瓷电容和一个 12MHz 的晶振组成,分别接在XTAL1、XTAL2 上,在单片机内部,这两个端口是一个反相放大器的输入端,这个放大器构成了片内振荡器,它决定了单片机的时钟周期。单片机有一个复位引脚

8、RST,高电平有效,只要 RST 保持高电平,单片机将循环复位,复位期间,ALE、PSEN 输出高电平。RST 从高电平变为低电平之后,PC 指针变为 0000H,使单片机从程序存储器地址为 0000H 的单元开始执行。当单片机执行程序出错或进入死循环时,也可按复位按钮重新启动。单片机最小系统如图 2 所示。图图 2 23.2 AT24C02AT24C02 储存密码电路储存密码电路.为了保存用户设置的密码,本系统使用 AT24C02 用来保存用户设置的密码,它的 SCL、SDA 端分别接单片机的 T0、T1 端,用于与单片机之间读写操作的数据传输;WP 接低电平表示单片机可以对器件进行正常的读

9、/写操作;E0、 E1、E2是器件地址输入端,都接低电平表示只有一个 AT24C02 被器件寻址。该电路要注意的是 SCL、SDA 必须加上一上接电阻,阻值为 4.7K。用户设置的密码存放在 ST24C02 中,当需要更改或读取用户密码时,只需对 ST24C02 里的数据更改或读取。ST24C02 储存密码电路如图 3 所示。图图 3 33.3 矩阵键盘电路矩阵键盘电路矩阵键盘电路主要作用就是输入密码,它由行线和列线组成,按键位于行、列的交叉点上,行列分别连接到按键开关的两端。无按键按动作时列线处于高电平状态;有按键按下时,交点的行线和列线相通,列线电平状态将由与此列线相连的行线电平决定。行线

10、电平如果低,则列线电平为低;行线电平如果为高,则列线电平也为高。这是识别矩阵式键盘按键是否被按下的关键所在。由于矩阵键盘中行、列线为多键公用,各按键均影响该键所在的行和列的电平,所以必须将行、列线信号配合起来作适当的处理,才能确定闭合键所在的位置。矩阵式键盘节省了好多的 I/O 口,适用于按键数量比较多的场合。本设计的 4*4 键盘即采用矩阵式键盘。矩阵键盘电路图如图 4 所示图图 4 43.4 液晶显示电路液晶显示电路1602 的引脚功能:第 1 脚:为地电源。第 2 脚:VCC 接 5V 正电源。第 3 脚:为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时

11、会产生“鬼影” ,使用时可以通过一个 20K 的电位器调整对比度。第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第 5 脚:RW 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS 和 RW 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 RW 为高电平时可以读忙信号,当 RS 为高电平 RW 为低电平时可以写入数据。第 6 脚:E 端为使能端,E 端由高电平跳变成低电平时,液晶模块执行命令。第 714 脚:D0D7 为 8 位双向数据线。第 1516 脚:15 脚接 VCC,16 脚接地。1602 电路图如图 5 所示。图图 5 54

12、 系统软件设计系统软件设计由于单片机是可编程控制器,故采用 C 语言对单片机进行程序的编写。主程序主要由矩阵键盘程序、1602 液晶屏程序及 AT24C02 程序组成。4.1 主程序流程图主程序流程图图图 6 6上图 6 为主程序流程图。开始先初始化,然后屏幕显示 password 先扫描按键,确认是否可以按键按出密码,如果没有按键按下,则重新扫描按键,若有键按下则按下修改键并保存密码就会出现新的密码,若不按下修改键则还是原来刚设置的初始密码,按下输入键并输入密码,不按下输入键则重新回到扫描按键步骤,若密码正确则开锁。密码错误则报警显示错误。4.2 子程序流程图子程序流程图4.2.1 AT24

13、C02 子程序流程图子程序流程图图图 7 7图 7 展示了 AT24C02 的一个工作流程:首先是对 AT24C02 进行初始化,方便密码的输入,当输入的密码正确,就会解锁,显示屏显示 open,否则显示error 并重新输入密码。 4.2.2 1602 子程序流程图子程序流程图 图图 8 81602 显示器的工作流程图展示了 1602 的工作流程:启动时,首先对 1602进行初始化,然后检测有没有数据写入,当有数据写入时,1602 便读出数据并显示,没有数据写入时,1602 就一直处于等待中,直至有数据写入。1602 子程序流程图如图 8 所示。5 实物调试实物调试5.15.1 实物性能分析

14、实物性能分析用 KEIL 编写程序软件编写程序、经过 Proteus 仿真软件仿真调试之后,确认了此系统可正常运行,在这样的前提下,我们利用一个单片机最小系统、一块用电路板焊接的模块和一个 1602 液晶显示屏完成了第一次实物仿真。图图 9 9图 9 界面显示为输入密码,这时我们按下按键输入密码。当我们输入密码时,下图为密码正确的实物图,如图 10 所示。图图 1010当密码输入正确时,显示屏就会显示 OPEN。若密码输入错误,下图为密码输入错误的实物图,如图 11 所示。图图 1111当我们输入错误的密码时,显示屏就会显示 error。 下图为密码修改成功的实物图,如图 12 所示。图图 1

15、212当密码修改成功时,显示屏就会显示 RestPasswordOK。6 心得体会心得体会通过此次课程设计,我重新把单片机及相关知识联系在了一起虽然掌握的知识不是很多,但通过查找资料我还是对单片机有了很好的了解和掌握。在设计中我才发现单片机虽然体积小但是功能很强大,在生活中很多地方都可以用到它。单片机这门学科博大精深,在以后的学习中只有多看书,理论与实践结合才能把这门课掌握好。掌握了 LCD 的使用方法与编程。同时我也体会到合作的好处。让我懂得了如何合作,对不同看法发表自己的意见。此次设计中最要的一点是,让我知道了,理论联系实践的好处。不管理论学的再怎么好都必须联系实践,只有在实践中我们才会更

16、加懂得如何运用自己的所学,在实践中将自己的知识实物化。理论联系实践是我们获取知识的最佳途径。参考文献1谭浩强主编. C 程序设计题解与上机指导(第 3 版)M. 北京,清华大学出版社,2005.16-24 2谢维成 杨家国 董秀成,单片机原理与应用及 C51 程序设计(第 2 版)M,北京,清华大学出版社,2009.7.25-36附录附录 1(1 1)系统总电路图系统总电路图 系统总电路图,如图 12 所示。图图 1313(2 2) 系统仿真图系统仿真图系统仿真图,如图 13 所示。图图 1414(3 3) PCBPCB 板板 设计使用的 PCB 如图 14 所示图图 1515附录附录 2 2

17、程序清单程序清单#include #include #define LCM_Data P0 #define uchar unsigned char #define uint unsigned int /#define Busy 0 x80 /用于检测 LCM 状态字中的 Busy 标识 #define w 6 /定义密 码位数sbit lcd1602_rs=P25; sbit lcd1602_rw=P26; sbit lcd1602_en=P27; sbit Scl=P34; /24C02 串行时钟 sbit Sda=P35; /24C02 串行数据 sbit ALAM = P21; /报警

18、sbit KEY = P20; /开锁 sbit open_led=P22; /开锁指示灯 bit operation=0; /操作标志位 bit pass=0; /密码正确标志 /bit ResetEn=0; /重设密码充(允)许标志 bit ReInputEn=0; /重置输入充(允)许标志 bit s3_keydown=0; /3 秒按键标志位 bit key_disable=0; /锁定键盘标志 unsigned char countt0,second; /t0 中断计数器,秒计数器 void Delay5Ms(void); unsigned char code a=0 xFE,0 x

19、FD,0 xFB,0 xF7; /控盘扫描控制表 unsigned char code start_line=password: ; unsigned char code name=2=Coded Lock=; /显示名称 unsigned char code Correct= correct ;/输入正确 unsigned char code Error= error ; /输入错误 unsigned char code codepass = pass ; unsigned char code LockOpen = open ; /OPEN unsigned char code SetNew

20、= SetNewWordEnable; unsigned char code Input= input: ; /INPUTunsigned char code ResetOK= ResetPasswordOK ; unsigned char code initword = Init password.; unsigned char code Er_try= error,try again!; unsigned char code again= input again ; unsigned char InputData6; /输入密码暂存区 unsigned char CurrentPasswo

21、rd6=1,1,1,1,1,1; /当前密码值 unsigned char TempPassword6; unsigned char N=0; /密码输入位数记数 unsigned char ErrorCont; /错误次数计数 unsigned char CorrectCont; /正确输入计数 unsigned char ReInputCont; /重新输入计数 unsigned char code initpassword6=1,1,1,1,1,1; /=5ms 延时= void Delay5Ms(void) unsigned int TempCyc = 5552; while(Temp

22、Cyc-); /=400ms 延时= void Delay400Ms(void) unsigned char TempCycA = 5; unsigned int TempCycB; while(TempCycA-) TempCycB=7269; while(TempCycB-); /=24C02= void mDelay(uint t) /延时 uchar i; while(t-) for(i=0;i125;i+) ; void Nop(void) /空操作 _nop_(); _nop_(); _nop_(); _nop_(); /*起始条件*/ void Start(void) Sda=1

23、; Scl=1; Nop(); Sda=0; Nop(); /*停止条件*/ void Stop(void) Sda=0; Scl=1; Nop(); Sda=1; Nop(); /*应答位*/ void Ack(void) Sda=0; Nop(); Scl=1; Nop(); Scl=0; /*反向应答位*/ void NoAck(void) Sda=1; Nop(); Scl=1; Nop(); Scl=0; /*发送数据子程序,Data 为要求发送的数据*/ void Send(uchar Data) uchar BitCounter=8; char temp; do temp=Dat

24、a; Scl=0; Nop(); if(temp&0 x80)=0 x80) Sda=1; else Sda=0; Scl=1; temp=Data1; Data=temp; BitCounter-; while(BitCounter); Scl=0; /*读一字节的数据,并返回该字节值*/ uchar Read(void) uchar temp=0; uchar temp1=0; uchar BitCounter=8; Sda=1; do Scl=0; Nop(); Scl=1; Nop(); if(Sda) temp=temp|0 x01; else temp=temp&0

25、 xfe; if(BitCounter-1) temp1=temp1; temp=temp1; BitCounter-; while(BitCounter); return(temp); void WrToROM(uchar Data,uchar Address,uchar Num) uchar i; uchar *PData; PData=Data; for(i=0;iNum;i+) Start(); Send(0 xa0); Ack(); Send(Address+i); Ack(); Send(*(PData+i); Ack(); Stop(); mDelay(20); void RdF

26、romROM(uchar Data,uchar Address,uchar Num) uchar i; uchar *PData; PData=Data; for(i=0;i0;x-) for(y=110;y0;y-); /-写指令- void write_1602com(uchar com)/*液晶写入指令函数* lcd1602_rs=0; /数据/指令选择置为指令 lcd1602_rw=0; /读写选择置为写 P0=com; /送入数据 delay(1); lcd1602_en=1; /拉高使能端,为制造有效的下降沿做准备 delay(1); lcd1602_en=0; /en 由高变低,

27、产生下降沿,液晶执行命令 return;/-写数据- void write_1602dat(uchar dat) /*液晶写入数据函数* lcd1602_rs=1; /数据/指令选择置为数据 lcd1602_rw=0; /读写选择置为写 P0=dat; /送入数据 delay(1); lcd1602_en=1; /en 置高电平,为制造下降沿做准备 delay(1); lcd1602_en=0; /en 由高变低,产生下降沿,液晶执行命令 return; /-初始化- void lcd_init(void) write_1602com(0 x38);/设置液晶工作模式,意思:16*2 行显示,

28、5*7 点阵,8 位数据 write_1602com(0 x0c);/开显示不显示光标 write_1602com(0 x06);/整屏不移动,光标自动右移 write_1602com(0 x01);/清显示 /=将按键值编码为数值= unsigned char coding(unsigned char m) unsigned char k; switch(m) case (0 x18): k=1;break; case (0 x28): k=2;break; case (0 x48): k=3;break; case (0 x88): k=A;break; case (0 x14): k=4

29、;break; case (0 x24): k=5;break; case (0 x44): k=6;break; case (0 x84): k=B;break; case (0 x12): k=7;break; case (0 x22): k=8;break; case (0 x42): k=9;break; case (0 x82): k=C;break; case (0 x11): k=*;break; case (0 x21): k=0;break; case (0 x41): k=#;break; case (0 x81): k=D;break; return(k); /= 按键检

30、测并返回按键值= unsigned char keynum(void) unsigned char row,col,i; P1=0 xf0; if(P1&0 xf0)!=0 xf0) Delay5Ms(); Delay5Ms(); if(P1&0 xf0)!=0 xf0) row=P10 xf0; /确定行线 i=0; P1=ai; /精确定位 while(i4) if(P1&0 xf0)!=0 xf0) col=(P1&0 xff); /确定列线 break; /已定位后提前退出 else i+; P1=ai; else return 0; while(P1&

31、amp;0 xf0)!=0 xf0); return (row|col); /行线与列线组合后返回 else return 0; /无键按下时返回 0 /=一声提示音,表示有效输入= void OneAlam(void) ALAM=0; Delay5Ms(); ALAM=1; /=二声提示音,表示操作成功= void TwoAlam(void) ALAM=0; Delay5Ms(); ALAM=1; Delay5Ms(); ALAM=0; Delay5Ms(); ALAM=1; /=三声提示音,表示错误= void ThreeAlam(void) ALAM=0; Delay5Ms(); ALA

32、M=1; Delay5Ms(); ALAM=0; Delay5Ms(); ALAM=1; Delay5Ms(); ALAM=0; Delay5Ms(); ALAM=1; /=显示输入的 N 个数字,用*代替以便隐藏=void DisplayOne(void) / DisplayOneChar(9+N,1,*); write_1602com(yi+5+N); write_1602dat(*); /=显示提示输入= void DisplayChar(void) unsigned char i; if(pass=1) /DisplayListChar(0,1,LockOpen); write_160

33、2com(er); for(i=0;i16;i+) write_1602dat(LockOpeni); else if(N=0) /DisplayListChar(0,1,Error); write_1602com(er); for(i=0;i16;i+) write_1602dat(Errori); else /DisplayListChar(0,1,start_line); write_1602com(er); for(i=0;i16;i+) write_1602dat(start_linei); void DisplayInput(void) unsigned char i; if(Co

34、rrectCont=1) /DisplayListChar(0,0,Input); write_1602com(er); for(i=0;i16;i+) write_1602dat(Inputi); /= 重置密码= void ResetPassword(void) unsigned char i; unsigned char j; / ResetEn=1; /开启重置功能 if(pass=0) pass=0; DisplayChar(); /写屏函数 ThreeAlam(); else if(ReInputEn=1) /打开重置功能 if(N=6) ReInputCont+; if(ReIn

35、putCont=2) for(i=0;i6;) if(TempPasswordi=InputDatai) /将两次输入的新密码作对比 i+; else /DisplayListChar(0,1,Error); write_1602com(er); for(j=0;j16;j+) write_1602dat(Errorj); ThreeAlam(); /错误提示 pass=0; ReInputEn=0; /关闭重置功能, ReInputCont=0; /输入次数清零 DisplayChar(); /写屏函数 break; if(i=6) /DisplayListChar(0,1,ResetOK)

36、; write_1602com(er); for(j=0;j16;j+) write_1602dat(ResetOKj); TwoAlam(); /操作成功提示 WrToROM(TempPassword,0,6);/将新密码写入 24C02 存储 ReInputEn=0; /关闭重置功能? ReInputCont=0; /输入次数清零 / ResetEn=0; CorrectCont=0; else OneAlam(); /DisplayListChar(0, 1, again); /显示再次输入一次 write_1602com(er); for(j=0;j16;j+) write_1602d

37、at(againj); for(i=0;i6;i+) TempPasswordi=InputDatai; /将第一次输入的数据暂存起来 N=0; /输入数据位数计数器清零 /=输入密码错误超过三过,报警并锁死键盘= void Alam_KeyUnable(void) P1=0 x00; ALAM=ALAM; Delay5Ms(); /=取消所有操作= void Cancel(void) unsigned char i; unsigned char j; /DisplayListChar(0, 1, start_line); write_1602com(er); for(j=0;j16;j+)

38、write_1602dat(start_linej); TwoAlam(); /提示音 for(i=0;i6;i+) InputDatai=0; KEY=1; /关闭锁 ALAM=1; /报警关锁operation=0; /操作标志位清零 pass=0; /密码正确标志清零 / ResetEn=0; /重设密码充许标志清零 ReInputEn=0; /重置输入充许标志清零 ErrorCont=0; /密码错误输入次数清零 CorrectCont=0; /密码正确输入次数清零 ReInputCont=0; /重置密码输入次数清零 open_led=1; s3_keydown=0; key_dis

39、able=0; N=0; /输入位数计数器清零 /确认键,并通过相应标志位执行相应功能= void Ensure(void) unsigned char i,j; RdFromROM(CurrentPassword,0,6); /从 24C02 里读出存储密码 if(N=6) if(ReInputEn=0) /重置密码功能未开启 for(i=0;i6;) if(CurrentPasswordi=InputDatai) i+; else ErrorCont+; if(ErrorCont=3)/错误输入计数达三次时,报警并锁定键盘 write_1602com(er); for(i=0;i16;i+

40、) write_1602dat(Errori); do Alam_KeyUnable(); while(1); else TR0=1; /开启定时 key_disable=1; /锁定键盘 pass=0; break; if(i=6) CorrectCont+; if(CorrectCont=1)/正确输入计数,当只有一次正确输入时,开锁, /DisplayListChar(0,1,LockOpen); write_1602com(er); for(j=0;j16;j+) write_1602dat(LockOpenj); TwoAlam(); /操作成功提示音 KEY=0; /开锁 pass

41、=1; /置正确标志位 TR0=1; /开启定时 open_led=0; /开锁指示灯亮 for(j=0;j6;j+) /将输入清除 InputDatai=0; else /当两次正确输入时,开启重置密码功能 /DisplayListChar(0,1,SetNew); write_1602com(er); for(j=0;j16;j+) write_1602dat(SetNewj); TwoAlam(); /操作成功提示 ReInputEn=1; /允许重置密码输入 CorrectCont=0; /正确计数器清零 else /=当第一次使用或忘记密码时可以用 111111 对其密码初始化= i

42、f(InputData0=1)&(InputData1=1)&(InputData2=1)&(InputData3=1)&(InputData4=1)&(InputData5=1) WrToROM(initpassword,0,6); /强制将初始密码写入 24C02 存储 / DisplayListChar(0,1,initword); /显示初始化密码 write_1602com(er); for(j=0;j16;j+) write_1602dat(initwordj); TwoAlam(); Delay400Ms(); TwoAlam(); N=0

43、; else /DisplayListChar(0,1,Error); write_1602com(er); for(j=0;j16;j+) write_1602dat(Errorj); ThreeAlam(); /错误提示音 pass=0; else /当已经开启重置密码功能时,而按下开锁键, /DisplayListChar(0,1,Er_try); write_1602com(er); for(j=0;j16;j+) write_1602dat(Er_tryj); ThreeAlam(); else /DisplayListChar(0,1,Error); write_1602com(er); for(j=0;j16;j+) write_1602dat(Errorj); ThreeAlam(); /错误提示音 pass=0; N=0; /将输入数据计数器清零,为下一次输入作准备 operation=1; /=主函数= void main(void) uns

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论