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

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

QQ登錄

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

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

單片機(jī)跑馬燈控制系統(tǒng)仿真

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:268448 發(fā)表于 2017-12-28 17:03 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
一、單片機(jī)基礎(chǔ)知識(shí)
單片機(jī)又稱(chēng)單片微控制器它不是完成某一個(gè)邏輯功能的芯片而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。概括的講一塊芯片就成了一臺(tái)計(jì)算機(jī)。
單片機(jī)具有體積小、功能強(qiáng)、應(yīng)用面廣等優(yōu)點(diǎn)目前正以前所未見(jiàn)的速度取代著傳統(tǒng)電子線(xiàn)路構(gòu)成的經(jīng)典系統(tǒng)蠶食著傳統(tǒng)數(shù)字電路與模擬電路固有的領(lǐng)地。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開(kāi)發(fā)提供了便利條件。同時(shí)學(xué)習(xí)使用單片機(jī)了解計(jì)算機(jī)原理與結(jié)構(gòu)的最佳選擇。
   現(xiàn)在這種單片機(jī)的使用領(lǐng)域已十分廣泛。彩電、冰箱、空調(diào)、錄像機(jī)、VCD、遙控器、
游戲機(jī)、電飯煲等無(wú)處不見(jiàn)單片機(jī)的影子單片機(jī)早已深深地融入我們每個(gè)人的生活之中。  單片機(jī)能大大地提高這些產(chǎn)品的智能性易用性及節(jié)能性等主要性能指標(biāo)給我們的生活帶來(lái)舒適和方便的同時(shí)在工農(nóng)業(yè)生產(chǎn)上也極大地提高了生產(chǎn)效率和產(chǎn)品質(zhì)量。單片機(jī)按用途大體上可分為兩類(lèi)一種是通用型單片機(jī)另一種是專(zhuān)用型單片機(jī)。
  MCS-51 單片機(jī)是美國(guó) INTEL 公司于 1980 年推出的產(chǎn)品與 MCS- 48 單片機(jī)相比它的
結(jié)構(gòu)更先進(jìn)功能更強(qiáng)在原來(lái)的基礎(chǔ)上增加了更多的電路單元和指令指令數(shù)達(dá)111 條 MCS-51 單片機(jī)可以算是相當(dāng)成功的產(chǎn)品一直到現(xiàn)在MCS-51 系列或其兼容的單片機(jī)仍是
應(yīng)用的主流產(chǎn)品各高校及專(zhuān)業(yè)學(xué)校的培訓(xùn)教材仍與 MSC-51 單片機(jī)作為代表進(jìn)行理論基礎(chǔ)學(xué)習(xí)。MCS-51 系列單片機(jī)主要包括 8031、8051 和 8751 等通用產(chǎn)品。
2 單片機(jī)的發(fā)展趨勢(shì)
   單片機(jī)現(xiàn)在可以說(shuō)是百花齊放百家爭(zhēng)鳴的時(shí)期世界上各大芯片制造公司都推出了自己的單片機(jī)從 8 位、16 位到 32 位數(shù)不勝數(shù)應(yīng)有盡有有與主流 C51 系列兼容的也
有不兼容的但它們各具特色互成互補(bǔ)為單片機(jī)的應(yīng)用提供了廣闊的天地。現(xiàn)在常規(guī)的單片機(jī)普遍都是將中央處理器CPU、隨機(jī)存取數(shù)據(jù)存儲(chǔ)RAM、只讀程序存儲(chǔ)器ROM、
并行和串行通信接口中斷系統(tǒng)、定時(shí)電路、時(shí)鐘電路集成在一塊單一的芯片上增強(qiáng)型的單片機(jī)集成了如 A/D 轉(zhuǎn)換器、PMW脈寬調(diào)制電路、WDT看門(mén)狗、有些單片機(jī)將 LCD
液晶驅(qū)動(dòng)電路都集成在單一的芯片上這樣單片機(jī)包含的單元電路就更多功能就越強(qiáng)大。甚至單片機(jī)廠商還可以根據(jù)用戶(hù)的要求量身定做制造出具有自己特色的單片機(jī)芯片。  此外現(xiàn)在的產(chǎn)品普遍要求體積小、重量輕這就要求單片機(jī)除了功能強(qiáng)和功耗低外還要求其體積要小。現(xiàn)在的許多單片機(jī)都具有多種封裝形式其中 SMD表面封裝越來(lái)越受歡迎使得由單片機(jī)構(gòu)成的系統(tǒng)正朝微型化方向發(fā)展。現(xiàn)在雖然單片機(jī)的品種繁多各具特色但仍以 89C51 為核心的單片機(jī)占主流。
2.1 框圖設(shè)計(jì)




