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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3221|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

可以改密碼的單片機(jī)電子密碼鎖

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:104835 發(fā)表于 2016-2-2 04:12 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
   4*4鍵盤(pán)輸入,可以更改密碼,有24C02存儲(chǔ)密碼。我用的是6位。也可以多幾位,更改相應(yīng)變量即可。很簡(jiǎn)單。24C02里面我事先寫(xiě)入了初始密碼2 3 4 6 7  0  。調(diào)試成功,可以直接用。STC89C51RC單片機(jī) ,萬(wàn)能板焊接
  1. #include<REG52.H>
  2. #include <intrins.H>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. char code SKEY[16]={4,8,11,15,3,7,10,14,2,6,0,13,1,5,9,12};
  6. char code act[4]={0xfe,0xfd,0xfb,0xf7};
  7. char data rd[6]={1,9,8,5,1,1};
  8. char ct=0;
  9. sbit contel=P2^1;
  10. sbit cin=P0^3;
  11. sbit set=P0^4;
  12. sbit wrong=P0^5;  
  13. sbit SDA=P2^6;
  14. sbit SCL=P2^7;
  15. bdata char com_data;
  16. sbit mos_bit=com_data^7;
  17. sbit low_bit=com_data^0;
  18. void delay_iic(int n);
  19. uchar rd_24c01(char a);
  20. void wr_24c01(char a,char b);
  21. void wtsec();
  22. /**************************************/
  23. void delay_iic(int n)
  24. {
  25. int i;
  26. for(i=1;i<n;i++){}
  27. }
  28. void delay(unsigned int k)
  29. {
  30. unsigned int data i,j;
  31. for(i=0;i<k;i++)
  32. {
  33. for(j=0;j<121;j++)
  34. {;}
  35. }
  36. }
  37. //*************************************
  38. void start()
  39. {
  40. SDA=1;_nop_();_nop_();_nop_();_nop_();
  41. SCL=1;_nop_();_nop_();_nop_();_nop_();
  42. SDA=0;_nop_();_nop_();_nop_();_nop_();
  43. SCL=0;_nop_();_nop_();_nop_();_nop_();
  44. }
  45. //*****************************************
  46. void stop()
  47. {
  48. SDA=0;_nop_();_nop_();_nop_();_nop_();
  49. SCL=1;_nop_();_nop_();_nop_();_nop_();
  50. SDA=1;_nop_();_nop_();_nop_();_nop_();
  51. }
  52. //***********************
  53. void ack()
  54. {
  55. SCL=1;_nop_();_nop_();_nop_();_nop_();
  56. SCL=0;_nop_();_nop_();_nop_();_nop_();
  57. }
  58. //***********************
  59. void shift8(char a)
  60. {
  61. data uchar i;
  62. com_data=a;
  63. for(i=0;i<8;i++)
  64. {
  65. SDA=mos_bit;
  66. SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
  67. SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
  68. com_data=com_data*2;
  69. }
  70. }
  71. //******************
  72. uchar rd_24c01(char a)
  73. {
  74. data uchar i,command;
  75. SDA=1;_nop_();_nop_();_nop_();_nop_();
  76. SCL=0;_nop_();_nop_();_nop_();_nop_();
  77. start();
  78. command=160;
  79. shift8(command);
  80. ack();
  81. shift8(a);
  82. ack();
  83. start();
  84. command=161;
  85. shift8(command);
  86. ack();
  87. SDA=1;_nop_();_nop_();_nop_();_nop_();
  88. for(i=0;i<8;i++)
  89. {
  90. com_data=com_data*2;
  91. SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
  92. low_bit=SDA;
  93. SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
  94. }
  95. stop();
  96. return(com_data);
  97. }
  98. //*****************
  99. void wr_24c01(char a,char b)
  100. {
  101. data uchar command;
  102. _nop_();_nop_();_nop_();_nop_();_nop_();
  103. SDA=1;_nop_();_nop_();_nop_();_nop_();
  104. SCL=0;_nop_();_nop_();_nop_();_nop_();
  105. start();
  106. command=160;
  107. shift8(command);
  108. ack();
  109. shift8(a);
  110. ack();
  111. shift8(b);
  112. ack();
  113. stop();
  114. _nop_();_nop_();_nop_();_nop_();_nop_();
  115. }
  116. //鍵盤(pán)掃描
  117. char scan_key(void)
  118. {
  119. char i,j,in,ini=0,inj=0,temp,del;
  120. bit find=0;
  121. P1=0x0f;
  122. temp=P1;
  123. if(temp!=0x0f)        //按鍵有松開(kāi)過(guò)
  124. for(del=10;del>0;del--);     //鍵盤(pán)去抖延遲
  125. if(temp!=0x0f)
  126. {
  127. for(i=0;i<4;i++)
  128. {
  129. P1=act[i];
  130. in=P1;
  131. in=in>>4;
  132. in=in|0xf0;
  133.   for(j=0;j<4;j++)
  134.   {
  135.     if(act[j]==in)
  136.     {find=1;
  137.     inj=j;ini=i;
  138.     }
  139.   }
  140. }
  141. }
  142. if(find==0)return -1;
  143. return (ini*4+inj);
  144. }
  145. //輸入函數(shù)
  146. void put_secret()
  147. {
  148. char wrt[6];
  149. char et,ft;
  150. char wt,x=1;
  151. char *p,*t;
  152. p=rd;
  153. t=wrt;
  154. for(wt=0;wt<6;)
  155. {
  156. et=scan_key();
  157. if(et!=-1)
  158. {
  159. wrt[wt]=SKEY[et];
  160. wt=wt+x;
  161. cin=0;
  162. delay(200);
  163. cin=1;
  164. }
  165. }
  166. ct=0;
  167. for (ft=0;ft<6;)
  168. {
  169. if(wrt==rd)
  170. {ct=ct+x; }
  171. ft=ft+x;
  172. }
  173. if(ct==6)
  174. contel=1;
  175. else
  176. wrong=0;
  177. }
  178. void  wtsec()
  179.   {
  180. char t[6];
  181. char e,f,i=10;
  182. char w,x=1;
  183. char *m,*n;
  184. m=rd;
  185. n=t;
  186. for(w=0;w<6;)
  187. {
  188. e=scan_key();
  189. if(e!=-1)
  190. {
  191. t[w]=SKEY[e];
  192. w=w+x;
  193. cin=0;
  194. delay(200);
  195. cin=1;
  196. }      
  197. }
  198. for (f=0;f<6;)
  199. {
  200. wr_24c01(i,t[f]);
  201. delay_iic(250);
  202. rd[f]=rd_24c01(i);
  203. delay_iic(250);
  204. f=f+x;
  205. i=i+x;
  206. }      
  207.   }
  208. //============================
  209. void main(void)
  210. {
  211. char c,f, key_val,x=1,ii=10;
  212. contel=0;
  213. wrong=1;
  214. cin=1;
  215. set=0;
  216. delay(2000);
  217. for (f=0;f<6;)
  218. {
  219. rd[f]=rd_24c01(ii);
  220. delay_iic(250);
  221. f=f+x;
  222. ii=ii+x;
  223. }
  224. set=1;
  225. delay(1000);
  226. while(1)
  227. {  
  228. c=scan_key();
  229.    if(c!=-1)
  230.    key_val=SKEY[c];
  231.    switch(key_val)  
  232.     {  
  233.    case 12:cin=0;delay(1000);cin=1;put_secret();break ;
  234.       case 13:ct=0;wrong=1;contel=0;cin=1;set=1;break;  
  235.       case 14:if(ct==6){set=0;wtsec();set=1;} set=1;ct=0;break;
  236.       default:break;
  237. }
  238. }
  239. }
