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

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

QQ登錄

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

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

單片機(jī)測(cè)速與1602顯示程序與電路

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:157256 發(fā)表于 2016-12-23 23:08 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
STC12C單片機(jī)控制
光傳感器測(cè)速
PWM控制直流電機(jī)
下載:
程序 15:28.rar (109.18 KB, 下載次數(shù): 148)


部分代碼預(yù)覽:
  1. #include"mytype.h"  //包含總合的頭文件

  2. #define DATA P2    //定義P0口為數(shù)據(jù)端

  3. //定義按鍵I/O口
  4. sbit key0=P0^6;                //正反轉(zhuǎn)、停止模式切換按鍵
  5. sbit key1=P0^7;                //加速按鍵
  6. sbit key2=P0^2;       
  7. sbit key3=P0^1;        //減速按鍵
  8. //sbit PWM=P0^0;
  9. //****************
  10. uchar   table2[16]="     _DGUT_     ";//第1行液晶顯示
  11. uchar  table1[16]= "000  Chen ZiXing";//第2行液晶顯示
  12. uchar  number_table[10]="0123456789";
  13. sbit lcden=P3^2;//液晶使能端
  14. sbit lcdrs=P3^5;//液晶讀寫(xiě)控制端
  15. sbit wela=P3^3;
  16. //uchar number;
  17. uchar ge=0,shi=0,bai=0;
  18. //****************
  19. //定義全局變量flag=0,
  20. uchar speed=0,speed1=0;  //正反轉(zhuǎn)的標(biāo)志位,0停止,1正轉(zhuǎn),2反轉(zhuǎn)
  21. uint  num;   //定時(shí)器1的計(jì)數(shù)變量
  22. int quan;

  23. void delay(uint z)//延時(shí)函數(shù)
  24. {
  25.         uint x,y;
  26.         for(x=z;x>0;x--)
  27.                 for(y=310;y>0;y--);
  28. }
  29. void write_com(uchar com)//液晶寫(xiě)地址函數(shù)
  30. {
  31.         lcdrs=0;
  32.         P2=com;
  33.         delay(5);
  34.         lcden=1;
  35.         delay(5);
  36.         lcden=0;
  37. }
  38. void write_data(uchar date)//液晶寫(xiě)數(shù)據(jù)函數(shù)
  39. {
  40.         lcdrs=1;
  41.         P2=date;
  42.         delay(5);
  43.         lcden=1;
  44.         delay(5);
  45.         lcden=0;
  46. }
  47. void init()//液晶初始化函數(shù)
  48. {

  49.         wela=0;
  50.         lcden=0;
  51.         write_com(0x38);
  52.         write_com(0x0c);
  53.         write_com(0x06);
  54.         write_com(0x01);
  55. }
  56. void Lcd_display()//液晶顯示函數(shù),主要是刷新轉(zhuǎn)速專用
  57. {
  58.         uint i;
  59.         table1[0]=number_table[bai];
  60.         table1[1]=number_table[shi];
  61.         table1[2]=number_table[ge];

  62.         write_com(0x80+0x40);
  63.         for(i=0;i<3;i++)
  64.         {
  65.                  write_data(table1[i]);
  66.                 delay(1);
  67.         }
  68. }
  69. void main()
  70. {        
  71.        
  72.         uchar number;
  73.         time_init();    //定時(shí)器初始化
  74.         PWM_Init();     //PWM初始化       
  75.         UART1_Init(9600);//串口初始化
  76.         DATA=0x00;      //數(shù)據(jù)端初始化為0
  77.         init();

  78.         write_com(0x80);
  79.         for(number=0;number<16;number++)
  80.         {
  81.                 write_data(table2[number]);
  82.                 delay(10);
  83.          }
  84.          write_com(0x80+0x40);
  85.          for(number=0;number<16;number++)
  86.          {
  87.                  write_data(table1[number]);
  88.                 delay(10);
  89.         }
  90.        
  91.         PWM_SET(46,0);//進(jìn)去先讓電機(jī)速度為零
  92.        
  93.         while(1)
  94.          {
  95.                  keyscan();                                                        //按鍵掃描                   
  96.                  
  97.         /******用定時(shí)器1計(jì)算時(shí)間,每1秒算一次速度直接顯示*******/
  98.                  if(num>=20)//num 是T1計(jì)數(shù)器計(jì)數(shù)變量,numG=20時(shí)為1秒
  99.                  {
  100.                          TR0=0;TR1=0;//關(guān)定時(shí)器0/1中斷
  101.                          
  102.                                  num=0;//計(jì)數(shù)變量清零
  103.                          
  104.                                  ge=quan%10;quan=quan/10;
  105.                                  shi=quan%10;quan=quan/10;
  106.                                  bai=quan%10;

  107.                                  Lcd_display();        //LCD顯示控制                         
  108.                                  quan=0;//圈數(shù)記錄清零
  109.                                 TR1=1;TR0=1;        //開(kāi)定時(shí)器0/1中斷
  110.                  }

  111.         /*******************************************************************/
  112.                           
  113.          }

  114. }

  115. void time_init()
  116. {
  117.   TMOD=0x15;               //設(shè)置定時(shí)器0為計(jì)數(shù)模式,定時(shí)器1為定時(shí)模式,都為工作方式1
  118.         TH0=(65536-1)/256;     
  119.         TL0=(65536-1)%256;
  120.         TH1=(65536-45872)/256;
  121.         TL1=(65536-45872)%256;       
  122.         ET0=1;                                        //開(kāi)定時(shí)器0中斷
  123.         TR0=1;                                        //啟動(dòng)定時(shí)器0
  124.         ET1=1;                                        //開(kāi)定時(shí)器1中斷
  125.         TR1=1;                                        //啟動(dòng)定時(shí)器1   
  126.         EA=1;                                 //開(kāi)啟總中斷
  127. }

  128. //*************************************************************//
  129. //函數(shù):keyscan()
  130. //功能:實(shí)現(xiàn)按鍵掃描、同時(shí)控制電機(jī)速度
  131. //
  132. //////********************************************************//
  133. void keyscan()
  134. {
  135.         if(key0==0||key1==0||key2==0)
  136.         {
  137.                 delay_ms(10);//延時(shí)去抖
  138.                 if(key0==0)
  139.                 {
  140.                         UART1_SendStr("a");
  141.                        
  142.                         if(speed<9)speed++;
  143.        else if(speed1<9){speed=0;speed1++;}
  144. //                        else speed=9;
  145.                         PWM_SET(speed1*10+speed,0);
  146.                         while(!key0);
  147.                 }
  148.                 else if(key1==0)
  149.                 {
  150.                                 UART1_SendStr("q");
  151.                                 if(speed>0)speed--;
  152.                           else if (speed1>0){speed1--;speed=9;}
  153.                         PWM_SET(speed1*10+speed,0);
  154.                                 while(!key1);
  155.      }
  156.                 else if(key2==0)
  157.                 {
  158.                                 UART1_SendStr("key2");
  159.                                 while(!key2);
  160.      }
  161.                           write_com(0x80);
  162.                  write_data(number_table[speed1]);        
  163.                  write_data(number_table[speed]);
  164.         }
  165. }

  166. void T0_time() interrupt 1 //外部中斷0函數(shù),記錄紅外對(duì)管脈沖高個(gè)數(shù),quan就是脈沖個(gè)數(shù)發(fā),也是圈數(shù)
  167. {
  168.         TH0=(65536-1)/256;      //設(shè)置初值,每計(jì)數(shù)1就溢出
  169.         TL0=(65536-1)%256;
  170.         quan++;
  171. }

  172.                
  173. void T1_time() interrupt 3 //定時(shí)器1函數(shù),定時(shí)計(jì)算一秒的時(shí)間,num==20的時(shí)候就是1秒
  174. {
  175.         TH1=(65536-45872)/256;        //設(shè)置初值,每計(jì)數(shù)15872就溢出
  176.         TL1=(65536-45872)%256;
  177.         num++;
  178. //if(num%speed==0)PWM=~PWM;        //累加溢出次數(shù),40次為1秒,晶振為22.1184(20次為1秒,晶振為11.0592)
  179. }

  180. void delay_ms(int xms)   //延時(shí)函數(shù),單位為ms
  181. {
  182.         uchar m;
  183.         uint n;
  184.         for(n=0;n<xms;n++)
  185.                 for(m=0;m<110;m++);
  186. }

