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

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

QQ登錄

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

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

單片機(jī)+ch452實(shí)現(xiàn)密碼報(bào)警系統(tǒng)課程設(shè)計(jì) 含源碼,PCB文件,原理圖等資料

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:263514 發(fā)表于 2017-12-19 10:16 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
此設(shè)計(jì)基于IAP15F2K61S2單片機(jī),硬件設(shè)計(jì)利用沈陽(yáng)工業(yè)大學(xué)MDM22小系統(tǒng)板,附件中含有keil4工程與硬件系統(tǒng)原理圖

實(shí)物圖:


Altium Designer畫(huà)的原理圖和PCB圖如下:(51hei附件中可下載工程文件)




單片機(jī)源程序如下:
  1. #include "ch452.h"

  2. uchar DIGCode[]={0x00,0x18,0xd5,0xd9,0x78,0xe9,0xed,0x98,0xfd,0xf9,0xe4,0xbd};//數(shù)碼管字形碼


  3. void ch452_init(void) //定義芯片初始化
  4. {
  5. ch452_din = 0;
  6. ch452_din = 1;
  7. ch452_load = 1;
  8. ch452_clk = 1;
  9. ch452_write(0x403);//系統(tǒng)參數(shù)設(shè)定開(kāi)啟鍵盤掃描,顯示
  10. ch452_write(0x500);//不啟用BCD模式
  11. }
  12. /**********輸入數(shù)據(jù)******/
  13. void ch452_write(unsigned int command)
  14. {
  15. unsigned char i;
  16. ch452_load=0;
  17. for(i=0;i<12;i++) /*輸入12位數(shù)據(jù),低位在前,&表按位與*/
  18. {
  19. ch452_din=command&1;
  20. ch452_clk=0;
  21. ch452_clk=1;
  22. command>>=1; /*上升沿有效*/
  23. }
  24. ch452_load=1; /*上升沿加載數(shù)據(jù)*/
  25. }
  26. /*******讀數(shù)據(jù)************************************/
  27. uint ch452_read()
  28. {
  29. uchar i,j,keyw=0,cmd=0x07;
  30. ch452_load=0;
  31. /*******發(fā)送讀取按鍵命令**************************************/
  32.   for(j=0;j<4;j++)
  33.   {
  34.    
  35.     ch452_din=cmd&0x01;
  36.     ch452_clk=0;
  37.     cmd>>=1;
  38.     ch452_clk=1;
  39.   }
  40.   ch452_load=1;
  41.   for(j=0;j<100;j++);
  42. /********讀取鍵值**********************************************/
  43.   for(i=0;i<7;i++)
  44.   {
  45.     keyw<<=1;           
  46.     if(ch452_dout)
  47.         {
  48.     keyw++;
  49.         }
  50.     ch452_clk=0;
  51.     ch452_clk=1;
  52.   }
  53.   return keyw;
  54. }
  55. /*******讀取鍵盤數(shù)字***********************************/
  56. uint keyword()
  57. {
  58. uint keya,keynum=0;
  59. keya=ch452_read();
  60. switch(keya)
  61. {
  62.            case 0x44:keynum=1;break;
  63.         case 0x45:keynum=2;break;
  64.         case 0x46:keynum=3;break;
  65.         case 0x47:keynum=4;break;
  66.         case 0x4c:keynum=5;break;
  67.         case 0x4d:keynum=6;break;
  68.         case 0x4e:keynum=7;break;
  69.         case 0x4f:keynum=8;break;
  70.         default:keynum=-1;
  71. }
  72. return keynum;
  73. }
  74. /***********數(shù)碼管顯示*****************************/
  75. void ch452_display(uchar n,uchar m)
  76. {
  77.   ch452_write(0xc00+n*256+DIGCode[m]);
  78. }
