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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1720|回復: 6
收起左側

求大神幫我看一眼這個單片機程序仿真時為什么按鍵沒反應?

[復制鏈接]
ID:563526 發表于 2019-6-18 07:50 | 顯示全部樓層 |閱讀模式
  1. #include<reg51.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uint a,b,i,min,hour,minge,minshi,hourge,hourshi,amin,ahour,aminge,aminshi,ahourge,ahourshi,sec;
  5. uchar int_time;
  6. sbit key1=P1^0;     
  7. sbit key2=P1^1;  
  8. sbit key3=P1^2;  
  9. sbit key4=P1^3;  
  10. sbit lcdrs=P2^0;  
  11. sbit lcdrw=P2^1;
  12. sbit lcden=P2^2;
  13. sbit led=P2^4;   
  14. sbit sound=P2^5;  
  15. uchar code table1[]={'0','1','2','3','4','5','6','7','8','9'};
  16. uchar code table2[]="Time:00:00      " ;
  17. uchar code Alarm_1[]="Alarm:00:00     ";
  18. uchar code nul[]="                 ";
  19.   void delay(unsigned int xms)  //??????
  20. { uint i,j;         
  21.   for(i=xms;i>0;i--)
  22.    for(j=124;j>0;j--);
  23. }
  24. void write_com(uchar com)   //LCD???????
  25. { delay(5) ;
  26. lcdrs=0;
  27. P0=com;
  28. delay(5);
  29. lcden=1;
  30. delay(5);
  31. lcden=0;
  32. }
  33. void write_data(uchar date)     //LCD???????
  34. {
  35. delay(5);
  36. lcdrs=1;
  37. P0=date;
  38. delay(5);
  39. lcden=1;
  40. delay(5);
  41. lcden=0;
  42. }
  43.    void clock_write()
  44.    { while(1)
  45. {
  46.   if(key1==0)                    
  47.   { delay(10);
  48.    if(key1==0)
  49.    {
  50.     if(hour==23)     // ???????
  51.      hour=0;
  52.     else
  53.      hour++;
  54.     hourge=hour%10;
  55.     hourshi=hour/10;
  56.     write_com(0x0f);
  57.     delay(2);
  58.     write_com(0x80+6);
  59.     write_data(table1[hourge]);
  60.     delay(5);
  61.     write_com(0x80+5);
  62.     delay(2);
  63.     write_data(table1[hourshi]);
  64.     while(!key1);
  65.     delay(1);
  66.    }
  67.   }
  68.   if(key2==0)
  69.    {
  70.     delay(10);
  71.    if(key2==0)
  72.    {
  73.     if(min==59)     //????????
  74.      min=0;
  75.     else
  76.      min++;
  77.     minge=min%10;
  78.     minshi=min/10;
  79.                 write_com(0x0f);
  80.                 write_com(0x80+9);
  81.     write_data(table1[minge]);
  82.     delay(1);
  83.                 write_com(0x80+8);
  84.     write_data(table1[minshi]);
  85.     delay(1);
  86.     while(!key2);
  87.    }
  88.    }
  89.   if(key3==0)
  90.    {
  91.     delay(10);
  92.    if(key3==0)
  93.    {
  94.     write_com(0x0c);
  95.     TR1=1;
  96.     while(!key3);
  97.     break;
  98.    }
  99.    }
  100. }
  101. }
  102. void alarm()     
  103. {
  104.   while(1)
  105. {
  106.   if(key1==0)
  107.   {
  108.     delay(10);
  109.    if(key1==0)
  110.    {
  111.     if(ahour==24)   
  112.      ahour=0;
  113.     else
  114.      ahour++;
  115.     ahourge=ahour%10;
  116.     ahourshi=ahour/10;
  117.     write_com(0x0f);
  118.     delay(2);
  119.     write_com(0x80+0x40+8);
  120.     write_data(':');
  121.     write_com(0x80+0x40+7);
  122.     write_data(table1[ahourge]);
  123.     delay(1);
  124.     write_com(0x80+0x40+6);
  125.     delay(2);
  126.     write_data(table1[ahourshi]);
  127.     delay(1);
  128.     while(!key1);
  129.    }
  130.   }
  131.   if(key2==0)
  132.    {
  133.     delay(10);
  134.    if(key2==0)
  135.    {
  136.     if(amin==59)   
  137.      amin=0;
  138.     else
  139.      amin++;
  140.     aminge=amin%10;
  141.     aminshi=amin/10;
  142.     write_com(0x0f);
  143.     delay(2);
  144.     write_com(0x80+0x40+10);
  145.     write_data(table1[aminge]);
  146.     delay(1);
  147.     write_com(0x80+0x40+9);
  148.        delay(2);
  149.     write_data(table1[aminshi]);
  150.     delay(1);
  151.     while(!key2);
  152.    }
  153.    }
  154.   if(key3==0)
  155.    {
  156.     delay(10);
  157.    if(key3==0)
  158.    {
  159.     write_com(0x0c);
  160.     write_com(0x80+0x40);
  161.     for(i=0;i<11;i++)
  162.     write_data(nul[i]);
  163.     while(!key3);
  164.     break;
  165.    }
  166.    }
  167. }
  168. }
  169. void keyscan()   
  170. {
  171.   if(key1==0)   
  172.   {
  173.    delay(10);
  174.   if(key1==0)
  175.   {
  176.    while(!key1);
  177.    time();
  178.   }
  179. }   
  180.   else if(key2==0)   
  181.   {
  182.    delay(10);
  183.   if(key2==0)
  184.   {
  185.    while(!key2)
  186.    {
  187.    ahourge=ahour%10;
  188.    ahourshi=ahour/10;
  189.    write_com(0x80+0x40+7);
  190.    write_data(table1[ahourge]);
  191.    delay(5);
  192.    write_com(0x80+0x40+6);
  193.    delay(2);
  194.    write_data(table1[ahourshi]);
  195.    aminge=amin%10;
  196.    aminshi=amin/10;
  197.    write_com(0x80+0x40+10);
  198.    write_data(table1[aminge]);
  199.    delay(5);
  200.    write_com(0x80+0x40+9);
  201.    delay(2);
  202.    write_data(table1[aminshi]);
  203.    write_com(0x80+0x40);
  204.    for(i=0;i<11;++i)
  205.    write_data(Alarm_1[i]);
  206.    }
  207.    write_com(0x80+0x40);
  208.    for(i=0;i<11;i++)
  209.    write_data(nul[i]);
  210.   }
  211.   }
  212. else if(key3==0)     
  213.   {
  214.    delay(10);
  215.   if(key3==0)
  216.   {
  217.    while(!key3);
  218.       ahourge=ahour%10;
  219.    ahourshi=ahour/10;
  220.    write_com(0x80+0x40+7);
  221.    write_data(table1[ahourge]);
  222.    delay(5);
  223.    write_com(0x80+0x40+6);
  224.    delay(2);
  225.    write_data(table1[ahourshi]);
  226.    aminge=amin%10;
  227.    aminshi=amin/10;
  228.    write_com(0x80+0x40+10);
  229.    write_data(table1[aminge]);
  230.    delay(5);
  231.    write_com(0x80+0x40+9);
  232.    delay(2);
  233.    write_data(table1[aminshi]);
  234.    write_com(0x80+0x40);
  235.    for(i=0;i<11;++i)
  236.    write_data(Alarm_1[i]);
  237.    alarm();
  238.   }
  239.   }
  240. else if(key4==0)     
  241.    delay(5);
  242.   if(key4==0)
  243.   {
  244.    while(!key4);
  245.    a=a+1;
  246.    if(a%2==0)
  247.    {
  248.     for(b=0;b<6;b++)
  249.     {
  250.      sound=~sound;
  251.      delay(200);
  252.     }
  253.     sound=1;
  254.    }
  255.    else if(a%2==1)
  256.    {
  257.     sound=0;
  258.     delay(300);
  259.     sound=1;
  260.     delay(300);
  261.    }
  262.     sound=1;
  263.   }
  264.   }
  265.   void main()
  266.   {
  267.    TMOD=0x01;
  268. TH0=(65536-46483)/256;
  269. TL1=(65536-46483)%256;
  270. EA=1;
  271. ET0=1;
  272. TR0=1;
  273. int_time=0;
  274. sec=55;
  275. min=59;
  276. hour=23;
  277. }
  278. void T0_interserve(void) interrupt 1
  279. {
  280.    int_time++;
  281.    if(int_time==20)
  282.    {int_time=0;
  283.    sec++;
  284.    }
  285.    if(sec==60)
  286.    {   sec=0;
  287.    min++;
  288.    }
  289.    if(min==60)
  290.    {min=0;
  291.    hour++;
  292.    }
  293.    if(hour==24)
  294.    {hour=0;}
  295. TH0=(65536-46483)/256;
  296. TL1=(65536-46483)%256;
  297. }