復(fù)制代碼


評(píng)分

參與人數(shù) 4黑幣 +56 收起 理由
舊城以西的故事 + 3 贊一個(gè)!
此用戶名已注冊(cè) + 2 很給力!
yuxiaogang + 1 贊一個(gè)!
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:157262 發(fā)表于 2016-12-23 23:45 | 只看該作者
STC12C單片機(jī)控制  正是我想要的,謝謝
回復(fù)

使用道具 舉報(bào)

板凳
ID:161244 發(fā)表于 2017-1-11 04:32 | 只看該作者
不錯(cuò) 謝謝分享
回復(fù)

使用道具 舉報(bào)

地板
ID:160782 發(fā)表于 2017-1-11 07:59 來(lái)自觸屏版 | 只看該作者
謝謝,先收下了!辛苦!
回復(fù)

使用道具 舉報(bào)

5#
ID:161155 發(fā)表于 2017-1-11 11:01 | 只看該作者
謝謝不錯(cuò)不錯(cuò)
回復(fù)

使用道具 舉報(bào)

6#
ID:106627 發(fā)表于 2017-1-26 13:44 | 只看該作者
謝謝樓主分享!!!!!!
回復(fù)

使用道具 舉報(bào)

7#
無(wú)效樓層,該帖已經(jīng)被刪除
8#
ID:211103 發(fā)表于 2017-6-20 21:47 | 只看該作者
失望,下載完才發(fā)現(xiàn)沒(méi)有仿真圖
回復(fù)

使用道具 舉報(bào)

9#
ID:211103 發(fā)表于 2017-6-20 21:47 | 只看該作者
失望,下載完才發(fā)現(xiàn)沒(méi)有仿真圖
回復(fù)

使用道具 舉報(bào)

10#
ID:225166 發(fā)表于 2017-8-6 12:03 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

11#
ID:223453 發(fā)表于 2017-8-7 16:49 | 只看該作者
沒(méi)有仿真圖
回復(fù)

使用道具 舉報(bào)

12#
ID:225554 發(fā)表于 2017-8-7 18:08 | 只看該作者

謝謝,先收下了!很快就要用到了!
回復(fù)

使用道具 舉報(bào)

13#
ID:147659 發(fā)表于 2018-4-9 18:21 | 只看該作者
正想做個(gè)小車(chē) ,  有仿真更好了
回復(fù)

使用道具 舉報(bào)

14#
ID:313702 發(fā)表于 2018-4-28 09:35 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

15#
ID:409197 發(fā)表于 2018-10-13 22:09 | 只看該作者
這不是51單片機(jī)嗎
回復(fù)

使用道具 舉報(bào)

16#
ID:400245 發(fā)表于 2019-11-9 00:10 | 只看該作者
牛逼大佬的作為
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表