二三子钩
程序设计内容
(1). 密码的设定,在此程序中密码是固定在程序存储器ROM中,假设预设的密码为“12345”共5位密码。
(2). 密码的输入问题: 由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。
(3).按键禁止功能:初始化时,是允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态在3次密码输入不正确的情况下发生的。
C语言源程序
#include unsigned char code ps[]={1,2,3,4,5};
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};
unsigned char pslen=9; unsigned char templen;
unsigned char digit; unsigned char funcount;
unsigned char digitcount;
unsigned char psbuf[9];
bit cmpflag;
bit hibitflag;
bit errorflag;
bit rightflag;
unsigned int second3;
unsigned int aa;
unsigned int bb;
bit alarmflag;
bit exchangeflag;
unsigned int cc;
unsigned int dd;
bit okflag;
unsigned char oka;
unsigned char okb;
void main(void)
{
unsigned char i,j;
P2=dispcode[digitcount];
TMOD=0x01;
TH0=(65536-500)/256;
TL0=(65536-500)%6;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if(cmpflag==0)
{
if(P3_6==0) //function key
{
for(i=10;i>0;i--)
for(j=248;j>0;j--);
if(P3_6==0)
{
if(hibitflag==0)
{
funcount++;
if(funcount==pslen+2)
{
funcount=0;
cmpflag=1;
}
P1=dispcode[funcount];
}
else
{
second3=0;
}
while(P3_6==0);
}
}
if(P3_7==0) //digit key
{
for(i=10;i>0;i--)
for(j=248;j>0;j--);
if(P3_7==0)
{
if(hibitflag==0)
{
digitcount++;
if(digitcount==10)
{
digitcount=0;
}
P2=dispcode[digitcount];
if(funcount==1)
{
pslen=digitcount;
templen=pslen;
}
else if(funcount>1)
{
psbuf[funcount-2]=digitcount;
}
}
else
{
second3=0;
}
while(P3_7==0);
}
}
}
else
{
cmpflag=0;
for(i=0;i
{
if(ps[i]!=psbuf[i])
{
hibitflag=1;
i=pslen;
errorflag=1;
rightflag=0;
cmpflag=0;
second3=0;
goto a;
}
}
cc=0;
errorflag=0;
rightflag=1;
hibitflag=0;
a: cmpflag=0;
}
}
}
void t0(void)
interrupt 1 using 0 { TH0=(65536-500)/256;
TL0=(65536-500)%6;
if((errorflag==1) && (rightflag==0))
{
bb++;
if(bb==800)
{
bb=0;
alarmflag=~alarmflag;
}
if(alarmflag==1)
{
P0_0=~P0_0;
}
aa++;
if(aa==800)
{
aa=0;
P0_1=~P0_1;
}
second3++;
if(second3==6400)
{
second3=0;
hibitflag=0;
errorflag=0;
rightflag=0;
cmpflag=0;
P0_1=1;
alarmflag=0;
bb=0;
aa=0;
}
}
if((errorflag==0) && (rightflag==1))
{
P0_1=0;
cc++;
if(cc<1000)
{
okflag=1;
}
else if(cc<2000)
{
okflag=0;
}
else
{
errorflag=0;
rightflag=0;
hibitflag=0;
cmpflag=0;
P0_1=1;
cc=0;
oka=0;
okb=0;
okflag=0;
P0_0=1;
}
if(okflag==1)
{
oka++;
if(oka==2)
{
oka=0;
P0_0=~P0_0;
}
}
else
{
okb++;
if(okb==3)
{
okb=0;
P0_0=~P0_0;
}
}
}
}
尹才宝贝
开题报告要求不少于3000字。开题报告的主要内容和要求如下:1、说明选题的背景和研究意义。主要说明所选课题的历史背景、国内外研究现状和发展趋势。历史背景部分着重说明本课题前人研究过没有,研究的成果如何。国内外研究现状部分说明本课题目前在国内外的研究状况,介绍各种观点,比较各种观点的异同,着重说明本课题目前存在的争论焦点,说明自己的观点。发展趋势部分说明本课题目前国内外研究已经达到什么水平,还存在什么样的问题,指明研究发向,提出可能解决的方法。2、研究的基本内容和拟解决的主要问题。说明本课题研究的主要课题,研究的重点和方向,明确进一步研究的思路。3、研究方法及措施。选题不同,研究方法也往往不同。在开题报告中,学生要说明自己准备采用的研究方法。写明研究方法和措施,并给予必要的设计方案论证,争取在这些方面得到指导教师的指导或建议。4、研究工作的步骤、进度。毕业设计过程中,材料的搜集、课题的设计制作调试、论文的撰写与修改等,都要分阶段进行。在时间安排上,要充分考虑各个阶段研究内容的相互关联。对于指导教师在任务书中规定的时间安排,学生应在开题报告中给予呼应,并最后得到批准。一般实际操作时间安排要提前一些。5、主要参考文献。在开题报告中,应列出主要参考文献,表明自己已经了解所选课题的相关资料,证明课题是有理论依据的。所列出的参考文献,应有不少于2篇英文文献 (一般指英文原文参考文献) 。
蓝色晚风blue
随着各类建筑的不断发展,建筑规模越来越大,层次越来越高,建筑的标准也越来越高。新建的各类大楼都具备人员密集、设备先进、功能多、装饰豪华等特点,因此,火灾自动报警和自动灭火系统已成为高层建筑不可缺少的重要组成部分。本设计是以AT89C51单片机为主控芯片,用TLC1543模数转换芯片模拟烟雾浓度检测传感器,用18B20对环境温度进行实时检测,并模拟了视频监控触发开关对环境进行跟踪和报警,并配上单片机的复位电路,时钟电路,液晶显示电路等共同完成了基于单片机的大楼防火报警系统设计。在本设计中,用protues仿真硬件电路,以keil C51作为软件仿真平台,联合调试共同完成了本系统的设计,仿真效果良好。 目 录摘 要 1目 录 2第1章 绪论 课题研究的背景 课题研究的目的和意义 课题研究的国内外发展现状 4第2章 大楼防火报警系统方案论证与芯片的准备 设计思路 方案论证与对比 芯片的准备工作 AT89C51简介 DS18B20测温芯片 AD转换芯片TLC1543 GPRS短信报警芯片TC35i 液晶显示模块LCD1602 16第3章 大楼防火报警系统硬件电路设计 单片机复位电路 时钟电路 稳压电源 烟雾浓度检测电路 测温模块设计 显示模块设计 21第4章 系统软件实现和整体调试 软件环境介绍 软件设计方案及流程图 软硬件结合调试 24第5章 总结与展望 33参考文献 34
一、提出问题(是什么?)包括对问题的概念界定、问题研究的重要性或意义的解释。 二、分析问题(为什么?)概括研究对象或问题的现状、利弊、指明存在哪些问题,并分析其
据我的了解,单片机课程设计,最简单当然是最小系统,控制一个LED灯点亮或者闪烁。
首先是选题,一般老师都会提供若干个选题给你选,其中必然包括几个“XX系统的设计与开发”,这样的选题就是符合我们前面的假设和预想的。盘他!假设我现在选了一个题目是
用STC的单片机,里面有EEPROM,把设定的密码写到里面。正常运行时 输入密码和EEPROM里面的密码比较 正确了就可以进入
什么题目的论文。有需要可以联系