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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機車輛超載檢測仿真程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:675338 發(fā)表于 2019-12-27 13:23 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
車輛超載


單片機源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #include <math.h>
  4. #include <ad.h>
  5. #define uchar  unsigned char
  6. #define uint   unsigned int
  7. #define ulong   long
  8. uchar code zifux[]="0123456789abcdef";
  9. uchar code zifu0[]=" Overload test  ";
  10. uchar code zifu1[]=" parameter set"  ;



  11. sbit  key4=P2^3;  //-
  12. sbit  key5=P2^4;  //+
  13. sbit  key6=P2^5;  //moshi


  14. //-----------------------------

  15. sbit  led2=P0^1;  //燈
  16. sbit  led3=P0^2;  //燈
  17. sbit  buz=P2^0;  



  18. //模式
  19. uchar moshi=0;
  20. uchar run=3;
  21. uchar runled=0;

  22. uchar timel,timeh;
  23. uchar a_a;

  24. //次數(shù)
  25. uint  num=0;
  26. uint  time=1;
  27. uint  t=0;
  28. uint  t1=0;
  29. uint  ctime=1000;
  30. uint  R_flag=0;
  31. uint  C_flag=0;
  32. uint  f=1;
  33. uint  s1=0;
  34. uint  ff=0;
  35. uint  tt=1;
  36. ulong  ad;
  37. #include "1602.h"
  38. //#include "eepom52.h"

  39. void xianshi0()                                                                                                                                                        
  40. {  

  41.   //Weight---------
  42.   LCD1602_string(1,1,zifu0);
  43.   ad= adc0832(0);
  44.   ad=ad*4000/255;
  45.   lcd1602_adr(0x46);
  46.   lcd1602_writenumber('w');
  47.   lcd1602_writenumber(':');
  48.   lcd1602_writenumber(0x30+ad/1000);
  49.   lcd1602_writenumber(0x30+ad%1000/100);
  50.   lcd1602_writenumber(0x30+ad%100/10);
  51.   lcd1602_writenumber(0x30+ad%10);
  52.   lcd1602_writenumber('k');
  53.   lcd1602_writenumber('g');
  54.   //Count--------
  55.   lcd1602_adr(0x40);
  56.   lcd1602_writenumber('c');
  57.   lcd1602_writenumber(':');
  58.   lcd1602_writenumber(0x30+num%100/10);  
  59.   lcd1602_writenumber(0x30+num%10);  

  60. }

  61. void xianshi1()        
  62. {
  63.   LCD1602_string(1,1,zifu1);
  64.   //Weight---------
  65.   lcd1602_adr(0x46);
  66.   lcd1602_writenumber('w');
  67.   lcd1602_writenumber(':');
  68.   lcd1602_writenumber(0x30+ctime/1000);
  69.   lcd1602_writenumber(0x30+ctime%1000/100);
  70.   lcd1602_writenumber(0x30+ctime%100/10);
  71.   lcd1602_writenumber(0x30+ctime%10);
  72.   lcd1602_writenumber('k');
  73.   lcd1602_writenumber('g');
  74.   lcd1602_adr(0x4e); lcd1602_writenumber(' ');

  75.   //Count---------
  76.   lcd1602_adr(0x40);
  77.   lcd1602_writenumber('c');
  78.   lcd1602_writenumber(':');
  79.   lcd1602_writenumber(0x30+time%100/10);  
  80.   lcd1602_writenumber(0x30+time%10);
  81.   lcd1602_adr(0x44); lcd1602_writenumber(' ');
  82. }

  83. //控制---------------------------------
  84. void ctrl()
  85. {
  86.         //**********************************************************
  87.    if(moshi==0)
  88.    {
  89.          //開始
  90.         {
  91.         runled=1;
  92.         IT0=1;        //INT0 中斷允許
  93.         EX0=1;    //INT0
  94.         //------INT1 中斷允許-------
  95.         IT1=1;        //INT1 中斷允許
  96.         EX1=1;    //INT1
  97.    }
  98.   }
  99.    if(key6==0)
  100.    {
  101.    moshi=moshi+1;
  102.    if(moshi==2){lcd1602_adr(0x44); lcd1602_writenumber('<');}
  103.    if(moshi==3){lcd1602_adr(0x4e); lcd1602_writenumber('<');}
  104.    if(moshi==4) moshi=0; while(key6==0);
  105.    }
  106.         //人數(shù)設置
  107.         if((key4==0)&&(moshi==2))
  108.         {
  109.         lcd1602_adr(0x44); lcd1602_writenumber('<');
  110.         if(time<99)time=time+1;         while(key4==0);
  111.         }
  112.         if((key5==0)&&(moshi==2))
  113.         {
  114.         lcd1602_adr(0x44); lcd1602_writenumber('<');
  115.         if(time>0) time=time-1;  while(key5==0);
  116.         }
  117.         //重量設置
  118.         if((key4==0)&&(moshi==3))
  119.         {
  120.         lcd1602_adr(0x4e); lcd1602_writenumber('<');
  121.         if(ctime<4000)ctime=ctime+100;while(key4==0);
  122.         }
  123.         if((key5==0)&&(moshi==3))
  124.         {
  125.         lcd1602_adr(0x4e); lcd1602_writenumber('<');
  126.         if(ctime>0)ctime=ctime-100; while(key5==0);
  127.         }
  128.    }

  129. //主函數(shù)
  130. void main()
  131. {
  132.   _delay_ms(10);
  133. //  led2=0;led1=1;
  134.   //初始化
  135.   lcd1602_init();   
  136.   LCD1602_string(1,1,zifux);
  137.   LCD1602_string(1,1,zifu0);
  138.   //------INT0 中斷允許-------
  139.   IT0=1;        //INT0 中斷允許
  140.   EX0=1;    //INT0
  141.   //------INT1 中斷允許-------
  142.   IT1=1;        //INT1 中斷允許
  143.   EX1=1;    //INT1
  144.   //使能中斷  
  145.   EA=1;        
  146.   num=0;
  147.   while(1)
  148.   {
  149.         if(moshi==0)xianshi0();        
  150.         if(moshi>0)        xianshi1();
  151.         ctrl();
  152.     if(C_flag==1)
  153.         {
  154.         led3=0;
  155.         _delay_ms(500);
  156.         _delay_ms(500);
  157.         _delay_ms(500);
  158.         led3=1;
  159.         C_flag=0;
  160.         }
  161.         if(R_flag==1)
  162.         {
  163.         led2=0;
  164.         _delay_ms(500);
  165.         _delay_ms(500);
  166.         _delay_ms(500);
  167.         led2=1;
  168.         R_flag=0;
  169.         }  
  170.         if((num>time)||(ad>ctime)){buz=0;}
  171.    else {buz=1; }
  172. }        
  173. }

  174. //----INT0 中斷函數(shù)
  175. void  EX_INT0() interrupt 0
  176. {
  177. //功能1
  178. if(runled==1)
  179. {
  180. t=1;
  181. if((t1==1))
  182. {
  183. num=num+1;  
  184. t1=0;
  185. t=0;
  186. R_flag=1;
  187. ff=1;
  188. }
  189. if(num==ctime){f++;ff=0;}
  190. }
  191. }
  192. //----INT1 中斷函數(shù)
  193. void  EX_INT1() interrupt 2
  194. {
  195.   if(runled==1)
  196.   {
  197.         t1=1;  
  198.         if(num==ctime)
  199. {
  200.   s1++;
  201.   if(f>s1)
  202.         {
  203.         ff=1;
  204. s1=0;
  205. f=0;
  206. }
  207. }
  208.         if((t==1)&&(num>0)&&(ff==1))
  209.         {
  210.         num=num-1;
  211.         t1=0;t=0;
  212.   C_flag=1;
  213.   }
  214. }
  215. }
