欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4130|回復: 3
收起左側

51單片機紅外傳送帶設計

[復制鏈接]
ID:326613 發表于 2018-5-10 10:36 | 顯示全部樓層 |閱讀模式
技術要求:
(1)用獨立按鍵控制傳送帶的啟動或停止;
(2)用光電傳感器檢測通過其的產品數量;
(3)用LED顯示傳送帶通過產品的數量;
(4)用矩陣鍵盤預置終值,當計數達到終值時,傳送帶停止;

傳動采用步進電機模擬,資料很多,本程序未附該部分源碼。

單片機源程序如下:

  1.     /*16進制數碼管顯示對應按鍵鍵值,單一數碼管顯示,無需掃描*/

  2. #include < reg52.h >

  3. sbit IR_INPUT = P3^2;                        //P3.3引腳設定
  4. //sbit led = P0^0;
  5. sbit ADDR0 = P1^0;
  6. sbit ADDR1 = P1^1;
  7. sbit ADDR2 = P1^2;
  8. sbit ADDR3 = P1^3;
  9. sbit ENLED = P1^4;
  10. sbit KEY_IN_1 = P2^4;
  11. sbit KEY_IN_2 = P2^5;
  12. sbit KEY_IN_3 = P2^6;
  13. sbit KEY_IN_4 = P2^7;
  14. sbit KEY_OUT_1 = P2^3;   
  15. sbit KEY_OUT_2 = P2^2;   
  16. sbit KEY_OUT_3 = P2^1;   
  17. sbit KEY_OUT_4 = P2^0;   

  18. unsigned char code LedChar[] = {
  19.         0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
  20.         0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E
  21. };
  22. unsigned char KeySta[4][4] = {
  23.         {1,1,1,1},{1,1,1,1},{1,1,1,1},{1,1,1,1}
  24. };

  25. unsigned char OptCnt = 0;           //產品數量

  26. void intinit(){

  27.         EA= 1;
  28.         EX0 = 1;           //使能INT0中斷
  29.         IT0 = 1;       //設置INT0為正邊沿觸發
  30.         PX0 = 1;         //外部中斷0優先

  31. }                  
  32. void main(){

  33.         unsigned char i,j;
  34.         unsigned char backup[4][4] = {
  35.                 {1,1,1,1},{1,1,1,1},{1,1,1,1},{1,1,1,1}
  36.         };
  37.         EA = 1;                 
  38.         ENLED = 0;
  39.         ADDR3 = 1;
  40.         ADDR2 = 1;
  41.         ADDR1 =1 ;
  42.         ADDR0 = 1;
  43.         TMOD = 0x01;
  44.         TH0 = 0xFC;
  45.         TL0 = 0x67;
  46.         intinit();
  47.         ET0 = 1;
  48.         TR0 = 1;

  49.         P0 = LedChar[0];

  50.        
  51.         while (1){
  52.                         for(i=0;i<4;i++){
  53.                                 for(j=0;j<4;j++){
  54.                                         if(backup[i][j] != KeySta[i][j]){
  55.                                                 if(backup[i][j] != 0){
  56.                                                         P0 = (LedChar[i*4+j-OptCnt]);
  57.                                                 }
  58.                                         }
  59.                                 }
  60.                        
  61.                         }       
  62.                
  63.                 }       

  64. }



  65. void IterruptTimer0() interrupt 1{
  66.         unsigned char i;
  67.         static unsigned char keyout = 0;
  68.         static unsigned char keybuf[4][4] = {
  69.                 {0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF},
  70.                 {0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF}
  71.         };

  72.         TH0 = 0xFC;
  73.         TL0 = 0x67;

  74.         keybuf[keyout][0] = (keybuf[keyout][0] << 1) | KEY_IN_1;
  75.         keybuf[keyout][1] = (keybuf[keyout][1] << 1) | KEY_IN_2;
  76.         keybuf[keyout][2] = (keybuf[keyout][2] << 1) | KEY_IN_3;
  77.         keybuf[keyout][3] = (keybuf[keyout][3] << 1) | KEY_IN_4;

  78.         for (i=0;i<4;i++){
  79.                 if ((keybuf[keyout][i] & 0x0F) == 0x00){
  80.                         KeySta[keyout][i] = 0;
  81.                 }
  82.                 else if ((keybuf[keyout][i] & 0x0F) == 0x0F){
  83.                         KeySta[keyout][i] = 1;
  84.                 }
  85.         }
  86.         keyout++;
  87.         keyout = keyout & 0x03;
  88.         switch(keyout){
  89.                 case 0:KEY_OUT_4 = 1;KEY_OUT_1 = 0;break;       
  90.                 case 1:KEY_OUT_1 = 1;KEY_OUT_2 = 0;break;       
  91.                 case 2:KEY_OUT_2 = 1;KEY_OUT_3 = 0;break;       
  92.                 case 3:KEY_OUT_3 = 1;KEY_OUT_4 = 0;break;       
  93.                 default: break;
  94.         }
  95. }

  96. void chufa()  interrupt 0{        /*需設置中斷優先級,與數碼管動態掃描區分*/
  97.         IE0 = 0;                                            
  98.         OptCnt++;       
  99.         led=~led;
  100.                                                                           
  101. }                                                                                                                                                                                                                 
復制代碼

所有資料51hei提供下載:
51傳送帶設計.zip (30.53 KB, 下載次數: 67)


回復

使用道具 舉報

ID:782002 發表于 2020-6-20 21:19 | 顯示全部樓層
有protues文件嗎
回復

使用道具 舉報

ID:782002 發表于 2020-6-20 21:19 | 顯示全部樓層
有protues文件嗎
回復

使用道具 舉報

ID:785685 發表于 2020-6-21 14:54 | 顯示全部樓層
能不能幫做一個封箱機簡單控制程序?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表