《c51程序设计》大作业。
设计题目。班级。
学号。姓名。
成绩。1 设计任务。
本次密码锁的设计,其主要具有如下功能:
1) 设置6位密码,密码通过键盘输入,弱密码正确,则将锁打开。
2) 密码可以由用户自己修改设定(6位密码),密码输入正确才能修改密码。修改密码之前必须再次输入密码,再输入新密码之前需要二次确认,以防止误操作。
3) 报警、锁定键盘功能。密码输入错误会发出警告音。若密码输入错误次数超过3次,蜂鸣器报警并锁定键盘。
4) 有效按键提示。
5) 90秒定时中断,输入控制信号,防止长时间无效操作。
6) 其他扩展功能。
2电路原理图。
硬件原理图2.1所示。
图2.1硬件原理图。
3 系统流程图。
程序流程图,见图3.1所示。否 是是。
否否。否。
是。图3.1程序流程图。
4 源程序。
#include <>
unsigned char code ps=unsigned char code dispcode=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)%256;
tr0=1;
et0=1;
ea=1;while(1)
if(cmpflag==0)
if(p3_6==0) /function keyfor(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];
elsesecond3=0;
while(p3_6==0);
if(p3_7==0) /digit keyfor(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;
elsesecond3=0;
while(p3_7==0);
elsecmpflag=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 0th0=(65536-500)/256; tl0=(65536-500)%256; 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; elseerrorflag=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; elseokb++; if(okb==3) okb=0; p0_0=~p0_0; 河南机电高等专科学校。c51程序设计 大作业。设计题目 报警器 班级。学号。姓名。成绩。2012年5月。报警器。一设计任务。利用开关控制报警器,当开关闭合报警信号报警,当开关断开告警信号停止,并编写程序。二设计原理。500hz音频信号的周期为2ms,信号电平为每1ms变反1次 1khz的信号周期为1... 河南机电高等专科学校。c51程序设计 大作业。设计题目 数字示波表 班级 应电 092 学号 090415119 姓名 吴君堂 成绩。2011年11月。1 设计任务。1 用单片机stc12c5a60s2为主控芯片设计一数字示波表。2 能对连续信号进行采集并实时显示,且具有锁存功能。3 测量电压幅度范... 河南机电高等专科学校。c51程序设计 大作业。设计题目 篮球计时计分器 班级 医电 101 班 学号 1 0 0 4 1 1 1 0 8 姓名 任天意 成绩。2012年5月20 1 设计任务 该篮球计时计分器,采用了80c51作为主要的控制部件,利用它的内部定时器实现计时50ms,然后软件实现1秒钟...C51大作业
C51大作业
C51大作业