復(fù)制代碼

    //實(shí)驗(yàn)板上24C02已寫(xiě)入數(shù)據(jù) {2,3,4,6,7,0}

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

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:121495 發(fā)表于 2016-5-21 13:51 | 只看該作者
有沒(méi)有仿真圖  或者原理圖呢
回復(fù)

使用道具 舉報(bào)

板凳
ID:234643 發(fā)表于 2017-9-28 10:37 | 只看該作者
有圖嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品视频观看 | 欧美一区二区二区 | 中文字幕精品一区二区三区精品 | 日韩一区二区在线视频 | 欧美日韩成人在线观看 | 亚洲欧美日韩电影 | 国产视频二区 | 一区二区三区四区在线视频 | 免费在线观看av片 | 国产成人a亚洲精品 | 午夜小视频在线播放 | 久久精品国产免费看久久精品 | 日韩精品一区二区三区中文在线 | 亚洲一区二区精品视频 | 成年精品 | 99热精品在线 | 国产欧美在线 | 国产精品成人69xxx免费视频 | 国产激情视频网址 | 亚洲美女一区二区三区 | 成人福利电影 | 黄色av网站免费看 | 日韩成人国产 | 久在线| 日韩欧美一区二区三区免费看 | 欧美激情久久久 | 久草免费在线视频 | 色站综合| 免费成人高清 | 国产91在线 | 欧美 | 视频在线观看一区二区 | 亚洲精品久| 99re超碰| 欧美视频日韩 | 亚洲国产中文字幕 | 亚洲国产精品视频一区 | 国产美女高潮 | 国产精品免费小视频 | 久青草影院 | 成人h电影在线观看 | 午夜精品久久 |