復制代碼

Keil5代碼與Proteus7.5仿真下載:
車輛超載檢測仿真.7z (87.62 KB, 下載次數(shù): 62)

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

使用道具 舉報

沙發(fā)
ID:247623 發(fā)表于 2021-2-16 21:23 | 只看該作者
大家不要下載這份文件,不行啊,里面的仿真文件都是破損的,打不開。我下載了兩次,都不行啊,還我10個下載幣。請工作人員審核的時候好好審核一下,親自運行一下仿真文件好嗎,我們回答問題得幣也不易。

評分

參與人數(shù) 1黑幣 +15 收起 理由
51hei團團 + 15 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:328014 發(fā)表于 2021-2-17 02:16 | 只看該作者
yilinghai 發(fā)表于 2021-2-16 21:23
大家不要下載這份文件,不行啊,里面的仿真文件都是破損的,打不開。我下載了兩次,都不行啊,還我10個下載 ...

我用Proteus7.5版本可以打開,不過顯示是這樣的,估計你不是用的Proteus7.5吧,大家有時間研究一下看看程序有問題沒有,還有沒有改進的地方

51hei.png (19.06 KB, 下載次數(shù): 129)

51hei.png
回復

使用道具 舉報

地板
ID:247623 發(fā)表于 2021-2-19 21:12 | 只看該作者
51hei團團 發(fā)表于 2021-2-17 02:16
我用Proteus7.5版本可以打開,不過顯示是這樣的,估計你不是用的Proteus7.5吧,大家有時間研究一下看看程序 ...

你好,我用proteus7.8和proteus8.0都試過不行,奇怪,低版本的7.5竟然可以打開,神奇
回復

使用道具 舉報

5#
ID:874650 發(fā)表于 2021-2-25 15:33 | 只看該作者
yilinghai 發(fā)表于 2021-2-19 21:12
你好,我用proteus7.8和proteus8.0都試過不行,奇怪,低版本的7.5竟然可以打開,神奇

你好,請問怎么運行呀,沒有說明呢
回復

使用道具 舉報

6#
ID:1021490 發(fā)表于 2022-4-28 15:34 | 只看該作者
源程序是test.uvproj用Keil5打開
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: av日韩精品| 久久精品亚洲一区 | 午夜天堂精品久久久久 | 色婷婷综合久久久中字幕精品久久 | 精品日韩一区 | 91玖玖 | 国产高清在线 | 日韩精品免费看 | 精品视频免费 | 九九热国产精品视频 | 精品国产一区二区在线 | 中文字幕一区二区三区精彩视频 | 日本成人在线观看网站 | 午夜在线影院 | 中文字幕第90页 | 国产日韩久久 | 午夜久久av | 成人免费视频观看视频 | 国内精品久久精品 | 色接久久| 国户精品久久久久久久久久久不卡 | 亚洲国产aⅴ精品一区二区 免费观看av | 久久中文网 | 日本免费一区二区三区四区 | 国产精品一级在线观看 | 人人看人人搞 | 黄频视频| 亚洲福利 | 久久精品国产一区二区三区 | 日日日干干干 | 日韩精品一区二区三区在线播放 | 99视频在线播放 | 99riav国产一区二区三区 | 亚洲国产成人精品久久 | 99国产精品视频免费观看一公开 | 91成人精品 | 亚洲免费一区二区 | 欧美一区二区三区四区视频 | 日韩高清一区 | 国产精品99| 日韩中文字幕一区二区 |