復制代碼
回復

使用道具 舉報

ID:552614 發表于 2019-6-18 13:50 | 顯示全部樓層
檢查一下引腳有沒有定義錯誤,沒有硬件圖很難看出來
回復

使用道具 舉報

ID:565843 發表于 2019-6-18 16:42 | 顯示全部樓層
求大神給我個項目,單片機實訓,電子鐘,謝謝
回復

使用道具 舉報

ID:213173 發表于 2019-6-18 17:02 | 顯示全部樓層
樓主main程序中沒有調用任何子程序并且沒有主循環,MCU除了反復初始化定時器和時分秒,什么也干不了,包括中斷也不可能發生。
回復

使用道具 舉報

ID:452821 發表于 2019-6-18 19:04 | 顯示全部樓層
主函數沒有循環,程序不運行;隨便一提快三百行的程序沒有注釋對齊也不是很準確看著真的非常頭疼。建議下次改進一下。
回復

使用道具 舉報

ID:563526 發表于 2019-6-18 22:31 | 顯示全部樓層
wulin 發表于 2019-6-18 17:02
樓主main程序中沒有調用任何子程序并且沒有主循環,MCU除了反復初始化定時器和時分秒,什么也干不了,包括 ...

⊙0⊙,謝謝你鴨。
回復

