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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

如何編寫59秒計時秒表控制單片機程序,求指導思路

查看數: 5436 | 評論數: 16 | 收藏 1
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2020-6-16 11:54

正文摘要:

編寫59秒計時秒表控制程序。程序功能:采用定時中斷控制兩位數碼管進行秒表的計時顯示。

回復

ID:761989 發表于 2020-6-19 21:13
我們課本的源程序,你可以看看
ID:783844 發表于 2020-6-19 13:23
根據晶振計算一下時間和周期
ID:213173 發表于 2020-6-19 10:10
樓主這個秒表程序很簡單,1個按鍵控制開始/停止/清0。

  1. #include <reg51.H>
  2. #define uint unsigned int                 //宏定義無符號整型數據
  3. #define uchar unsigned char        //宏定義無符號字符型數據

  4. sbit key=P3^7;       

  5. uchar code table[]={//共陰數碼管段碼"0~f-."
  6.                 0x3f,0x06,0x5b,0x4f,
  7.                 0x66,0x6d,0x7d,0x07,
  8.                 0x7f,0x6f,0x77,0x7c,
  9.                 0x39,0x5e,0x79,0x71,0x40,0x80};
  10. uchar Cnt10ms=0,Cnt1s=0;                //中斷計時變量

  11. bit  pause=0;                                        //暫停標志

  12. /***********按鍵掃描程序****************/
  13. void keyscan()       
  14. {
  15.         static uchar value=0,count=0;//鍵值/計數變量                       
  16.         if(!key)                                //檢測輸入如果為0
  17.         {
  18.                 count++;                        //消抖       
  19.                 if(count==2)        //10~20ms       
  20.                 {
  21.                         value++;
  22.                         if(value>=3)
  23.                                 value=0;
  24.                         switch(value)
  25.                         {
  26.                                 case 0: Cnt10ms=0;Cnt1s=0;break;//清0
  27.                                 case 1: pause=1;          break;//計時
  28.                                 case 2: pause=0;                break;//暫停
  29.                         }               
  30.                 }
  31.                 if(count>2)       
  32.                         count=2;                //防止溢出
  33.         }
  34.         else count=0;                //松手清0
  35. }
  36. /***********定時器初始化程序****************/
  37. void Timer0Init(void)                //10毫秒@12.000MHz
  38. {
  39.         TMOD= 0x01;                //設置定時器模式
  40.         TL0 = 0xF0;                //設置定時初值
  41.         TH0 = 0xD8;                //設置定時初值
  42.         TR0 = 1;                //定時器0開始計時
  43.         EA=1;                        //開總中斷
  44.         ET0=1;                        //開定時器0中斷
  45. }
  46. /***********顯示程序****************/
  47. void display()
  48. {
  49.         if(Cnt1s<60)
  50.         {
  51.                 P2=table[Cnt1s/10];//顯示十位
  52.                 P3=table[Cnt1s%10]|0x80;//顯示個位不影響P3.7按鍵

  53.         }
  54.         else
  55.         {
  56.                 P2=0x79;//顯示'E'
  57.                 P3=0x40|0x80;//'-'顯示個位不影響P3.7按鍵
  58.         }
  59. }
  60. /***************主程序****************/
  61. void main()
  62. {
  63.         Timer0Init();        //定時器初始化
  64.         while(1)
  65.         {
  66.                 display();        //顯示程序
  67.         }
  68. }
  69. /**************中斷服務程序*****************/
  70. void timer0() interrupt        1 //10毫秒@12.000MHz
  71. {
  72.         TL0 = 0xF0;                  //設置定時初值
  73.         TH0 = 0xD8;                  //設置定時初值
  74.         if(pause==1)                 //暫停/啟動
  75.         {
  76.                 Cnt10ms++;                 //中斷變量Cntus自+1
  77.                 if(Cnt10ms>=100) //1s
  78.                 {
  79.                         Cnt10ms=0;        //清0
  80.                         if(Cnt1s<60)
  81.                                 Cnt1s++;//秒計數
  82.                 }
  83.         }
  84.         keyscan();        //按鍵掃描
  85. }
復制代碼




