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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機控制電影院人數(shù)顯示的設(shè)計報告與源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:310451 發(fā)表于 2018-4-18 07:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機控制電影院人數(shù)顯示
學(xué)    院:       機械工程      
姓    名:        楊        
學(xué)    號:      S2012007002     
指導(dǎo)教師:      魏教授     

一、題目要求
某電影院可容納99人,分別有一個入口和一個出口。設(shè)計一個單片機控制裝置,要求時刻顯示院內(nèi)的人數(shù),超過90人時報警提示,可以手動操作清除顯示、可以手動改變報警閥值在70——90之間變化。
設(shè)計對應(yīng)的單片機系統(tǒng)、供電系統(tǒng)、進出人的計數(shù)傳感裝置,報警的形式。現(xiàn)實人數(shù)的顯示方式。
二、使用方法
1、通電后顯示“00”
2、設(shè)置報警閾值(70—90):按第一個按鈕是加,按第二個按鈕是減
3、兩對紅外發(fā)光二極管與光敏二極管,一個進人,即擋上紅外二極管時數(shù)碼管顯示加一;個出人,即擋上紅外發(fā)光二極管時數(shù)碼管顯示減一。而當(dāng)計數(shù)值大于等于設(shè)定的報警閾值時,蜂鳴器開始響。
4、如果你想重新計數(shù),可以按第三個按鈕實現(xiàn)手動清零
三、調(diào)試
1、確定設(shè)計思路,采用調(diào)用中斷的方式來計數(shù)
2、熟悉電路知識,進行電路設(shè)計:①片機的復(fù)位電路采用自動復(fù)位;②振蕩電路設(shè)計;③數(shù)碼管顯示電路如果用P0口的話,必須有上拉電阻,其他口不用;④比較電路設(shè)計;⑤蜂鳴器的驅(qū)動電路
3、熟悉Proteus軟件,在Proteus中繪制電路原理圖
4、熟悉C語言相關(guān)的知識,在Keil uVision3中進行編程、編譯,看有沒有錯誤,同時編譯時要記得生成一個Hex文件,在仿真時用。
5、把生成的Hex文件調(diào)入Proteus中的單片機中,看程序能否實現(xiàn)所要求功能。遇到的問題:①起初數(shù)碼管沒顯示,是因為我程序中沒給它賦初值“00”;② 點仿真按鈕后,數(shù)碼管總顯示“80”,經(jīng)檢查發(fā)現(xiàn)P0口沒有接上拉電阻;③計數(shù)進位時,總有一個數(shù)不顯示,檢查發(fā)現(xiàn)比較條件不合理;④報警時就響一聲,而不是一直報警,把程序的條件語句改了一下;⑤蜂鳴器一開始只和一電阻串聯(lián)不工作,之后換做了三極管驅(qū)動
6、通電后,數(shù)碼管顯示“88”,經(jīng)檢查連接線路,復(fù)位電路沒有接地
7、檢查單片機工作電壓,晶振是否工作,都正常
8、在單片機電源與地之間接上一個1uF的電容,避免電磁干擾
9、線路有虛焊的地方,又重新連接
10、振蕩電路的晶振和電容排布的離單片機太遠有干擾,又重新調(diào)整
11、比較器的電阻過小,又換了一個47k大電阻
12、單片機的EA引腳沒有接高電平,這樣對于AT系列的單片機會一會兒高電平一會兒低電平,工作不穩(wěn)定
13、檢測光敏二極管在通斷時的電壓,看是否有高低變化,如果沒有,說明電阻不合適,在斷時不能將電壓拉下來,換了一個47K電阻;還是不通,調(diào)整了一下紅外發(fā)光二極管與光敏二極管的對射位置,通了
四、所需器材
AT89C52單片機、晶振6MHZ、電解電容、LM339比較器、74HC245、數(shù)碼管(共陰極)、按鈕、三極管、蜂鳴器、紅外發(fā)光二極管、光敏二極管、電阻、電容、導(dǎo)線
五、所需軟件
Proteus、Keil uVision3、Altium Designer
六、電路原理圖
七、制板圖
八、實物圖
九、工作源程序
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define unit unsigned int
  4. sbit jinren=P3^2;
  5. sbit churen=P3^3;
  6. sbit shezhi_jian=P1^1;
  7. sbit shezhi_jia=P1^0;
  8. sbit baojing=P3^7;
  9. sbit qingling=P1^2;
  10. void delay(uchar);
  11. char j=0;
  12. char h=0;
  13. char k=0;
  14. char i=7;
  15. char code table[]=
  16. {
  17. 0x3f,0x06,0x5b,0x4f,0x66,0x6d,
  18. 0x7d,0x07,0x7f,0x6f
  19. };
  20. void jin(void) interrupt 0/中斷0
  21. {delay(1);
  22. if(jinren==0)
  23. {
  24. j++;
  25. P2=table[j];
  26. P0=table[h];
  27. if(j>9)
  28. {
  29. j=0;
  30. h++;
  31. P2=table[j];
  32. P0=table[h];
  33. }
  34. if(h>9)
  35. {
  36. h=9;
  37. j=9;
  38. P0=table[h];
  39. P2=table[j];
  40. }
  41. }
  42. }
  43. void chu() interrupt 2/中斷1
  44. {
  45. delay(1);
  46. if(churen==0)
  47. {
  48. --j;
  49. P2=table[j];
  50. P0=table[h];
  51. }
  52. if(j<0)
  53. {j=9;
  54. --h;
  55. P0=table[h];
  56. P2=table[j];
  57. }
  58. if(h<0)
  59. {
  60. h=0;
  61. j=0;
  62. P0=table[h];
  63. P2=table[j];
  64. }
  65. }
  66. void main() /主程序
  67. {EA=1;//開全局中斷
  68.   EX0=1;//開外部中斷1
  69.   EX1=1;
  70.   IT0=1;//設(shè)置為邊沿觸發(fā)方式
  71.   IT1=1;
  72.   ES=1;
  73.   P0=table[0];
  74.   P2=table[0];
  75.    while(1)
  76. {
  77. if(qingling==0)
  78.   {
  79.   j=0;
  80.   h=0;
  81.   P0=table[h];
  82.   P2=table[j];
  83.   }
  84. else if(shezhi_jia==0)
  85. {delay(100);
  86.   P2=table[k];
  87.   P0=table[i];
  88.   k++;
  89.   if(k>10)
  90.   {
  91.   k=0;
  92.   P2=table[k];
  93.   i++;
  94.   P0=table[i];
  95.   }
  96.   if(i>9)
  97.   {                                                                                                               
  98.   i=7;
  99.   P0=table[i];
  100.   P2=table[k];
  101.   }
  102.   if(i==9)
  103.   {
  104.   k=0;
  105.   P2=table[k];
  106.   P0=table[i];
  107.   }
  108.   if(i<7)
  109.   {
  110.   i=7;
  111.   k=0;
  112.   P0=table[i];
  113.   P2=table[k];
  114.   }
  115.   }
  116. else if(shezhi_jian==0)
  117.   {
  118.   delay(100);
  119.   k--;
  120.   P2=table[k];
  121.   P0=table[i];
  122.   if(k<0)
  123.   {
  124.   k=9;
  125.   i--;
  126.   P2=table[k];
  127.   P0=table[i];
  128.   }
  129.   if(i<7)
  130.   {i=7;
  131.   k=0;
  132.   P0=table[i];
  133.   P2=table[k];
  134.   }
  135.   }                                                                                   
  136. else if((j>=(k-1))&&(h>=i))
  137.   {
  138.   baojing=0;
  139.   }
  140. else if(h>i)
  141.   {
  142.     baojing=0;
  143.               }
  144. else
  145. {
  146. baojing=1;
  147. }
  148.   }
  149. }
  150. void delay(uchar x)
  151. {uchar y;
  152. while(x--)
  153. for(y=0;y<250;y++){}
  154. }
