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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

這是一年前弄的單片機控制的壓力檢測傳感器源碼+仿真

[復制鏈接]
跳轉到指定樓層
樓主
電風扇是我用智能電風扇的仿真文件改的,所以其他功能沒有,就只有壓力傳感器有用
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源碼:
  1.                            
  2. #include"reg52.h"//頭文件
  3. #include<intrins.h>
  4. #define DD P2
  5. sbit CS=P1^0; //定義端口
  6. sbit CLK=P1^1;
  7. sbit DO=P1^2;
  8. sbit DI=P1^3;
  9. sbit KEY=P1^7;
  10. sbit buzzer=P0^0;
  11. sbit Rs=P1^4;//LCD定義端口
  12. sbit Rw=P1^5;
  13. sbit E=P1^6;
  14. sbit busy_p=ACC^7;
  15. unsigned char CH=0x02,key_count=1;
  16. unsigned char HC[6]={0};
  17. unsigned char BZ=0;
  18. void delay_1ms(unsigned char i) //延時函數1ms
  19. {
  20. unsigned char j;
  21. while(i--)
  22. for(j=0;j<125; j++);
  23. }
  24. void delay_10ns(unsigned char i)//延時函數10ns
  25. {
  26. unsigned char j;
  27. while(i--)
  28. for(j=0;j<10; j++);
  29. }
  30. void xiezhiling(unsigned char com,bit p)//寫命令函數
  31. {
  32. if(p)
  33. delay_10ns(5);
  34. E=0;
  35. Rs=0;
  36. Rw=0;
  37. DD=com;
  38. delay_10ns(50);
  39. E=1;
  40. delay_1ms(2);
  41. E=0;
  42. delay_10ns(4);
  43. }
  44. void xieshuju(unsigned char DATA)//寫數據函數
  45. {
  46. delay_10ns(50);
  47. E=0;
  48. Rs=1;
  49. Rw=0;
  50. DD=DATA;
  51. delay_10ns(50);
  52. E=1;
  53. delay_10ns(50);
  54. E=0;
  55. delay_10ns(4);
  56. }

  57. void init(void)//初始化函數
  58. {
  59. delay_1ms(15);
  60. xiezhiling(0x38,0);
  61. delay_1ms(5);
  62. xiezhiling(0x38,0);
  63. delay_1ms(5);
  64. xiezhiling(0x38,0);
  65. delay_1ms(5);
  66. xiezhiling(0x38,1); //功能設定(8位,2行,5*7點矩陣)
  67. xiezhiling(0x08,1);
  68. xiezhiling(0x01,1); //清除屏幕
  69. xiezhiling(0x06,1); //加1
  70. xiezhiling(0x0c,1);//顯示器ON,光標OFF,閃爍OFF
  71. }
  72. unsigned char ADconv(void)//AD轉換子程序
  73. {
  74. unsigned char i;
  75. unsigned int data_f=0,data_c=0;
  76. DI=1;
  77. CS=1;
  78. _nop_();
  79. CS=0;
  80. DI=1; ;
  81. CLK=1;
  82. _nop_();
  83. _nop_();
  84. CLK=0;
  85. _nop_();
  86. _nop_();
  87. CLK=1;
  88. DI=(bit)(0x02&CH);
  89. _nop_();
  90. CLK=0;
  91. _nop_();
  92. _nop_();
  93. CLK=1;
  94. DI=(bit)(0x01&CH);
  95. _nop_();
  96. _nop_();
  97. CLK=0;
  98. DI=1;
  99. CLK=1;
  100. _nop_();
  101. _nop_();
  102. CLK=0;
  103. _nop_();
  104. CLK=1;
  105.      

  106. for(i=8;i>0;i--)
  107. {
  108.   data_f|=DO;
  109.   data_f<<=1;
  110.   CLK=1;
  111.   _nop_();
  112.   _nop_();
  113.   CLK=0;
  114.   _nop_();
  115. }
  116. for(i=8;i>0;i--)
  117. {
  118.   data_c<<=1;
  119.   data_c|=DO;
  120.   _nop_();
  121.   CLK=1;
  122.   _nop_();
  123.   _nop_();
  124.   CLK=0;
  125.   _nop_();

  126. }

  127. CLK=0;
  128. _nop_();
  129. _nop_();
  130. CLK=1;
  131. _nop_();
  132. _nop_();

  133. CLK=0;
  134. _nop_();
  135. _nop_();
  136. CLK=1;
  137. _nop_();
  138. CS=1;
  139. _nop_();
  140. _nop_();
  141. return data_f;
  142. }

  143. void xs_int(unsigned int shuju)//將一個數據各個位分開并存放在H C[]數組中
  144. {

  145. if(shuju < 10)
  146.   BZ = 1;
  147. else if(shuju < 100) BZ = 2;
  148. else if(shuju < 1000) BZ = 3;
  149. else if(shuju < 10000) BZ = 4;
  150. else if(shuju < 65535) BZ = 5;
  151. switch(BZ)
  152. {
  153.   case 5:HC[5] = shuju/10000; //百位
  154.   case 4:HC[3] = shuju%10000/1000;//十位
  155.   case 3:HC[2] = shuju%1000/100;//個位
  156.   case 2:HC[1] = shuju%100/10;//小數點后一位
  157.   case 1:HC[0] = shuju%10;
  158.   break;
  159.   default:break;
  160. }



  161. }
  162. void main(void)//主函數
  163. {
  164. unsigned int data_temp=0;
  165. init();
  166. TMOD=0x01;
  167. TH0=(65536-50000)/256;
  168. TL0=(65536-50000)%256;
  169. ET0=1;
  170. TR0=1;



  171. while(1)
  172. {
  173.   data_temp=ADconv();
  174.   if(data_temp>128)//報警數值
  175.   {
  176.    EA=1;
  177.   }
  178.   else
  179.   {
  180.    EA=0;
  181.    buzzer=0;
  182.   }
  183.   P3=~data_temp;
  184.   xs_int(196*data_temp);
  185.   if(KEY==0)
  186.   {
  187.    delay_1ms(10);
  188.    if(KEY==0)
  189.    while(!KEY);
  190.    key_count++;
  191.    if(key_count==3)
  192.    key_count=1;
  193.    xiezhiling(0x01,0);
  194.    
  195.   }

  196.   if(key_count==1)
  197.   {
  198.    xiezhiling(0x80,1);//LCD第一行
  199.    xieshuju('P');
  200.    xieshuju('R');
  201.    xieshuju('E');
  202.    xieshuju('S');
  203.    xieshuju('S');
  204.    xieshuju('U');
  205.    xieshuju('R');
  206.    xieshuju('E');
  207.    xieshuju('-');
  208.    xieshuju(HC[5]+0x30);
  209.    xieshuju(HC[3]+0x30);
  210.    xieshuju(HC[2]+0x30);
  211.    xieshuju('.');
  212.    xieshuju(HC[1]+0x30);
  213.    xieshuju('P');
  214.    xieshuju('a');
  215.   
  216.    xiezhiling(0x80+0x40,1);//LCD第二行
  217.    xieshuju('A');
  218.    xieshuju('l');
  219.    xieshuju('a');
  220.    xieshuju('r');
  221.    xieshuju('m');
  222.    xieshuju(' ');
  223.    xieshuju('S');
  224.    xieshuju('t');
  225.    xieshuju('a');
  226.    xieshuju('t');
  227.    xieshuju('u');
  228.    xieshuju('s');
  229.    xieshuju('-');
  230.    xieshuju('-');
  231.    xieshuju('O');
  232.    xieshuju('N');
  233.    
  234.   }
  235.   if(key_count==2)
  236.   {
  237.    xiezhiling(0x80,1);//LCD第一行
  238.    xieshuju('P');
  239.    xieshuju('r');
  240.    xieshuju('e');
  241.    xieshuju('s');
  242.    xieshuju('s');
  243.    xieshuju('u');
  244.    xieshuju('r');
  245.    xieshuju('e');
  246.    xieshuju(' ');
  247.    xieshuju('i');
  248.    xieshuju('s');
  249.    xieshuju(' ');
  250.    xieshuju('O');
  251.    xieshuju('K');
  252.    xieshuju(' ');
  253.    xieshuju(' ');
  254.    
  255.   
  256.    xiezhiling(0x80+0x40,1);//LCD第二行
  257.    xieshuju('m');
  258.    xieshuju('a');
  259.    xieshuju('d');
  260.    xieshuju('e');
  261.    xieshuju(' ');
  262.    xieshuju('B');
  263.    xieshuju('Y');
  264.    xieshuju(' ');
  265.    xieshuju('f');
  266.    xieshuju('u');
  267.    xieshuju('b');
  268.    xieshuju('a');
  269.    xieshuju('o');
  270.    xieshuju('j');
  271.    xieshuju('i');
  272.    xieshuju('e');
  273.    xieshuju(' ');
  274.    
  275.   }
  276.   
  277. …………
  278. …………
  279. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

全部資料51hei下載地址:
電風扇.zip (123.1 KB, 下載次數: 72)


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:523790 發表于 2019-4-28 16:53 來自手機 | 只看該作者
unsigned char i; unsigned int data_f=0,data_c=0; DI=1; CS=1; _nop_(); CS=0; DI=1; ; CLK=1; _nop_(); _nop_(); CLK=0; _nop_(); _nop_(); CLK=1; DI=(bit)(0x02&CH); _nop_(); CLK=0; _nop_(); _nop_(); CLK=1; DI=(bit)(0x01&CH); _nop_(); _nop_(); CLK=0; DI=1; CLK=1; _nop_(); _nop_(); CLK=0; _nop_(); CLK=1;        for(i=8;i>0;i--) {   data_f|=DO;   data_f<<=1;   CLK=1;   _nop_();   _nop_();   CLK=0;   _nop_(); } for(i=8;i>0;i--) {   data_c<<=1;   data_c|=DO;   _nop_();   CLK=1;   _nop_();   _nop_();   CLK=0;   _nop_();  }  CLK=0; _nop_(); _nop_(); CLK=1; _nop_(); _nop_();  CLK=0; _nop_(); _nop_(); CLK=1; _nop_(); CS=1; _nop_(); _nop_(); return data_f; }請問這段代碼各行的意思,求大神幫忙
回復

使用道具 舉報

板凳
ID:523790 發表于 2019-4-28 17:20 來自手機 | 只看該作者
大神為什么我改了壓力傳感器的數值,依舊還是0.00Pa
回復

使用道具 舉報

地板
ID:217347 發表于 2019-5-11 14:00 | 只看該作者
15259527920 發表于 2019-4-28 17:20
大神為什么我改了壓力傳感器的數值,依舊還是0.00Pa

找出為啥了嗎
回復

使用道具 舉報

5#
ID:736882 發表于 2020-4-28 15:27 | 只看該作者
在進行IN+與IN-的輸入時,如果IN-的電壓大于IN+的電壓則轉換后的數據結果始終為00H。所以要接入壓力傳感器CH1而不是CH0
回復

使用道具 舉報

6#
ID:736882 發表于 2020-4-28 15:28 | 只看該作者

較大范圍之內,從而提高轉換的寬度。在進行IN+與IN-的輸入時,如果IN-的電壓大于IN+的電壓則轉換后的數據結果始終為00H。所以電源接ADC0832的CH1而不是CH0
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲日本免费 | 欧美精品在线观看 | 精品国产伦一区二区三区观看体验 | 国产激情偷乱视频一区二区三区 | 日韩高清成人 | 精品久久成人 | 一区二区精品 | 久久亚洲国产精品日日av夜夜 | 天天操天天拍 | 日本国产一区二区 | www.三级 | 亚洲精品国产第一综合99久久 | 911网站大全在线观看 | 午夜视频免费在线观看 | 欧美黄色大片在线观看 | 亚洲视频中文 | 国产精品久久久久国产a级 欧美日韩国产免费 | 国产精品色 | 手机看片在线播放 | a欧美| 欧美在线播放一区 | 国产乱码精品一区二区三区忘忧草 | 日日做夜夜爽毛片麻豆 | 亚洲美女视频 | 黄色国产在线视频 | 欧美一级久久 | 国产精品免费在线 | 久久精品视频网站 | 欧美一级二级三级视频 | 最近免费日本视频在线 | 午夜看电影在线观看 | 国产精品久久久亚洲 | 日本午夜在线视频 | 成人在线视频免费观看 | 欧美激情一区二区三区 | 韩三级在线观看 | 国产精品久久久久一区二区三区 | 在线观看 亚洲 | 亚洲精品一区二区三区丝袜 | 中文字幕精品视频 | 亚洲综合网站 |