使用道具 舉報

ID:365405 發表于 2019-6-19 15:15 | 顯示全部樓層
主程序沒有循環,所以什么都干不了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天堂va在线 | 天天色图 | 午夜视频免费在线 | 精品网站999www | 亚洲一区二区三区免费 | 九九久久久久久 | 亚洲91精品| 久久久国产一区 | 中文字幕综合 | 日韩精品在线播放 | 伊人色综合久久天天五月婷 | 亚洲成色777777在线观看影院 | 久久精品国产免费看久久精品 | 毛片在线看片 | 久久久www成人免费精品 | 日日夜夜狠狠操 | 日韩在线免费看 | 人人人人干 | 亚洲一区二区三区欧美 | 久在线| 欧美a在线| 亚洲日本欧美日韩高观看 | 国产一区91精品张津瑜 | 欧美一区二区三区四区在线 | 国产91在线 | 亚洲 | 欧美精品成人影院 | 天天av综合 | 日韩欧美在| 蜜桃在线播放 | 夜夜夜夜草 | 日韩欧美日韩在线 | 伊人久久免费视频 | 精品国产乱码久久久久久丨区2区 | 中文字幕一区二区三区四区五区 | 欧美日韩国产一区二区三区 | 久久久久久国产精品久久 | 亚洲精品久 | 精品国产乱码久久久久久图片 | 国产精品3区 | 嫩草网 | 日韩在线不卡 |