怎么交c语言课堂作业,单片机密码锁简单c语言程序的课堂作业

#include

void delay(unsigned int j )             //基本延时单位1ms

{

unsigned int e,f;

for(e=0;e

for(f=0;f<=148;f++);

}

int saomiao()                          //扫描键盘,输出一个数,0~9代表数;10~14代表符号

{

int  i,j,y=20,x=20,temp;

int  aa[]={0xf7,0xfb,0xfd,0xfe,};

dingwei:

P3=0xf0;

if(P3!=0xf0)                                        //判断是否有输入

{

delay(5);                                                //防抖(延时10ms)

if(P3!=0xf0)                            //再判断是否有输入

{

for(i=0; i<4; i++)

{

P3 = aa[i];

temp=0x10;

for(j=0; j<4; j++)

{

if(!(P3 & temp))                 //判断P1口高4位某一行为低电平

x=i+j*4;                    //使用中间变量X

temp <<= 1;

}

}

}

}

if(P3!=0xf0) goto dingwei;                           //判断是否松开按键,防止重复赋值

switch(x)

{

case 0:y=10; break;

case 1:y=0; break;

case 2:y=15; break;

case 4:y=1; break;

case 5:y=2; break;

case 6:y=3; break;

case 8:y=4; break;

case 9:y=5; break;

case 10:y=6;break;

case 12:y=7;break;

case 13:y=8; break;

case 14:y=9;break;

default:y=20;

}

return y;                          //返回键盘编号,方便起见:数为0~9;

}                                                               //符号 复位 = 分别为10,15。

void xianshii(long a)                       //显示部分

{

long b=0;

int i=0,j=0;

int shuzi[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};

b=a;

while(b=(b/10)) j++;                         //判断输入数的个数

for(i=0;i

{

P2=0x01<

P0=shuzi[a%10];

a=a/10;

delay(3);

P0=0Xff;

}

}

/*******主函数***********/

main()

{

int y=0;

long k=0;

long mima=20130521;                                //初始化密码

while(1)

{

y=saomiao();              //扫描输入数字

if(y<=9)                                    //数字

{

k=k*10+y;

}

if(y==15)                                        //输入=,确认密码

{

if(k==mima)

P1=0x00;                //密码正确灯就亮

else

{

……………………

…………限于本文篇幅 余下代码请从51黑下载附件…………

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值