毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

单片机电子密码锁 第8页

更新时间:2010-1-31:  来源:毕业论文
单片机电子密码锁 第8页
void display(void)
{
 uchar i;
 switch (digbit)
 {
  case 1:  i=0; break;
  case 2:  i=1; break;
  case 4:  i=2; break;
  case 8:  i=3; break;
  case 16:     i=4; break;
  case 32:     i=5; break;
  default:      break;
 }
 P2 = 0x0;         // 关闭显示
 P0 = getcode(wordbuf[i]);    // 送字型码
 P2 = digbit;        // 送字位码
 if (digbit<0x20)       // 共6位
  digbit = digbit*2;     // 左移一位
 else
     digbit = 0x01;
}
/* 密码比较函数 */
bit pwcmp(void)
{
 bit flag;
 uchar i;
 for (i=0;i<6;i++)
 {
  if (pw[i]==pwbuf[i])
   flag = 1;
  else
  {
   flag = 0;
   i = 6;
  }
 }
 return(flag);
}

/* 主程序 */
void main()
{
 uchar j,key;

 P2 = 0x0;       // 关闭数码管显示
 TMOD = 0x11;      // T0,T1工作方式1

 /* 2ms 定时设置 */
 TH0 = -2000/256;
 TL0 = 2000%256;

 /* 50ms 定时设置 */
 TH1 = -50000/256;
 TL1 = -50000%256;
 
 /* 启动计数器0,关闭计数器1 */
 TR0 = 1;
 ET0 = 1;
 TR1 = 0;
 ET1 = 1;
 EA = 1;

 count = 0;         // 初始没有输入密码,计数器设为0
 enterflag = 0;     // 没有按下确认键
 pwflag = 0;      // 密码标志先置为0
    green = 1;      // 绿灯不亮
 red = 1;          // 红灯不亮
 
 /* 假设内定密码为937602 */
 pw[0] = 9;
 pw[1] = 3;
 pw[2] = 7;
 pw[3] = 6;
 pw[4] = 0;
 pw[5] = 2;
 
 digbit = 0x01;          // 从第一位数码管开始动态扫描

 /* 刚加电时,显示888888 */
 for (j=0;j<6;j++)
  wordbuf[j] = 8;
showflag = 1;              // 打开数码管显示
while(1)
    {
  key = keyscan();        // 调用键盘扫描函数
  switch(key)
     {
        case 0x11:         // 1行1列,数字0
    if (count<6)
    {
     wordbuf[count] = 0x0f; // 对应密码位上显示“F”
     pwbuf[count] = 0;
     count++;
    }
    break;
   case 0x21:         // 1行2列,数字1
    if (count<6)
    {
     wordbuf[count] = 0x0f; // 对应密码位上显示“F"
     pwbuf[count] = 1;
     count++;

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页

单片机电子密码锁 第8页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。