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

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

QQ登錄

只需一步,快速開始

搜索
查看: 3150|回復(fù): 1
收起左側(cè)

PC機(jī)控制的單片機(jī)倒計(jì)時(shí)秒表設(shè)計(jì)

[復(fù)制鏈接]
ID:635632 發(fā)表于 2020-6-24 10:34 | 顯示全部樓層 |閱讀模式
基本功能:PC機(jī)通過串口以字符方式向單片機(jī)發(fā)送一1位十進(jìn)制數(shù)值(仿真時(shí)串口發(fā)送器的顯示設(shè)置為Echo T),波特率為9600,單片機(jī)收到后將其顯示到數(shù)碼管上,當(dāng)P3.2引腳按鍵按下時(shí)開始做秒表倒計(jì)時(shí)(這里使用的是定時(shí)器),數(shù)值減到0停止,P3.5端口的LED燈閃爍三下
發(fā)揮部分:在基本功能基礎(chǔ)上,PC機(jī)通過串口向單片機(jī)發(fā)送一2位十進(jìn)制數(shù)值
我把基本功能做出來了,有需要的下載即可,另外有沒有大佬指點(diǎn)一下發(fā)揮部分應(yīng)該怎樣寫?

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)

仿真圖

仿真圖


單片機(jī)源程序如下:
  1. #include <reg52.h>

  2. sbit key = P3^2;
  3. sbit led = P3^5;

  4. typedef unsigned char uchar;
  5. typedef unsigned int uint;

  6. uchar smg[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x00};
  7. uchar num[2];
  8. uchar time,tt=0,over = 0;
  9. char s = 0;

  10. /*****************************************
  11.            延時(shí)函數(shù)
  12. *****************************************/
  13. void delay(uint x)
  14. {
  15.         uchar y;
  16.         for(x;x>0;x--)
  17.                 for(y=110;y>0;y--);        
  18. }


  19. /*****************************************
  20.            數(shù)碼管顯示函數(shù)
  21. *****************************************/
  22. void smg_show(char num_[])
  23. {
  24.         char i;
  25.         num_[0] = 0;
  26.         //num_[1] = 2;                                
  27.         for(i=6;i<=7;i++)
  28.         {
  29.                 P1=(0x01<<i);
  30.                 P0=~smg[num_[i-6]];
  31.                 delay(1);
  32.                 P0=0xff;
  33.                 delay(1);
  34.         }
  35. }

  36. void time_uart_init()
  37. {
  38.         TMOD = 0x21;//選擇為定時(shí)器0模式,工作方式1,僅用TR0打開啟動(dòng)。
  39.         SCON = 0x50;
  40.         TH0=0XFC;        //給定時(shí)器賦初值,定時(shí)1ms
  41.         TL0=0X18;        
  42.         TH1 = 0xfd;
  43.         TL1 = 0xfd;        
  44.         ET0=1;//打開定時(shí)器0中斷允許
  45.         EA=1;//打開總中斷
  46.         TR0=1;//打開定時(shí)器               
  47.         TR1 = 1;
  48.         ES = 1;
  49.         
  50. }


  51. void main()
  52. {
  53.         uchar j = 0;
  54.         time_uart_init();
  55.         while(1)
  56.         {
  57.         //        time =         num[0]
  58.                 num[0] = 0;
  59.                 num[1] = time;
  60.                 smg_show(num);
  61.                 if(key == 0)
  62.                 {
  63.                         s = 1;
  64.                         while(!key);
  65.                 }
  66.                 if(over)
  67.                 {
  68.                         for(j = 0;j<6;j++)
  69.                         {
  70.                                    led = ~led;
  71.                                 delay(1000);
  72.                         }
  73.                         over = 0;
  74.                 }
  75.         }
  76. }



  77. /*****************************************
  78.            定時(shí)器0中斷函數(shù)
  79. *****************************************/
  80. void Timer0() interrupt 1
  81. {
  82.         static uint i;
  83.         TH0=0XFC;        //給定時(shí)器賦初值,定時(shí)1ms
  84.         TL0=0X18;
  85.         i++;
  86.         if(i==1000)
  87.         {
  88.                 if(s)
  89.                 {
  90.                         time--;
  91.                         if(time<=0)
  92.                         {
  93.                            time = 0;
  94.                            over = 1;
  95.                            s = 0;
  96.                         }
  97.                                 
  98.                         
  99.                 //        over = 1;
  100.                 }        
  101.                 i = 0;        
  102.         }        
  103. }

  104. void serve() interrupt 4
  105. {
  106.          uchar temp;
  107.          if(RI)
  108.         {
  109.                 RI = 0;
  110.                 temp = SBUF-0x30;
  111.                 time = temp;
  112.                 num[tt] = temp;
  113.                 tt++;
  114.                 if(tt==2)
  115.                         tt = 0;                        
  116.         }

  117. }
復(fù)制代碼

所有資料51hei提供下載:
PC機(jī)控制的倒計(jì)時(shí)秒表.zip (25.43 KB, 下載次數(shù): 20)



評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:1069274 發(fā)表于 2023-4-1 21:10 | 顯示全部樓層
copy 一下
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 男女污网站 | 中文字幕二区三区 | 香蕉视频黄色 | 久久久精| 欧美三级三级三级爽爽爽 | 99久久精品国产一区二区三区 | 亚洲三级免费看 | 最近日韩中文字幕 | 天堂在线91 | 欧美国产激情 | 日韩午夜| 久久久久久久香蕉 | 成人久久久 | 亚洲网址| 午夜免费网站 | 隔壁老王国产在线精品 | 午夜av一区二区 | www.国产| 午夜欧美| 日韩在线小视频 | 在线免费看黄 | av片毛片| 涩涩视频在线观看 | 欧美成人a∨高清免费观看 色999日韩 | 成人三级视频 | 成人精品一区二区 | 日本视频一区二区三区 | 亚洲国产福利视频 | 在线资源视频 | 欧美日韩三级 | 日本亚洲一区 | 天天久久 | 成人免费网站www网站高清 | 在线观看亚洲专区 | 男人天堂久久 | 午夜影院在线观看视频 | 国产精品不卡一区 | 午夜影院中文字幕 | 干干干操操操 | 老牛影视av一区二区在线观看 | 免费一级做a爰片久久毛片潮喷 |