ID:332444 發表于 2020-6-19 09:28
分期賣豬肉 發表于 2020-6-18 16:40
你好,能幫忙做一下我帖子嗎?還有十分感謝你的幫忙,怎么分析程序和仿真的,我分享300個程序和仿真給你 ...

程序和仿真圖就是按你發出來的做的,如果感覺我的仿真圖按鍵太多,把多余刪除就是,或直接把所有按鍵刪除即可。
ID:430308 發表于 2020-6-18 19:56
可以參考普中科技的資料
ID:759796 發表于 2020-6-18 16:40
xianfajushi 發表于 2020-6-16 19:57
這個很簡單,分秒各送各數碼管,中斷計時,到我的博客隨便抄寫相關的函數,組合即可。https://blog.csdn.ne ...

你好,能幫忙做一下我帖子嗎?還有十分感謝你的幫忙,怎么分析程序和仿真的,我分享300個程序和仿真給你,都是成功的需要嗎
ID:759796 發表于 2020-6-17 21:32
xianfajushi 發表于 2020-6-17 17:16
哦,發錯下載東西了,呵呵,我之前有提供蛋騙雞的下載,這個論壇找以前帖子太難了真麻煩,不夠直接。

無論怎么樣都謝謝你了 --雖然我不能吸收哈哈哈,十分感謝你
ID:332444 發表于 2020-6-17 17:19
ID:332444 發表于 2020-6-17 17:16
哦,發錯下載東西了,呵呵,我之前有提供蛋騙雞的下載,這個論壇找以前帖子太難了真麻煩,不夠直接。 2IO口2個1位數碼管秒表.rar (29.24 KB, 下載次數: 7)

ID:332444 發表于 2020-6-17 17:09
仿真圖修改刪除不需要的部分,當然不是全部刪除和修改,這16個按鍵比起矩陣16個按鍵寫驅動要容易得多得多,以后寫示例就用這16按鍵,不再寫矩陣16按鍵。
ID:332444 發表于 2020-6-17 17:06
分期賣豬肉 發表于 2020-6-17 14:21
還有你這按鈕也太多了把 --=

這里有下載的文件,自己去修改:http://www.zg4o1577.cn/bbs/forum.p ... mp;page=1#pid873611
ID:759796 發表于 2020-6-17 14:21

還有你這按鈕也太多了把 --=
ID:759796 發表于 2020-6-17 14:17

我不知道怎么畫,那個綠色的是總線?現在還不會用
ID:759796 發表于 2020-6-17 14:15

你好,能不能直接放仿真和程序打包?我好下載
ID:332444 發表于 2020-6-17 10:52

ID:332444 發表于 2020-6-16 19:57
這個很簡單,分秒各送各數碼管,中斷計時,到我的博客隨便抄寫相關的函數,組合即可。https://blog.csdn.net/xianfajushi/article/details/89448933

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天看天天操 | 亚洲啊v在线 | www.欧美.com| 欧美v在线观看 | 狠狠色香婷婷久久亚洲精品 | 精品欧美一区二区三区精品久久 | 久久久国产精品一区 | 91麻豆精品国产91久久久久久 | 久久久精品网站 | 久久剧场 | 欧美mv日韩mv国产网站91进入 | 久久尤物免费一区二区三区 | 中文字幕在线播放第一页 | 欧美精品久久久久久久久老牛影院 | 天天夜碰日日摸日日澡 | 日韩在线视频一区二区三区 | 久久久精品视频免费看 | 亚洲精品粉嫩美女一区 | 一级做a爰片性色毛片视频停止 | 国产aa | 欧美精品首页 | 欧美国产精品一区二区 | 男人天堂久久 | 日本免费黄色一级片 | 黄色一级视频 | 欧美日韩在线精品 | 精品欧美激情在线观看 | 国产精品1区2区 | 正在播放一区二区 | 九九热免费在线观看 | 日韩在线精品视频 | 妹子干综合| 中文字字幕在线中文乱码范文 | 国产精品免费高清 | 亚洲永久免费观看 | 欧美日韩综合一区 | 久久综合久久综合久久综合 | 亚洲国产一区二区三区在线观看 | 韩日免费视频 | 国产在线精品一区二区 | 少妇特黄a一区二区三区88av |