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

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

QQ登錄

只需一步,快速開(kāi)始

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

單片機(jī)秒表,我的程序出了什么問(wèn)題一直仿真不成功?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
這是一個(gè)秒表系統(tǒng)設(shè)計(jì)
功能:可以選擇正計(jì)時(shí)/倒計(jì)時(shí)。可以自己通過(guò)按鍵設(shè)置倒計(jì)時(shí)的時(shí)間,當(dāng)自己設(shè)定的倒計(jì)時(shí)使蜂鳴器響。
倒計(jì)時(shí)我已經(jīng)完成了,但現(xiàn)在當(dāng)?shù)褂?jì)時(shí)時(shí)間到后使用蜂鳴器響我不知道如何添。蜂鳴IO口為P1^0,使用的是有緣蜂鳴器。我的程序是有問(wèn)題嗎,beep函數(shù)用的正確嗎,一直仿真不成功,蜂鳴器就是不響,求指導(dǎo)
  1. #include<reg52.h> // 包含 52 單片機(jī)寄存器定義的頭文件
  2. unsigned char Tab1[ ]={0x3f,0x06,0x5b,0x4f ,0x66,0x6d,0x7d,0x07,0x7f ,0x6f }; // 段碼表
  3. unsigned char Tab2[ ]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; // 個(gè)位段碼表
  4. unsigned int x;
  5. unsigned char k;
  6. sbit int0=P3^2;          //開(kāi)始/暫停//
  7. sbit int1=P3^3;
  8. sbit SUB60=P1^1; //正計(jì)時(shí)/倒計(jì)時(shí)//
  9. sbit S60=P1^2; //控制60s//
  10. sbit K5=P1^3;//加1s//
  11. sbit K6=P1^4;//減1s//
  12. sbit K7=P1^5; //賦值60s//
  13. sbit K8=P1^6; //清零//
  14. sbit baojing=P1^0;// 蜂鳴器//
  15. /*************************** 延時(shí) 1ms 基準(zhǔn) ******************************************/
  16. void delay1ms(unsigned int i)
  17. {
  18. unsigned char j;
  19. while(i--)
  20. {
  21. for(j=0;j<125;j++) //1ms 基準(zhǔn)延時(shí)程序 12MHZ 晶振
  22. {
  23. }
  24. }
  25. }
  26. /********************************************************************************
  27. ****************** 數(shù)碼管顯示程序 ***********************************************/
  28. void Display(unsigned int x)
  29. {
  30. P2=0xfe; //P2.0 引腳輸出低電平, DS6 點(diǎn)亮
  31. P0=Tab1[x/1000]; // 顯示百位
  32. delay1ms(6);
  33. P2=0xfd; //P2.1 引腳輸出低電平, DS6 點(diǎn)亮
  34. P0=Tab1[x%1000/100]; // 顯示十位
  35. delay1ms(6);
  36. P2=0xfb; //P2.2 引腳輸出低電平, DS6 點(diǎn)亮
  37. P0=Tab2[x%100/10]; // 顯示個(gè)位
  38. delay1ms(6);
  39. P2=0xf7; //P2.3 引腳輸出低電平, DS7 點(diǎn)亮
  40. P0=Tab1[x%10]; // 顯示 0.1 位
  41. delay1ms(6);
  42. P2=0xff;
  43. }
  44. bit BeepEn=0;
  45. void Beep()
  46. {
  47. static unsigned char delay25ms=0;
  48. static unsigned char BeepLong=0;
  49. if(BeepEn)
  50. {
  51. if(delay25ms++>=20)
  52. {
  53. delay25ms=0;
  54. baojing=!baojing;
  55. if(BeepLong++>=20)
  56. {
  57. BeepEn=0;
  58. }
  59. }
  60. }
  61. else{
  62. baojing=1;
  63. BeepLong=0;
  64. delay25ms=0;
  65. }
  66. }
  67. /*******************************************
  68. 函數(shù)功能:主函數(shù)
  69. ******************************************/
  70. void main(void)
  71. {
  72. x=0;
  73. TMOD=0x01; // TMOD=0000 0001B, 使用計(jì)數(shù)器 T0 的工作方式 1
  74. EA=1; // 開(kāi)起總中斷
  75. ET0=1; // 允許定時(shí)器 T0 的中斷
  76. EX0=1; // 允許外中斷 INT0
  77. IT0=1; //INT0 為下負(fù)脈沖觸發(fā)方式
  78. TH0=(65536-50000)/256; // 計(jì)數(shù)器 T0 高 8 位賦初值
  79. TL0=(65536-50000)%256; // 計(jì)數(shù)器 T0 低 8 位賦初值
  80. TF0=0; // 溢出標(biāo)志位清零
  81. while(1)
  82. {
  83. Beep();
  84. /************************************************************
  85. ****************K5 P1.3 按一次加 1 開(kāi)關(guān) S1***************************/
  86. if(K5==0)
  87. {
  88. delay1ms(20);
  89. if(K5==0)
  90. {
  91. x=x+10;
  92. }
  93. while(!K5); // 摁鍵關(guān)斷 摁一次觸發(fā)一次
  94. }
  95. /***********************************************************
  96. ************K6 P1.4 按一次減 1 開(kāi)關(guān) S2**************************/
  97. if(K6==0)
  98. {
  99. delay1ms(20);
  100. if(K6==0)
  101. {
  102. if(x==0)
  103. {
  104. x=10; // 在 00.0 的時(shí)候停止
  105. }
  106. x=x-10;
  107. }
  108. while(!K6); // 摁鍵關(guān)斷 摁一次觸發(fā)一次
  109. }
  110. /*********************************************************************
  111. ******************K7 P1.5 初始值 賦值為 60.0 秒開(kāi)關(guān) S5********************/
  112. if(K7==0)
  113. {
  114. delay1ms(20);
  115. if(K7==0)
  116. {
  117. x=600; // 賦初值 60.0 秒
  118. }
  119. while(!K7); // 摁鍵關(guān)斷 摁一次觸發(fā)一次
  120. }
  121. /*********************************************************************
  122. ******************S60 控制 60S 停止開(kāi)關(guān) P1.2****************************/
  123. if(x==600)
  124. {
  125. if(S60==0) // 如果 P1.2 口是低電平,秒表變化范圍 00.0~60.0
  126. {
  127. TR0=0;
  128. }
  129. }
  130. /********************************************************************
  131. ******************K8 P1.6 清零 clear0 摁鍵開(kāi)關(guān) S3************************/
  132. if(K8==0)
  133. {
  134. delay1ms(20); // 延時(shí)消震
  135. if(K8==0)
  136. {
  137. x=0; // 數(shù)據(jù)清 0 數(shù)碼管顯示 000.0
  138. TR0=0; // 溢出標(biāo)志位清 0
  139. }
  140. }
  141. /************ 數(shù)碼管顯示 ***************************************/
  142. Display(x);
  143. }
  144. }
  145. /**********INT0 中斷函數(shù) 用于開(kāi)始或暫停開(kāi)關(guān) S4******************
  146. **************************************************************/
  147. void begin_stop() interrupt 0
  148. {
  149. if(int0==0)
  150. {
  151. delay1ms(30); // 延時(shí)消震
  152. if(int0==0)
  153. {
  154. TR0=~TR0; // 按鍵摁一次 讀秒開(kāi)始或暫停
  155. if(x==0&&SUB60==0)
  156. {
  157. TR0=0;
  158. }
  159. }
  160. }
  161. }
  162. /*********************************************************
  163. ******T0 計(jì)數(shù)器中斷 控制每隔加 0.1 秒 ***********************/
  164. void add_one0() interrupt 1
  165. {
  166. k++;
  167. if(k==2)
  168. {
  169. k=0;
  170. TF0=0;
  171. if(SUB60==1) // 當(dāng) P1.1 口是高電平時(shí)秒表加 0.1s
  172. // 當(dāng) P1.1 口是低電平時(shí)秒表減 0.1s
  173. {
  174. x=x+1; // 秒表加 0.1s
  175. }
  176. else
  177. {
  178. x=x-1; // 秒表減 0.1s
  179. }
  180. if(x==0)
  181. {
  182. TR0=0;
  183. }
  184. if(x==9999)
  185. {
  186. TR0=0;
  187. }
  188. }
  189. TH0=(65536-50000)/256; // 計(jì)數(shù)器 T0 高 8 位賦初值
  190. TL0=(65536-50000)%256; // 計(jì)數(shù)器 T0 低 8 位賦初值
  191. }