復(fù)制代碼


完整的Word格式報告51黑下載地址:
單片機作業(yè).doc (2.22 MB, 下載次數(shù): 24)



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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区高清 | 欧美成人综合 | 成人国产一区二区三区精品麻豆 | 成人网av | 亚洲一区二区三区视频 | 天堂va在线观看 | 亚洲天堂男人的天堂 | 欧美精品乱码久久久久久按摩 | 欧美日韩精品一区二区三区蜜桃 | 精久久 | 凹凸日日摸日日碰夜夜 | 国产亚洲精品美女久久久久久久久久 | 韩日一区二区 | 国产精品96久久久久久 | 国产久 | av片在线播放 | 麻豆精品久久 | 瑟瑟视频在线看 | h视频免费观看 | 玖玖在线免费视频 | 免费小视频在线观看 | 天天拍天天操 | 免费小视频在线观看 | 日韩精品一区二区三区四区视频 | 日韩av免费看 | 亚洲一区二区三区四区五区中文 | 亚洲日韩中文字幕一区 | 97精品国产97久久久久久免费 | 久久激情五月丁香伊人 | 免费中文字幕 | 黄色大片在线免费观看 | 国产欧美在线播放 | 久久精品视频在线播放 | 欧美日韩高清在线一区 | 国产高清视频在线观看 | aaaaaaa片毛片免费观看 | 一级毛片免费看 | 久久国产视频网站 | 人人干免费 | 激情欧美一区二区三区中文字幕 | 久久精品女人天堂av |