找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2337|回复: 3
打印 上一主题 下一主题
收起左侧

51单片机串口密码锁程序

[复制链接]
跳转到指定楼层
楼主
内有讲解文档与程序
用串口助手发送字符‘1’ LED1亮
发送其他 LED8个灯闪烁一次 当第三次输错时,蜂鸣器响一次
波特率9600

单片机源程序如下:
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit BEEP = P2^3;
  5. uint i;
  6. unsigned char flag,a;
  7. void delay(uint z)
  8. {
  9.         uint x,y;
  10.         for(x=z;x>0;x--)
  11.                 for(y=110;y>0;y--);
  12. }
  13. void main()
  14. {
  15.         TMOD=0x20;//设置串口工作方式1
  16.         TH1=0xfd;
  17.         TL1=0xfd;//波特率9600
  18.         TR1=1;//开定时器1
  19.         REN=1;
  20.         SM0=0;
  21.         SM1=1;
  22.         EA=1;//开总中断
  23.         ES=1;//开串口中?
  24.         BEEP = 1;
  25.         i=0;
  26.         while(1);
  27. }

  28. void ser() interrupt 4
  29. {
  30.         ES=0;//关闭串行中断
  31.         RI=0;//清除串行接受标志位
  32.         a=SBUF;
  33.         switch(a)//以字符形式输入
  34.         {
  35.                 case '1':P1=0xfe;SBUF='1';i=1;       
  36.                         while(!TI);       
  37.                         TI=0;
  38.                         break;
  39.                 default :
  40.                         if(i==3)
  41.                         {
  42.                                 i=1;
  43.                                 BEEP = 0;
  44.                                 delay(100);
  45.                                 BEEP = 1;
  46.                                 P1=0xff;
  47.                         }
  48.                         else
  49.                         {
  50.                                 i++;
  51.                                 P1=0x00;
  52.                                 delay(100);
  53.                                 P1=0xff;
  54.                         }
  55. //                case '2':P1=0xfc;SBUF='2';       
  56. //                        while(!TI);       
  57. //                        TI=0;
  58. //                        break;
  59. //                case '3':P1=0xf8;SBUF='3';       
  60. //                        while(!TI);       
  61. //                        TI=0;
  62. //                        break;
  63. //                case '4':P1=0xf0;SBUF='4';       
  64. //                        while(!TI);       
  65. //                        TI=0;
  66. //                        break;
  67. //                case '5':P1=0xe0;SBUF='5';       
  68. //                        while(!TI);       
  69. //                        TI=0;
  70. //                        break;
  71. //                case '6':P1=0xc0;SBUF='6';       
  72. //                        while(!TI);       
  73. //                        TI=0;
  74. //                        break;
  75. //                case '7':P1=0x80;SBUF='7';       
  76. //                        while(!TI);       
  77. //                        TI=0;
  78. //                        break;
  79. //                case '8':P1=0x00;SBUF='8';       
  80. //                        while(!TI);       
  81. //                        TI=0;                                                                                                     ;
  82. //                        break;
  83.         }
  84.         ES=1;//允许串口中断
  85. }
复制代码

所有资料51hei提供下载:
串口密码.zip (171.37 KB, 下载次数: 10)



51hei截图20200110143348.png (27.55 KB, 下载次数: 128)

51hei截图20200110143348.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:593773 发表于 2020-1-12 11:20 | 只看该作者
非常感谢哦,这个是不是只能输入一个字符的密码,如果是要输入多个字符又该怎么变换呢
回复

使用道具 举报

板凳
ID:516795 发表于 2021-8-16 21:09 | 只看该作者
xinyueyueen 发表于 2020-1-12 11:20
非常感谢哦,这个是不是只能输入一个字符的密码,如果是要输入多个字符又该怎么变换呢

case '字符 '
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表