2.4軟件設(shè)計(jì)
要求用 AT89S52 芯片控制跑馬燈流水燈整個(gè)系統(tǒng)有 8 種跑馬燈模式可以選擇K1 是選擇模式鍵同時(shí)將相應(yīng)的模式在 LED 七段數(shù)碼管中顯示出來(lái)K2 可以對(duì)跑馬燈
的速度進(jìn)行加速K3 可以對(duì)跑馬燈的速度進(jìn)行減速。整個(gè)系統(tǒng)可以實(shí)現(xiàn)對(duì)跑馬燈模式的多層控制還有加減速。

  本課程設(shè)計(jì)是采用80C51單片機(jī)設(shè)計(jì)的可以調(diào)控的跑馬燈通過(guò)keil進(jìn)行c語(yǔ)言編程 通過(guò)protues進(jìn)行軟件硬件仿真。本設(shè)計(jì)成果主要通過(guò)按鍵開(kāi)關(guān)對(duì)跑馬燈進(jìn)行控制包括跑馬燈模式的選擇、跑馬燈模式的顯示、跑馬燈速度變化控制。
1、C語(yǔ)言編程 1定義
#include<reg52.h>
#define uchar unsigned char                                                                 
#define uint unsigned int  uchar ModeNo; uint Speed;
uchar TCount=0;  uchar Idx; uchar mb_Count=0;  bit Dirtect=1;
2段碼表
uchar code DSY_CODE[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
3調(diào)速表
uint codesTable[]={0,1,3,5,7,9,15,100,200,230,300,350};
4延時(shí)
void Delay(uint x)   {   uchar i;  while(x--) for(i=0;i<120;i++);
}
5檢測(cè)按鍵
uchar GetKey()
{
   .............    return K;  }
616支LED顯示
void Led_Demo(uint Led16)
{
.................
P0=(uchar)(Led16>>8);
}
7定時(shí)器2
void T0_INT() interrupt 1
{
...................
mb_Count=(mb_Count+1)%16;
}
8鍵盤(pán)處理
void KeyProcess(uchar Key)
{  switch(Key)   {
     ....................
     if(Idx<15) Speed=sTable[++Idx];
  }  
}
  9主程序
     void main()
{     uchar Key;
   P0=P1=P2=P3=0xFF;
    ModeNo=0;Idx=4;     P3=DSY_CODE[ModeNo];
    IE=0x82;    TMOD=0x00;     TR0=1;     while(1)
   {
      Key=GetKey();       if(Key!=0) KeyProcess(Key);
   }
}

2、軟件硬件仿真      軟件調(diào)試是通過(guò)對(duì)程序的匯編、連接、執(zhí)行來(lái)發(fā)現(xiàn)程序中存在的語(yǔ)法錯(cuò)誤與邏輯錯(cuò)誤并加以排除糾正的過(guò)程。本設(shè)計(jì)通過(guò)protues進(jìn)行軟件硬件仿真設(shè)計(jì)的原理圖            




六、附錄
本課程設(shè)計(jì)的源程序
  1. #include<reg52.h>
  2. #define uchar unsigned char                                                                        
  3. #define uint unsigned int ucharModeNo; uint Speed; uchar TCount=0; uchar Idx; uchar mb_Count=0;
  4. bit Dirtect=1;                                                                                                  
  5.       
  6. uchar code DSY_CODE[]={0xC0,0XF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; uint codesTable[]={0,1,3,5,7,9,15,100,200,230,300,350};
  7.       
  8.       
  9. void Delay(uint x)                                                                                            
  10. { uchar i; while(x--)for(i=0;i<120;i++);
  11. }                                                                                                                     
  12.       
  13. uchar GetKey() { uchar K;if(P2==0xFF) return 0;
  14. Delay(10);
  15. switch(P2)
  16. {                                                                                                                       
  17. case 0xFE: K=1;break;         case 0xFD: K=2;break;     case0xFB: K=3;break;         
  18. default:   K=0;
  19. }                                                                                                                       
  20. while (P2!=0xFF);                                                                                             
  21. return K; }  void Led_Demo(uint Led16) {
  22. P1=(uchar)(Led16&0x00FF);
  23. P0=(uchar)(Led16>>8);
  24. }
  25.       
  26. void T0_INT() interrupt 1
  27. {if(++TCount<Speed) return; TCount=0; switch(ModeNo) { case0:Led_Demo(0x0001<<mb_Count);break; case1:Led_Demo(0x8000>>mb_Count);break; case2:if(Dirtect)Led_Demo(0x000F<<mb_Count);
  28. Else
  29. Led_Demo(0xF000>>mb_Count);if(mb_Count==15) Dirtect=!Dirtect;break; case3:if(Dirtect)Led_Demo(~(0x000F<<mb_Count)); else         
  30. Led_Demo(~(0xF000>>mb_Count));if(mb_Count==15) Dirtect=!Dirtect; break; case4:if(Dirtect)Led_Demo(0x003F<<mb_Count);
  31. else                                                                                                                  
  32. Led_Demo(0xFC00>>mb_Count);if(mb_Count==15) Dirtect=!Dirtect;break; case5:if(Dirtect)Led_Demo(0x0001<<mb_Count);
  33. else                                                                                                                  
  34. Led_Demo(0x8000>>mb_Count);if(mb_Count==15) Dirtect=!Dirtect; break; case6:if(Dirtect)Led_Demo(~(0x0001<<mb_Count));
  35. else                                                                                                                  
  36. Led_Demo(~(0x8000>>mb_Count));if(mb_Count==15) Dirtect=!Dirtect;break; case7:if(Dirtect)Led_Demo(0xFFFE<<mb_Count);
  37. else                                                                                                                  
  38. Led_Demo(0x7FFF>>mb_Count);if(mb_Count==15) Dirtect=!Dirtect;break; default:break; }mb_Count=(mb_Count+1)%16;
  39. }
  40.   void KeyProcess(uchar Key)
  41. { switch(Key) {     
  42. case 1:
  43. Dirtect=1;mb_Count=0;
  44. ModeNo=(ModeNo+1)%8;
  45. P3=DSY_CODE[ModeNo];break;                                                                     
  46. case 2:
  47. if(Idx>1)Speed=sTable[--Idx];break;                                                               
  48. case 3:
  49. if(Idx<15) Speed=sTable[++Idx];
  50. }
  51. }
  52.   void main() { uchar Key;
  53. P0=P1=P2=P3=0xFF;
  54. ModeNo=0;Idx=4;
  55. P3=DSY_CODE[ModeNo];
  56. IE=0x82;
  57. TMOD=0x00; TR0=1;while(1) { Key=GetKey(); if(Key!=0) KeyProcess(Key);
  58. }
  59. }
復(fù)制代碼

全部資料51hei下載地址:
基于單片機(jī)的跑馬燈控制系統(tǒng)設(shè)計(jì).zip (566.11 KB, 下載次數(shù): 15)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:243748 發(fā)表于 2017-12-28 18:35 來(lái)自觸屏版 | 只看該作者
很受用的資料
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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