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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10795|回復: 1
打印 上一主題 下一主題
收起左側

STC89C52單片機秒表程序分享

[復制鏈接]
跳轉到指定樓層
樓主
ID:354012 發表于 2018-12-17 21:26 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
利用STC89C52芯片,進行秒表的設計。將四位共陽極數碼管的,段選依口次連接到89C52的P2口上來送段選數據,位選連接在P3口的0,1,2,3上。獨立鍵盤1連接到P1.6上,控制秒表暫停啟動。鍵盤2連接到P1.7上,在秒表暫停狀態下可以進行復位功能。晶振采用的是11.0592MHz,一個機器周期的時間為1.09us,兩邊電容的值為22pF,在電路中其穩定振蕩頻率,達到快速起振的作用。將晶振兩端分別連接在XTAL1和XTAL2上,給單片機提供時鐘信號。

單片機源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned int
  4. sbit key1= P1^6;
  5. sbit key2= P1^7;
  6. uint a,c,bai,shi,ge,hao,num,num1,state=0;
  7. uchar code table[]={
  8. 0xc0,0xf9,0xa4,0xb0,
  9. 0x99,0x92,0x82,0xf8,
  10. 0x80,0x90,0x88,0x83,
  11. 0xc6,0xa1,0x86,0x8e};
  12. void init();
  13. void display();
  14. void delay(uchar);
  15. void keyscan();

  16. void main()
  17. {
  18. init();
  19. while(1){
  20. keyscan();
  21. display();
  22. }
  23. }

  24. void display()
  25. {
  26. hao = num%10;
  27. ge = num/10%10;
  28. shi = num /100%10;
  29. bai = num/1000%10;

  30. P3=0x01;
  31. P2=table[bai];//送百秒上段選數據
  32. delay(1);

  33. P3=0x02;
  34. P2=table[shi];//送十秒上段選數據
  35. delay(1);

  36. P3=0x04;
  37. P2=table[ge];//送秒上段選數據
  38. delay(1);

  39. P3=0x08;
  40. P2=table[hao];//送零點秒上段選數據
  41. delay(1);
  42. }

  43. void init()//初始化函數
  44. {
  45. TMOD=0x01;//工作方式選擇定時器0的工作方式1
  46. TH0=(65536-45872)/256;
  47. TL0=(65536-45872)%256;
  48. EA=1;
  49. ET0=1;
  50. TR0=0;
  51. num = 0;
  52. }

  53. void time() interrupt 1
  54. {

  55. TH0=(65536-45872)/256;
  56. TL0=(65536-45872)%256;
  57. a++;
  58. if(a==2)//2次50ms為0.1s
  59. {
  60. a=0;
  61. num++;
  62. if(num == 10000)//計滿,歸零重新開始
  63. num = 0;
  64. }
  65. }

  66. void keyscan(){
  67. if(!key1)
  68. {
  69. delay(10);//消抖
  70. if(!key1)//如果key1按下
  71. {
  72. state=~state;//state取反
  73. while(!key1){};
  74. TR0 = ~TR0;//定時器0的運行控制位取反
  75. }
  76. }
  77. else if(!key2)
  78. {
  79. delay(10);
  80. if(!key2)//如果key2按下
  81. {
  82. if(state==1){}//在state為1即運行狀態時繼續計時
  83. else if(state==0)//在state為0即暫停狀態時,復位全部歸零
  84. {
  85. hao=0;
  86. ge=0;
  87. shi=0;
  88. bai=0;
  89. num=0;
  90. }
  91. }
  92. }
  93. }

  94. void delay(uchar z)
  95. {
  96. uchar x,y;
  97. for(x=z;x>0;x--)
  98. for(y=110;y>0;y--);
  99. }
復制代碼

所有資料51hei提供下載:
秒表.zip (13.45 KB, 下載次數: 63)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

無效樓層,該帖已經被刪除
無效樓層,該帖已經被刪除
地板
ID:863362 發表于 2023-11-1 14:51 | 只看該作者
加個小數點就更完美了!
P3=0x04;
P2=table[ge]+0x80;//送秒上段選數據
delay(1);
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩高清一区 | 欧美日韩在线一区二区 | 天天干天天草 | 久久综合九色综合欧美狠狠 | 国产成人福利视频在线观看 | 久久一热 | 日韩三区 | 国产电影一区二区三区爱妃记 | 91av在线免费播放 | 国产99久久精品一区二区永久免费 | 中文二区| 精品国产一区二区三区久久久久久 | 波多野结衣一区二区三区在线观看 | 91久久北条麻妃一区二区三区 | 午夜精品久久久久久久久久久久久 | 亚洲电影成人 | 成人免费网站www网站高清 | 91亚洲国产成人久久精品网站 | 黄瓜av| 国产精品欧美精品 | 91精品久久久久久久久久入口 | 日日操夜夜摸 | 伊人久久综合 | 日韩成人免费中文字幕 | 精品欧美乱码久久久久久 | 在线视频中文字幕 | 亚州精品天堂中文字幕 | 午夜视频在线免费观看 | 国产色视频网站 | 欧美a级成人淫片免费看 | 欧美bondage紧缚视频 | 午夜小视频在线播放 | 欧美一区二区三区大片 | 欧美美女爱爱视频 | av一级久久| 少妇精品久久久久久久久久 | 久久99精品国产 | 欧美一级大片 | 日韩精品免费一区二区在线观看 | 国产91精品久久久久久久网曝门 | 亚洲欧美一区二区三区视频 |