復(fù)制代碼
  1. #include "ch452.h"
  2. #include"LCD12864.H"
  3. uchar pass_sd[4]={6,6,6,6};//設(shè)定的密碼
  4. uchar pass_mm[4]={0};//輸入的密碼
  5. uchar c=0;//定義C:用c的數(shù)值表示狀態(tài)
  6. uchar k; //
  7. uchar cw=0;//表示密碼輸錯(cuò)的次數(shù)
  8. uchar mw=0;//表示密碼的位數(shù)
  9. uchar count;//在第幾個(gè)數(shù)碼管上顯示
  10. uint ds=0; //進(jìn)入定時(shí)器的次數(shù)
  11. uchar bz=0;        //報(bào)警器標(biāo)志位
  12. /*延時(shí)函數(shù)*/
  13. void delay_xs(uint x)       
  14. {          uint i,j;
  15.         for(i=x;i>0;i--)        
  16.         for(j=110;j>0;j--);
  17. }
  18. /*定時(shí)器*/
  19. void dingshi() //定時(shí)器
  20. {
  21.   TMOD=0X01;         //工作方式一
  22.   TH0=(65536-50000)/256;          //定時(shí)50ms
  23.   TL0=(65536-50000)%256;          
  24.   ET0=1;                                  //允許T1中斷
  25.   TR0=1;                                  //啟動(dòng)中斷函數(shù)
  26. }

  27. /*中斷函數(shù)*/
  28. void time1()interrupt 1 //定時(shí)器0中斷函數(shù)
  29. {
  30.         ds++;
  31.         TH0=(65536-50000)/256;
  32.         TL0=(65536-50000)%256;
  33.         if(ds>450)
  34.         {  
  35.           c=5;
  36.           cw=0;
  37.           EA=0;
  38.           }
  39. }
  40. /*報(bào)警器*/
  41. void baojing()
  42. {  
  43.         if(bz==1)
  44.   { while(ds<200)
  45.   { EA=1;        
  46.   {
  47.         P54=0;        delay_xs(500);
  48.         P54=1;  delay_xs(500);
  49.         }
  50.         }
  51.   }
  52. }
  53. /*輸入密碼*/
  54. void key_in( count)
  55. {  if(ch452_dout==0)
  56.     {k=keyword();
  57.         if(k!=-1)
  58.          {pass_mm[count]=k;        //將鍵值放入輸入密碼數(shù)組中
  59.          ch452_display(count,k); //數(shù)碼管顯示鍵值
  60.          c++;
  61.          if(c==4)
  62.          ch452_display(3,k);
  63.          delay_xs(500);
  64.          mw++;                                  //錯(cuò)誤次數(shù)加1
  65. }}}
  66. /*判斷密碼*/
  67. void key_panduan()
  68. {
  69.      if(pass_sd[0]==pass_mm[0]&&pass_sd[1]==pass_mm[1]&&pass_sd[2]==pass_mm[2]&&pass_sd[3]==pass_mm[3])
  70.          { clear_screen();
  71.           display_GB2312_string(5,5,"請(qǐng)進(jìn)"); //屏幕顯示請(qǐng)進(jìn)
  72.            delay_xs(9000);                                         //延時(shí)
  73.            c=5;
  74.            cw=0;}
  75.           else
  76.           {ch452_display(0,0);//數(shù)碼管0不顯示
  77.            ch452_display(1,0);//數(shù)碼管1不顯示
  78.            ch452_display(2,0);//數(shù)碼管2不顯示
  79.            ch452_display(3,0);//數(shù)碼管3不顯示
  80.            clear_screen();
  81.            delay_xs(500);
  82.            cw++;
  83.            if(cw==3)
  84.            {bz=1;         //報(bào)警器標(biāo)志置1
  85.            c=6;}
  86.            else
  87.            c=5;
  88.           }
  89.           }
  90. /*主函數(shù)*/
  91. void main()
  92. {
  93. loop:c=0;
  94.     ds=0;
  95.         bz=0;
  96.         ch452_init(); //ch452初始化
  97.         dingshi();          //定時(shí)器初始化
  98.         initial_lcd();//12864屏幕初始化
  99.         clear_screen();        //清屏幕
  100.     display_GB2312_string(5,5,"請(qǐng)輸入密碼");//顯示請(qǐng)輸入密碼
  101.         ch452_display(0,0);//數(shù)碼管0不顯示
  102.         ch452_display(1,0);//數(shù)碼管1不顯示
  103.         ch452_display(2,0);//數(shù)碼管2不顯示
  104.         ch452_display(3,0);//數(shù)碼管3不顯示
  105. ……………………

  106. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼



所有資料51hei提供下載:
密碼報(bào)警.rar (6.52 MB, 下載次數(shù): 85)


評(píng)分

參與人數(shù) 1黑幣 +4 收起 理由
西瓜吹風(fēng) + 4 很給力!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:269712 發(fā)表于 2018-1-1 15:49 | 只看該作者
頭文件出錯(cuò)為什么,能發(fā)一下完整程序嗎
回復(fù)

使用道具 舉報(bào)

板凳
ID:577120 發(fā)表于 2020-1-1 18:04 | 只看該作者
沈工大的到此一游!下個(gè)文件就走
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品一区二区在线观看 | 国产在线视频三区 | 日韩欧美第一页 | 超碰精品在线 | 成人精品久久日伦片大全免费 | 一区二区在线观看免费视频 | av国产精品毛片一区二区小说 | 亚洲国产精品一区二区第一页 | 91啪影院 | 日韩高清在线 | 性欧美xxxx | 蜜桃视频成人 | 成人国产午夜在线观看 | 精品视频成人 | 精品丝袜在线 | 国产精品毛片一区二区三区 | 精品国产18久久久久久二百 | 日本在线免费看最新的电影 | 久久亚洲一区二区三区四区 | 日韩欧美一区在线 | 国产丝袜一区二区三区免费视频 | 亚洲精品久久久久久下一站 | 精品国产一区二区三区久久 | 国产亚洲一级 | 精品一级 | 91麻豆精品国产91久久久更新资源速度超快 | 91中文字幕在线观看 | 一本色道精品久久一区二区三区 | 国产在线高清 | 91在线观看免费 | 久久精品综合网 | 国产黄色大片 | 99re热这里只有精品视频 | 精品国产乱码久久久久久果冻传媒 | 欧美日韩黄 | 欧美xxxx做受欧美 | 欧美日韩综合一区 | 久久久久久天堂 | 亚洲成人毛片 | 91久久久久久久久 | 国产精品揄拍一区二区 |