復(fù)制代碼

秒表倒計(jì)時(shí)蜂鳴器.zip

224.12 KB, 下載次數(shù): 6

仿真proteus8,13

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

使用道具 舉報(bào)

沙發(fā)
ID:161164 發(fā)表于 2022-12-1 21:17 | 只看該作者
啊這。。。
在上個(gè)貼子都說(shuō)了
當(dāng)想響蜂鳴器時(shí),就把BeepEn置1

你現(xiàn)在只加了Beep()
BeepEn置1放哪了?
回復(fù)

使用道具 舉報(bào)

板凳
ID:1053789 發(fā)表于 2022-12-1 21:46 | 只看該作者
lkc8210 發(fā)表于 2022-12-1 21:17
啊這。。。
在上個(gè)貼子都說(shuō)了
當(dāng)想響蜂鳴器時(shí),就把BeepEn置1

非常感謝我程序?qū)α耍乾F(xiàn)在我仿真的時(shí)候P1^0引腳給信號(hào),但是蜂鳴器不響是怎么回事,換成LED是亮的
回復(fù)

使用道具 舉報(bào)

地板
ID:1054888 發(fā)表于 2022-12-1 22:05 | 只看該作者
PNP三極管一般是E極接電源正極,C極接負(fù)載,再到負(fù)極。
回復(fù)

