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

QQ登錄

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

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

單片機(jī)霍爾測(cè)速系統(tǒng)設(shè)計(jì)+源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:190577 發(fā)表于 2023-11-29 19:52 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
一、系統(tǒng)方案
1、本設(shè)計(jì)采用52單片機(jī)作為主控器。
2、霍爾測(cè)速送到液晶1602。
3、蜂鳴器報(bào)警。


二、硬件設(shè)計(jì)
原理圖如下:

三、單片機(jī)軟件設(shè)計(jì)
  1. 1、首先是系統(tǒng)初始化
  2. void lcd_init()//***液晶初始化函數(shù)****
  3. {
  4.         
  5.         write_1602com(0x38);//設(shè)置液晶工作模式,意思:16*2行顯示,5*7點(diǎn)陣,8位數(shù)據(jù)
  6.         write_1602com(0x0c);//開(kāi)顯示不顯示光標(biāo)
  7.         write_1602com(0x06);//整屏不移動(dòng),光標(biāo)自動(dòng)右移
  8.         write_1602com(0x01);//清顯示
  9. }
  10. 2、液晶顯示程序
  11. /********液晶寫(xiě)入指令函數(shù)與寫(xiě)入數(shù)據(jù)函數(shù),以后可調(diào)用**************/
  12. void write_1602com(uchar com)//****液晶寫(xiě)入指令函數(shù)****
  13. {
  14.         RS=0;//數(shù)據(jù)/指令選擇置為指令
  15.         rw=0; //讀寫(xiě)選擇置為寫(xiě)
  16.         P0=com;//送入數(shù)據(jù)
  17.         delay(1);
  18.         EN=1;//拉高使能端,為制造有效的下降沿做準(zhǔn)備
  19.         delay(1);
  20.         EN=0;//en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令
  21. }
  22. void write_1602dat(uchar dat)//***液晶寫(xiě)入數(shù)據(jù)函數(shù)****
  23. {
  24.         RS=1;//數(shù)據(jù)/指令選擇置為數(shù)據(jù)
  25.         rw=0; //讀寫(xiě)選擇置為寫(xiě)
  26.         P0=dat;//送入數(shù)據(jù)
  27.         delay(1);
  28.         EN=1; //en置高電平,為制造下降沿做準(zhǔn)備
  29.         delay(1);
  30.         EN=0; //en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令
  31. }
  32. 3、按鍵程序
  33. /*********************************************************/
  34. // 按鍵掃描
  35. /*********************************************************/
  36. void key()
  37. {
  38.         if(k1==0)         //按下按下
  39.         {
  40.                 delay(10);//延時(shí)消除按鍵抖動(dòng)
  41.                 if(k1==0)         //再次判斷按鍵是否按下
  42.                 {
  43.                         while(!k1);  //判斷按鍵是否釋放
  44.                   MAX++;
  45.                         if(MAX==10000) MAX=9999;
  46.             }
  47.         }        
  48.         if(k2==0)//加
  49.         {
  50.            delay(10);
  51.                 if(k2==0)
  52.                 {
  53.                         while(!k2);
  54.                  if(MAX>1) MAX--;
  55.                         
  56.             }
  57.         }
  58. }
  59. 4、核心算法程序
  60.   /*******************T2中斷函數(shù)函數(shù)********************/
  61. void T2_time() interrupt 5
  62. {
  63.      
  64.          TF2 = 0;
  65.          time++; //累計(jì)中斷 的次數(shù)
  66.           if(time==20) //1秒到
  67.                 {
  68.                   TR0=0; //關(guān)閉計(jì)數(shù)
  69.                   time=0; //1秒時(shí)間清零,等待下一秒
  70.                   flag=1; //置1告訴主程序
  71.                
  72.         }
  73. }
復(fù)制代碼
四、 proteus仿真設(shè)計(jì)
Proteus軟件是一款應(yīng)用比較廣泛的工具,它可以在沒(méi)有硬件平臺(tái)的基礎(chǔ)上通過(guò)自身的軟件仿真出硬件平臺(tái)的運(yùn)行情況,這樣就可以通過(guò)軟件仿真來(lái)驗(yàn)證我們?cè)O(shè)計(jì)的方案有沒(méi)有問(wèn)題,如果有問(wèn)題,可以重新選擇器件,連接器件,直到達(dá)到我們?cè)O(shè)定的目的,避免我們搭建實(shí)物的時(shí)候,如果當(dāng)初選擇的方案有問(wèn)題,我們器件都已經(jīng)焊接好了,再去卸載下去,再去焊接新的方案的器件,測(cè)試,這樣會(huì)浪費(fèi)人力和物力,也給開(kāi)發(fā)者帶來(lái)一定困惑,Proteus仿真軟件就很好的解決這個(gè)問(wèn)題,我們?cè)谠O(shè)計(jì)之初,就使用該軟件進(jìn)行模擬仿真,測(cè)試,選擇滿(mǎn)足我們?cè)O(shè)計(jì)的最優(yōu)方案。最后根據(jù)測(cè)試沒(méi)問(wèn)題的仿真圖紙,焊接實(shí)物,調(diào)試,最終完成本設(shè)計(jì)的作品。

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

使用道具 舉報(bào)

沙發(fā)
ID:774081 發(fā)表于 2024-1-5 12:30 | 只看該作者
代碼哪個(gè)地方跟霍爾有關(guān)了?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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