欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于51單片機的可控硅調壓調光源程序-帶過零檢測

[復制鏈接]
跳轉到指定樓層
樓主
ID:338053 發表于 2018-5-25 14:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
基于51單片機的可控硅調壓調光程序-帶過零檢測

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

  2. #include<intrins.h>
  3. sbitledRS=P1^0;
  4. sbitledRW=P1^1;
  5. sbit ledE=P1^2;
  6. sbit keyjia=P2^7;
  7. sbitkeyjian=P2^6;
  8. sbitcontrolLD=P1^3;
  9. bitflag1=1;
  10. bitflag2=1;
  11. unsigned
  12. char code table[]=" guang liangdu
  13. ";
  14. unsignedchar code table1[]=" 00 ";
  15. intnum,flag=0,count=0;
  16. charliangdu=3;
  17. voiddelaykt(void) //導通延時
  18. {
  19. unsigned char a;
  20. for(a=2;a>0;a--);
  21. }
  22. voiddelay(int z) //可調延時
  23. {
  24. unsigned x,y;
  25. for(x=z;x>0;x--)
  26. for(y=110;y>0;y--);
  27. }
  28. void
  29. delay9ms(void) //誤差
  30. -0.43402777778us 延時9ms
  31. {
  32. unsigned char a,b,c;
  33. for(c=1;c>0;c--)
  34. for(b=224;b>0;b--)
  35. for(a=17;a>0;a--);
  36. }
  37. voidwrite_com(unsigned com) //寫指令
  38. {
  39. ledRS=0;
  40. P0=com;
  41. delay(10);
  42. ledE=1;
  43. delay(20);
  44. ledE=0;
  45. }
  46. voidwrite_date(unsigned date) //寫數據
  47. {
  48. ledRS=1;
  49. P0=date;
  50. delay(10);
  51. ledE=1;
  52. delay(20);
  53. ledE=0;
  54. }
  55. voidwrite_liangdu(unsigned liangdu) //寫亮度
  56. {
  57. int shi,ge;
  58. shi=(liangdu-3)/10;
  59. ge=(liangdu-3)%10;
  60. write_com(0x80+0x40+7);
  61. write_date(0x30+shi);
  62. write_date(0x30+ge);
  63. }
  64. voidinit() //初始化
  65. {
  66. controlLD=1; //觸發控制初始化
  67. ledRW=0; //液晶初始化
  68. ledE=0;
  69. write_com(0x38);
  70. write_com(0x0c);
  71. write_com(0x06);
  72. write_com(0x80);
  73. for(num=0;num<15;num++)
  74. {
  75. write_date(table[num]);
  76. delaykt();
  77. }
  78. write_com(0x80+0x40);
  79. for(num=0;num<15;num++)
  80. {
  81. write_date(table1[num]);
  82. delaykt();
  83. }
  84. EA=1; //外部中斷設置
  85. EX0=1;
  86. IT0=1;
  87. }
  88. voidkeyscanf() //鍵盤判斷
  89. {
  90. if(keyjia==0) //加鍵判斷
  91. {
  92. delaykt();
  93. if(keyjia==0)
  94. {
  95. if(flag1==1)
  96. {
  97. flag1=0;
  98. liangdu++;
  99. if(liangdu==10)
  100. liangdu=3;
  101. write_com(0x80+0x40+7);
  102. write_liangdu(liangdu);
  103. }
  104. }
  105. }
  106. else if(keyjia!=0)
  107. {
  108. delaykt();
  109. if(keyjia!=0)
  110. flag1=1;
  111. }
  112. if(keyjian==0) //減鍵判斷
  113. {
  114. delaykt();
  115. if(keyjian==0)
  116. {
  117. if(flag2==1)
  118. {
  119. flag2=0;
  120. liangdu--;
  121. if(liangdu==2)
  122. liangdu=9;
  123. write_com(0x80+0x40+7);
  124. write_liangdu(liangdu);
  125. }
  126. }
  127. }
  128. else if(keyjian!=0)
  129. {
  130. delaykt();
  131. if(keyjian!=0)
  132. flag2=1;
  133. }
  134. }
  135. voidzhongduan() interrupt 0 //外部中斷
  136. {
  137. flag=1;
  138. }
  139. voidtimepd() //同步標志判斷與定時器設置
  140. {
  141. if(flag==1)
  142. {
  143. flag=0;
  144. TMOD=0x01;
  145. TH0=(65536-1000*(10-liangdu))/256;
  146. TL0=(65536-1000*(10-liangdu))%256;
  147. ET0=1;
  148. TR0=1;
  149. }
  150. }
  151. voidtime0() interrupt 1 //定時中斷程序
  152. {
  153. count=1;
  154. }
  155. voidchufa() //MOS3020觸發
  156. {
  157. if(count==1)
  158. {
  159. count=0;
  160. controlLD=0;
  161. delaykt();
  162. controlLD=1;
  163. delay9ms();
  164. controlLD=0;
  165. delaykt();
  166. controlLD=1;
  167. }
  168. }
  169. voidmain()
  170. {
  171. init();
  172. while(1)
  173. {
  174. keyscanf();
  175. timepd();
  176. chufa();
  177. }
  178. }
復制代碼

所有資料51hei提供下載:
基于51單片機的可控硅調壓調光程序-帶過零檢測.rar (1.16 KB, 下載次數: 92)


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

使用道具 舉報

沙發
ID:416820 發表于 2018-12-28 19:18 | 只看該作者
頂頂,支持樓主
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表