使用道具 舉報(bào)

5#
ID:1032822 發(fā)表于 2022-12-2 19:48 | 只看該作者
要不要試一下給你的蜂鳴器加個(gè)三極管
回復(fù)

使用道具 舉報(bào)

6#
ID:213173 發(fā)表于 2022-12-2 20:52 | 只看該作者
1005002719 發(fā)表于 2022-12-1 21:46
非常感謝我程序?qū)α耍乾F(xiàn)在我仿真的時(shí)候P1^0引腳給信號(hào),但是蜂鳴器不響是怎么回事,換成LED是亮的

仿真蜂鳴器分有源和無(wú)源,用錯(cuò)不會(huì)響。










回復(fù)

使用道具 舉報(bào)

7#
ID:1055204 發(fā)表于 2022-12-2 21:01 | 只看該作者
BeepEn置1  試試
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 在线欧美 | 一级片视频免费观看 | 全部免费毛片在线播放网站 | 免费观看黄色一级片 | 欧美亚洲另类丝袜综合网动图 | 亚洲精品一区中文字幕乱码 | 国产盗摄视频 | 精品一区电影 | 国产成人精品一区二区三区 | 99热在线播放 | 国产在线精品一区 | 欧美日韩在线精品 | 久久久久亚洲精品 | 国产一区二区三区色淫影院 | 亚洲欧美日韩一区二区 | 日韩在线视频精品 | 欧美最猛黑人xxxⅹ 粉嫩一区二区三区四区公司1 | 性色av香蕉一区二区 | av片在线免费看 | 中文字幕日韩欧美一区二区三区 | 黄片毛片在线观看 | www.av7788.com| 精品福利视频一区二区三区 | 国产精品18久久久久久白浆动漫 | 97久久精品午夜一区二区 | 精品一级 | 在线综合视频 | 欧美色成人 | 一区二区三区欧美在线 | 综合网在线 | 一级在线视频 | 亚洲码欧美码一区二区三区 | 国产亚洲成av人片在线观看桃 | 久久99国产精一区二区三区 | 亚洲一区免费在线 | 久久综合888 | re久久| 亚洲精品一区二区三区 | 伊人免费观看视频 | 亚洲综合色视频在线观看 | 91精品国产91久久久久久密臀 |