久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8091|回復: 6
打印 上一主題 下一主題
收起左側

單片機密碼鎖簡單c語言程序的課堂作業

[復制鏈接]
跳轉到指定樓層
樓主
以下程序是本人為課堂作業所寫,基本完整作業要求,當然也存在好些問題,如不能從0開始輸入。
  作為一個單片機技術入門級學生將此程序上傳,希望能交到愛好電子技術的朋友,互相學習。

(P0腳用在顯示某數字,P2腳控制某位,P3腳控制識別按鍵)


單片機源程序如下:
  1. #include<reg52.h>
  2. void delay(unsigned int j )             //基本延時單位1ms
  3. {
  4.         unsigned int e,f;
  5.         for(e=0;e<j;e++)
  6.         for(f=0;f<=148;f++);        
  7. }

  8. int saomiao()                          //掃描鍵盤,輸出一個數,0~9代表數;10~14代表符號
  9. {  
  10.    int  i,j,y=20,x=20,temp;           
  11.    int  aa[]={0xf7,0xfb,0xfd,0xfe,};
  12. dingwei:
  13.     P3=0xf0;                                                                                         
  14.     if(P3!=0xf0)                                        //判斷是否有輸入
  15.            {                                                   
  16.              delay(5);                                                //防抖(延時10ms)
  17.                    if(P3!=0xf0)                            //再判斷是否有輸入
  18.                       {         
  19.                           for(i=0; i<4; i++)
  20.                           {
  21.                            P3 = aa[i];
  22.                                        temp=0x10;                                                                                                                                                                  
  23.                            for(j=0; j<4; j++)
  24.                               {
  25.                                     if(!(P3 & temp))                 //判斷P1口高4位某一行為低電平
  26.                                          x=i+j*4;                    //使用中間變量X
  27.                                     temp <<= 1;
  28.                               }        
  29.                           }
  30.                           }
  31.             }
  32.     if(P3!=0xf0) goto dingwei;                           //判斷是否松開按鍵,防止重復賦值
  33.         switch(x)
  34.             {
  35.                    case 0:y=10; break;
  36.                    case 1:y=0; break;
  37.                    case 2:y=15; break;
  38.                    case 4:y=1; break;
  39.                    case 5:y=2; break;
  40.                    case 6:y=3; break;
  41.                    case 8:y=4; break;
  42.                    case 9:y=5; break;
  43.                    case 10:y=6;break;
  44.                    case 12:y=7;break;
  45.                    case 13:y=8; break;
  46.                    case 14:y=9;break;
  47.                    default:y=20;
  48.                 }
  49.         return y;                          //返回鍵盤編號,方便起見:數為0~9;
  50. }                                                               //符號 復位 = 分別為10,15。

  51. void xianshii(long a)                       //顯示部分
  52. {

  53.      long b=0;
  54.          int i=0,j=0;
  55.          int shuzi[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};                                                           
  56.          b=a;                          
  57.           while(b=(b/10)) j++;                         //判斷輸入數的個數         
  58.          for(i=0;i<j+1;i++)                             //輸出數字
  59.                  {
  60.                    P2=0x01<<i;
  61.                    P0=shuzi[a%10];
  62.                    a=a/10;
  63.                    delay(3);
  64.                    P0=0Xff;                                         
  65.              }                           
  66. }

  67.       /*******主函數***********/
  68. main()
  69. {  
  70.    int y=0;
  71.    long k=0;
  72.    long mima=20130521;                                //初始化密碼
  73.    while(1)                                                  
  74.   {
  75.       y=saomiao();              //掃描輸入數字
  76.           if(y<=9)                                    //數字
  77.              {         
  78.                       k=k*10+y;
  79.                  }
  80.           if(y==15)                                        //輸入=,確認密碼
  81.              {
  82.                     if(k==mima)
  83.                                P1=0x00;                //密碼正確燈就亮
  84.                       else
  85.                               {
  86. ……………………

  87. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
單片機密碼鎖簡單c語言程序.doc (63 KB, 下載次數: 90)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:313666 發表于 2018-6-23 10:17 | 只看該作者
感謝大神分享!這正是我需要的編程思路
回復

使用道具 舉報

板凳
ID:313328 發表于 2018-6-23 17:32 | 只看該作者
清楚明了!
回復

使用道具 舉報

地板
ID:381334 發表于 2018-7-31 16:10 | 只看該作者
感謝大神分享代碼!
回復

使用道具 舉報

5#
ID:444891 發表于 2018-12-12 15:06 | 只看該作者

感謝大神分享代碼!
回復

使用道具 舉報

6#
ID:440751 發表于 2018-12-14 11:57 來自手機 | 只看該作者
我怎么實現不了?
回復

使用道具 舉報

7#
ID:871714 發表于 2021-1-1 08:42 來自手機 | 只看該作者
怎么代碼不全
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品成av人在线视午夜片 | 亚洲成av | 国产一区二区三区在线看 | 欧美福利 | www.操.com | 免费看国产精品视频 | 成人一区av偷拍 | 日韩网站免费观看 | 久久久www成人免费无遮挡大片 | 欧美精品一区在线 | 中文字幕 在线观看 | 成人一级毛片 | 亚洲精品在线免费观看视频 | 久久久久久国产精品免费免费男同 | 久久久久久久久国产成人免费 | 色综合一区二区 | 91精品国产91久久久久久吃药 | 天天搞天天操 | 成人国产精品免费观看 | 高清色 | 日本成人一区二区 | 国产伦精品一区二区三区视频金莲 | 色约约视频| 日韩精品二区 | 国产91av视频在线观看 | 日本亚洲欧美 | 欧美国产一区二区 | 欧美成人精品欧美一级 | 人人人人人爽 | 91 久久 | 中文字幕视频在线免费 | 精品一区二区电影 | 久久99精品久久久久久青青日本 | 国产精品久久99 | 婷婷综合网 | 国产日韩欧美 | 亚洲精品视频在线 | 国产精品日韩一区二区 | 在线播放中文字幕 | 亚洲国产精品91 | 九九综合 |