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

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

QQ登錄

只需一步,快速開始

搜索
查看: 10668|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

STC89C52單片機(jī)秒表程序分享

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

單片機(jī)源程序如下:
  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];//送百秒上段選數(shù)據(jù)
  32. delay(1);

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

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

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

  43. void init()//初始化函數(shù)
  44. {
  45. TMOD=0x01;//工作方式選擇定時(shí)器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)//計(jì)滿,歸零重新開始
  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;//定時(shí)器0的運(yùn)行控制位取反
  75. }
  76. }
  77. else if(!key2)
  78. {
  79. delay(10);
  80. if(!key2)//如果key2按下
  81. {
  82. if(state==1){}//在state為1即運(yùn)行狀態(tài)時(shí)繼續(xù)計(jì)時(shí)
  83. else if(state==0)//在state為0即暫停狀態(tài)時(shí),復(fù)位全部歸零
  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. }
復(fù)制代碼

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


評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:863362 發(fā)表于 2023-11-1 14:51 | 只看該作者
加個(gè)小數(shù)點(diǎn)就更完美了!
P3=0x04;
P2=table[ge]+0x80;//送秒上段選數(shù)據(jù)
delay(1);
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久一区二区三区电影 | 一区二区三区精品在线 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 先锋资源亚洲 | 国产精品1区 | 天堂国产 | 超碰av人人 | 国产亚洲精品久久yy50 | 成人免费观看男女羞羞视频 | 在线欧美日韩 | 天堂一区二区三区四区 | 五月婷亚洲 | 天天操 天天操 | 国产一级片精品 | 色吧综合| 女女百合av大片一区二区三区九县 | a在线观看 | 国产高清久久 | 日韩欧美中文 | 美女天天干 | 玖玖玖在线观看 | 日本精品一区二区三区视频 | 日韩免费视频 | 香蕉久久久 | 亚洲网站在线 | 亚洲一区二区三区在线播放 | 日韩 欧美 二区 | 久久久久久久久久久久久91 | 国产精品久久久久aaaa樱花 | 久久精品国产亚洲夜色av网站 | 亚洲一区二区在线 | 久久精品久久精品 | 亚洲精品高清视频在线观看 | 欧美日韩国产精品一区 | 日韩精品一区二区三区视频播放 | 国产亚洲精品久久久久动 | 亚洲欧美一区二区三区1000 | 亚洲精品一二三区 | 亚洲精品一区二区三区四区高清 | 久久久久亚洲精品国产 | 国产中文 |