欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      單片機(jī)萬年歷實(shí)訓(xùn)報(bào)告

      時(shí)間:2019-05-12 04:41:58下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《單片機(jī)萬年歷實(shí)訓(xùn)報(bào)告》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《單片機(jī)萬年歷實(shí)訓(xùn)報(bào)告》。

      第一篇:單片機(jī)萬年歷實(shí)訓(xùn)報(bào)告

      單片機(jī)萬年歷實(shí)訓(xùn)報(bào)告

      部:電氣自動化系

      級:13電信2班

      名:周祝福

      指導(dǎo)老師:黃麗英、侯聰玲

      實(shí)訓(xùn)時(shí)間:2015年1月19日~23日

      用AT89C51與LCD1602設(shè)計(jì) 的可調(diào)式電子日歷時(shí)鐘

      一、總體設(shè)計(jì)

      1.1、設(shè)計(jì)目的

      為鞏固所學(xué)的單片機(jī)知識,把所學(xué)理論運(yùn)用到實(shí)踐中,用LCD1602與AT89C51 設(shè)計(jì)可調(diào)式電子日歷時(shí)鐘。

      1.2、設(shè)計(jì)要求

      (1)顯示:年、月、日、時(shí)、分、秒和星期;

      (2)設(shè)置年、月、日、時(shí)、分、秒和星期的初始狀態(tài);

      (3)能夠用4個(gè)按鍵調(diào)整日歷時(shí)鐘的年、月、日、時(shí)、分、秒和星期 ;

      完成可調(diào)式電子日歷時(shí)鐘的硬件和軟件的設(shè)計(jì),包括單片機(jī)的相關(guān)內(nèi)容;日歷時(shí)鐘模塊的設(shè)計(jì),液晶顯示模塊的設(shè)計(jì),按鍵模塊的設(shè)計(jì)??刂瞥绦虻木帉懙取?/p>

      1.3、系統(tǒng)基本方案選擇和論證

      1.3.1、單片機(jī)芯片的選擇方案

      方案一:

      采用89C51芯片作為硬件核心,采用Flash ROM,內(nèi)部具有4KB ROM 存儲空間,能于3V的超低壓工作,而且與MCS-51系列單片機(jī)完全兼容。方案二:

      采用STC12C5A60S2系列單片機(jī)是宏晶科技生產(chǎn)的單時(shí)鐘/機(jī)器周期(1T)的單片機(jī),是高速/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成MAX810專用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換(250K/S),針對電機(jī)控制,強(qiáng)干擾場合。但造價(jià)較高。1.3.2、顯示模塊選擇方案和論證:

      方案一:

      采用點(diǎn)陣式數(shù)碼管顯示,點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較適合,如采用顯示數(shù)字顯得太浪費(fèi),且價(jià)格也相對較高。所以不用此種作為顯示。方案二:

      采用LED數(shù)碼管動態(tài)掃描,雖然LED數(shù)碼管價(jià)格適中,但要顯示多個(gè)數(shù)字所需要的個(gè)數(shù)偏多,功耗較大,顯示出來的只是拼音,而不是漢字。所以也不用此種作為顯示。方案三:

      采用LCD液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量字符,且視覺效果較好,外形美觀。LCD1602可實(shí)現(xiàn)顯示2行十六個(gè)字符。1.3.4、電路設(shè)計(jì)最終方案決定

      綜上各方案所述,對此次作品的方案選定:采用80C51作為主控制系統(tǒng); LCD1602液晶帶漢字庫顯示屏作為顯示部分。

      二、硬件設(shè)計(jì)

      2.1、電路設(shè)計(jì)模塊圖如圖

      AT89C51 塊按鍵控制模LCD162

      2.3、用proteus仿真軟件仿真并抓圖。

      三、軟件設(shè)計(jì)

      3.1、畫出各個(gè)函數(shù)流程圖。

      3.1.1、LCD1602液晶顯示控制流程圖如圖

      入口 對1602初始化寫入顯示設(shè)置命令 延時(shí)一段時(shí)間 檢查忙標(biāo)志 BF= 7>? 設(shè)置字符顯示位置 延時(shí)一段時(shí)間 向1602中寫入數(shù)據(jù) LCD顯示內(nèi)容 返回主程序

      是 3.1.2、調(diào)時(shí)函數(shù)控制流程如圖

      開始 控制鍵有效,調(diào)整年 控制鍵有效,調(diào)整月 等待按鍵程序 等待按鍵程序 加有效 減有效 加有效 減有效 年加 1 年減 1 月加 1 月減 1 控制鍵有效,調(diào)整日 控制鍵有效,調(diào)整星期 等待按鍵程序 等待按鍵程序 加有效 減有效 加有效 減有效 日加 1 日減 1 星期加 1 星期減 1 控制鍵有效,調(diào)整時(shí) 等待按鍵程序 加有效 時(shí)加 1 減有效 時(shí)減 1 控制鍵有效,調(diào)整分 等待按鍵程序 加有效 分加 1 減有效 分減 1 按鍵有效跳出調(diào)時(shí)程序,進(jìn)入主循環(huán)

      實(shí)訓(xùn)心得:通過為期一周的單片機(jī)實(shí)訓(xùn),是我們對這門課有了許多新的了解,彌補(bǔ)了在課堂上學(xué)習(xí)的不足。相信這對我們以后的學(xué)習(xí)和工作都會有很大的幫助。我們一定要在最短的時(shí)間里對這些不足加以改正!在試訓(xùn)中有苦有甜,當(dāng)我們?yōu)橐粋€(gè)很難攻破的程序找出路時(shí),心情煩躁,感覺自己很不可理喻,當(dāng)程序一點(diǎn)一點(diǎn)編好后,自己從心底感覺到一點(diǎn)小小的安慰,看著自己的成果。感覺很欣慰。總而言之,單片機(jī)課程設(shè)計(jì)對于我們有很大的幫助,我們從中受益匪淺。

      程序代碼。

      #include #define uchar unsigned char #define uint unsigned int

      uchar a,count,S1num,xqnum;uchar yue,ri,shi,fen,miao;uint nian;

      sbit lcdrs=P2^5;sbit lcdrw=P2^4;sbit lcden=P2^3;

      sbit S1=P3^0;

      //定義鍵--進(jìn)入設(shè)置 sbit S2=P3^1;

      //定義鍵--增大 sbit S3=P3^2;

      //定義鍵--減小 sbit S4=P3^3;

      //定義鍵--退出設(shè)置

      uchar code table0[]=“2015-01-11 SUN”;uchar code table1[]=“00:00:00”;uchar code xingqi[][3]={“MON”,“TUE”,“WED”,“THU”,“FRI”,“SAT”,“SUN”};

      void delay(uint z){ uint x,y;for(x=z;x>0;x--)

      for(y=110;y>0;y--);}

      /************************************************** 1602液晶顯示器模塊

      *************************************************/ void write_com(uchar com)

      //液晶寫指令 { lcdrw=0;lcdrs=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;}

      void write_data(uchar dat)

      //液晶寫數(shù)據(jù) { lcdrw=0;lcdrs=1;P0=dat;delay(5);lcden=1;delay(5);lcden=0;}

      /******************************************** 年月日寫入1602函數(shù)

      ********************************************/ void write_sfm(uchar add,uchar dat)

      //寫時(shí)分秒函數(shù) { uchar shi,ge;shi=dat/10;ge=dat%10;write_com(0x80+0x40+add);write_data(0x30+shi);write_data(0x30+ge);} void write_yr(uchar add,uchar dat)

      //寫月日函數(shù) { uchar shi,ge;shi=dat/10;ge=dat%10;write_com(0x80+add);write_data(0x30+shi);write_data(0x30+ge);} void write_nian(uchar add,uint dat)

      //寫年函數(shù) { uint qian,bai,shi,ge;qian=dat/1000;bai=dat%1000/100;shi=dat%100/10;ge=dat%10;write_com(0x80+add);write_data(0x30+qian);write_data(0x30+bai);write_data(0x30+shi);write_data(0x30+ge);} /*************************************************** 1602初始化

      ***************************************************/ void init_lcd()

      //液晶初始化 { lcden=0;

      nian=2015;yue=1;ri=11;shi=0;

      //初始shi、fen、miao fen=0;miao=0;

      write_com(0x38);

      //設(shè)置16x2顯示,5x7點(diǎn)陣,8位數(shù)據(jù)口

      write_com(0x0c);

      //設(shè)置開顯示,不顯示光標(biāo)

      write_com(0x06);

      //寫一個(gè)字符后地址指針加1 write_com(0x01);

      //顯示清0,數(shù)據(jù)指針清0 }

      void init()

      //初始化函數(shù) { init_lcd();

      //液晶初始化

      write_com(0x80);

      //設(shè)置顯示初始坐標(biāo)

      for(a=0;a<14;a++)

      //顯示年月日初始值

      {

      write_data(table0[a]);

      delay(5);} write_com(0x80+0x40);

      //設(shè)置顯示初始坐標(biāo)

      for(a=0;a<8;a++)

      //顯示時(shí)分秒初始值

      {

      write_data(table1[a]);

      delay(5);}

      write_nian(0,nian);write_sfm(6,miao);

      //分別將shi、fen、miao送去液晶顯示

      write_sfm(3,fen);write_sfm(0,shi);

      count=0;xqnum=0;S1num=0;

      //初始化全局變量count

      TMOD=0x01;

      //設(shè)置定時(shí)器0工作模式1 TH0=(65535-50000)/256;

      //定時(shí)器裝初始值

      TL0=(65535-50000)%256;EA=1;

      //開總中斷

      ET0=1;

      //開定時(shí)器0中斷

      TR0=1;

      //啟動定時(shí)器0 }

      /************************************************** 獨(dú)立鍵盤

      *************************************************/ void keyscan(){ if(S1==0){

      delay(5);

      //確認(rèn)定義鍵被按下

      if(S1==0)

      {

      S1num++;

      //定義鍵S1按下次數(shù)記錄

      while(!S1);

      //釋放按鍵確認(rèn)

      if(S1num==1)//S1按下一次時(shí)

      {

      TR0=0;

      //關(guān)閉定時(shí)器

      write_com(0xc0+7);//光標(biāo)定位到秒位置

      write_com(0x0f);//光標(biāo)閃爍

      }

      if(S1num==2)

      //S1按下兩次時(shí)

      {

      write_com(0xc0+4);//光標(biāo)定位到分位置

      }

      if(S1num==3)

      //S1按下三次時(shí)

      {

      write_com(0xc0+1);

      //光標(biāo)定位到時(shí)位置

      }

      if(S1num==4)

      //S1按下四次時(shí)

      {

      write_com(0x80+13);

      //光標(biāo)定位到星期位置

      }

      if(S1num==5)

      //S1按下五次時(shí)

      {

      write_com(0x80+9);

      //光標(biāo)定位到日位置

      }

      if(S1num==6)

      //S1按下六次時(shí)

      {

      write_com(0x80+6);

      //光標(biāo)定位到月位置

      }

      if(S1num==7)

      //S1按下七次時(shí)

      {

      write_com(0x80+3);

      //光標(biāo)定位到年位置

      }

      if(S1num==8)

      //S1按下八次時(shí)

      {

      S1num=0;

      //S1記錄按鍵次數(shù)清零

      TR0=1;

      //開啟定時(shí)器

      write_com(0x0c);

      //取消光標(biāo)閃爍

      } } } if(S1num!=0)

      //只有定義鍵按下后S2、S3、S4才有效 { if(S2==0){

      delay(5);

      //防抖

      if(S2==0)

      //確認(rèn)按鍵被按下

      {

      while(!S2);

      //釋放按鍵確認(rèn)

      if(S1num==1)//S1按下一次時(shí)

      {

      miao++;

      //調(diào)整秒加1

      if(miao==60)//滿60清零

      miao=0;

      write_sfm(6,miao);

      //每調(diào)節(jié)一次送液晶顯示一次

      write_com(0x80+0x40+6);

      //顯示位置重新回到調(diào)節(jié)處

      }

      if(S1num==2)

      //S1按下兩次時(shí)

      {

      fen++;

      //調(diào)整分加1 if(fen==60)

      fen=0;write_sfm(3,fen);write_com(0x80+0x40+3);} if(S1num==3)

      //S1按下三次時(shí) { shi++;

      //調(diào)整時(shí)加1 if(shi==24)

      shi=0;write_com(0x80+0x40);write_sfm(0,shi);} if(S1num==4)

      { xqnum++;if(xqnum==7)

      xqnum=0;write_com(0x80+0x0b);for(a=0;a<3;a++){

      write_data(xingqi[xqnum][a]);

      delay(5);} } if(S1num==5)

      { ri++;if(yue==2){

      if(nian%400==0)

      {

      if(ri==30)

      {

      ri=1;

      }

      }

      if(nian%400!=0)

      {

      if(ri==29)

      {

      ri=1;

      }

      //星期加調(diào)整

      //日加調(diào)整

      } } else if(yue<=7){

      if(yue%2==0&yue!=2)

      {

      if(ri==31)

      {

      ri=1;

      }

      }

      else if(yue%2!=0&yue!=2)

      {

      if(ri==32)

      {

      ri=1;

      }

      } } else if(yue>=8){

      if(yue%2==0)

      {

      if(ri==32)

      {

      ri=1;

      }

      }

      else if(yue%2!=0)

      {

      if(ri==31)

      {

      ri=1;

      }

      } } write_yr(8,ri);} if(S1num==6)

      { yue++;if(yue==13)

      yue=1;write_yr(5,yue);

      //月加調(diào)整

      }

      if(S1num==7)

      //年加調(diào)整

      {

      nian++;

      if(nian==2019)

      nian=2014;

      write_nian(0,nian);

      } } } if(S3==0){ delay(5);if(S3==0)

      //確認(rèn)按鍵被按下

      {

      while(!S3);

      if(S1num==1)

      {

      miao--;

      //調(diào)整秒減1

      if(miao==-1)

      //減到00后再減重新設(shè)置為59

      miao=59;

      write_sfm(6,miao);

      write_com(0x80+0x40+6);

      }

      if(S1num==2)

      {

      fen--;

      //調(diào)整分減1

      if(fen==-1)

      fen=59;

      write_sfm(3,fen);

      write_com(0x80+0x40+3);

      }

      if(S1num==3)

      {

      shi--;

      //調(diào)整時(shí)減1

      if(shi==-1)

      shi=23;

      write_sfm(0,shi);

      write_com(0x80+0x40);

      }

      if(S1num==4)

      {

      xqnum--;

      //調(diào)整星期減一

      if(xqnum==-1)

      xqnum=6;write_com(0x80+0x0b);for(a=0;a<3;a++){

      write_data(xingqi[xqnum][a]);

      delay(5);} } if(S1num==5)

      //調(diào)整日 { ri--;

      if(yue==2){

      if(nian%400==0)

      {

      if(ri==0)

      {

      ri=29;

      }

      }

      if(nian%400!=0)

      {

      if(ri==0)

      {

      ri=28;

      }

      } } else if(yue<=7)

      {

      if(yue%2==0&yue!=2)

      {

      if(ri==0)

      {

      ri=30;

      }

      }

      else if(yue%2!=0&yue!=2)

      {

      if(ri==0)

      {

      ri=31;

      }

      }

      }

      else if(yue>=8)

      {

      if(yue%2==0)

      {

      if(ri==0)

      {

      ri=31;

      }

      }

      else if(yue%2!=0)

      {

      if(ri==0)

      {

      ri=30;

      }

      }

      }

      write_yr(8,ri);

      }

      if(S1num==6)

      {

      yue--;

      if(yue==0)

      yue=12;

      write_yr(5,yue);

      }

      if(S1num==7)

      {

      nian--;

      if(nian==2013)

      nian=2018;

      write_nian(0,nian);

      } } } if(S4==0)

      { delay(5);if(S4==0){

      S1num=0;

      TR0=1;

      write_com(0x0c);

      //調(diào)整月

      //調(diào)整年

      //退出設(shè)置、開啟中斷

      }

      } } }

      /************************************************** 定時(shí)器0 *************************************************/ void timer0()interrupt 1

      //定時(shí)器0中斷服務(wù)程序 { TH0=(65535-50000)/256;

      //重裝定時(shí)器初始值

      TL0=(65535-50000)%256;count++;

      //中斷次數(shù)累加

      if(count==20)

      //20次50毫秒即一秒

      {

      count=0;

      miao++;

      if(miao==60)

      //秒加到60時(shí)分進(jìn)位

      {

      miao=0;

      fen++;

      if(fen==60)

      //分加到60時(shí)時(shí)進(jìn)位

      {

      fen=0;

      shi++;

      if(shi==24)

      //時(shí)加到24時(shí)清0

      {

      shi=0;

      xqnum++;

      ri++;

      if(yue==2)

      //如果是二月

      {

      if(nian%400==0)

      //閏年判斷

      {

      if(ri==30)

      {

      ri=1;

      yue++;

      write_yr(5,yue);

      }

      }

      if(nian%400!=0)

      //平年判斷

      {

      if(ri==29)

      {

      ri=1;

      yue++;

      write_yr(5,yue);

      }

      }

      }

      else if(yue<=7&yue!=2)

      //一月到七月

      {

      if(yue%2==0)//偶數(shù)月(除二月)

      {

      if(ri==31)

      {

      ri=1;

      yue++;

      }

      }

      else if(yue%2!=0)

      //奇數(shù)月

      {

      if(ri==32)

      {

      ri=1;

      yue++;

      }

      }

      write_yr(5,yue);

      }

      else if(yue>=8)

      //八月到12月

      {

      if(yue%2==0)//偶數(shù)月(除二月)

      {

      if(ri==32)

      {

      ri=1;

      yue++;

      if(yue==13)

      //如果判斷月份為12月,則加一后重新定義月份為1

      {

      yue=1;

      nian++;

      write_nian(0,nian);

      }

      write_yr(5,yue);

      }

      }

      else if(yue%2!=0)

      //奇數(shù)月

      {

      if(ri==31)

      {

      ri=1;

      yue++;

      write_yr(5,yue);

      }

      }

      }

      write_yr(8,ri);

      if(xqnum==7)

      //星期寫入

      xqnum=0;

      write_com(0x80+0x0b);

      for(a=0;a<3;a++)

      {

      write_data(xingqi[xqnum][a]);

      delay(5);

      }

      }

      write_sfm(0,shi);

      //重新寫入數(shù)據(jù)

      }

      write_sfm(3,fen);

      //重新寫入數(shù)據(jù)

      }

      write_sfm(6,miao);

      //重新寫入數(shù)據(jù)

      } } /************************************************* 主函數(shù)

      *************************************************/ void main(){ init();while(1){

      keyscan();

      //不停的檢測按鍵是否被按下

      } }

      第二篇:萬年歷單片機(jī)課程設(shè)計(jì)報(bào)告

      課程設(shè)計(jì)報(bào)告 任務(wù)和設(shè)計(jì)要求

      首先要學(xué)會安裝軟件,要熟悉會使用。系統(tǒng)設(shè)計(jì) 系統(tǒng)框圖 硬件設(shè)計(jì) 3.1 電路原理圖

      課程設(shè)計(jì)報(bào)告

      課程設(shè)計(jì)報(bào)告

      課程設(shè)計(jì)報(bào)告

      3.2 主要單元電路

      3.3 元件清單 軟件設(shè)計(jì) 4.1 程序流程圖

      課程設(shè)計(jì)報(bào)告

      4.2程序清單

      TIME_WEEK DATA 52H TIME_YEAR DATA 5DH TIME_MONTH DATA 5EH TIME_DATA DATA 5FH YEARH DATA 36H YEAR DATA 35H MONTH DATA 34H DAY DATA 33H HOUR DATA 32H MINUTE DATA 31H SEC DATA 30H

      課程設(shè)計(jì)報(bào)告

      AAA BIT P3.0 BBB BIT P3.1 AA BIT P3.3 BB BIT P3.4 CC BIT P3.5 BL BIT P3.2 BZ1 BIT 21H.0 TIMES DATA

      20H COM

      DATA

      P1 ORG

      0000H LJMP

      START ORG

      0003H RETI ORG

      000BH LJMP INTT0 ORG

      0013H RETI ORG

      001BH RETI ORG

      0023H RETI START:

      課程設(shè)計(jì)報(bào)告

      MOV

      R0,#30H MOV

      R7,#9 CLEETE: MOV

      @R0,#00H INC

      R0 DJNZ

      R7,CLEETE MOV

      TIMES,#00H MOV

      TMOD,#01H MOV

      TL0,#0C0H MOV

      TH0,#63H MOV

      SEC,#0 MOV

      MINUTE,#0H MOV

      HOUR,#0H MOV

      DAY,#01H MOV

      MONTH,#01H MOV

      YEAR,#01H MOV

      YEARH,#20H SETB

      EA SETB

      ET0 SETB

      TR0 MOV

      R4,#19 START1:

      課程設(shè)計(jì)報(bào)告

      CALL

      DISP JNB

      AA,SETMM1 JMP

      START1 SETMM1: CALL

      SETMM JMP START1 SETMM: CALL

      DISP CALL

      DISP JB AA,SETMM0 SETMM2: JNB AA,SETMM3 CLR ET0 CLR TR0 MOV

      SEC,#0 MOV

      TIMES,#01H MOV

      R0,#MINUTE SETMM4: NOP INC22: CALL

      OFFL CALL

      INC11

      課程設(shè)計(jì)報(bào)告

      CALL

      DISP JB AA,INC22 CALL DISP JB AA,INC22 INC R0 MOV A,TIMES RL A MOV TIMES,A JNB

      TIMES.5, SETMM4 SETMM12: JNB AA , SETMM11 SETMM0: SETB

      TR0 SETB

      ET0 RET SETMM11: CALL DISP JMP

      SETMM12 SETMM3: CALL

      DISP JMP

      SETMM2 INC11:

      課程設(shè)計(jì)報(bào)告

      MOV

      R3,#40 INC111: MOV A,@R0 JB

      BB,INC17 ADD

      A,#1 DA A CALL INC000 INC13: JNB BB , INC14 INC17: MOV

      @R0,A CALL

      DISP DJNZ R3,INC111 RET INC14: CALL

      DISP JMP

      INC13 OFFL: MOV

      22H,@R0 MOV

      R6,#10 OFF1: MOV

      R7,#10

      課程設(shè)計(jì)報(bào)告

      OFF2: MOV

      @ R0, # 0AAH CALL

      DISP DJNZ R7 , OFF2 DJNZ R6 , OFF1 MOV

      @ R0 , 22H RET INC000: JB

      TIMES.0, INC001 JB

      TIMES.1, INC002 JB

      TIMES.2, INC003 JB

      TIMES.3, INC004 JB

      TIMES.4, INC005 JMP

      INCOUT INC005: CJNE A, #99H, INCOUT MOV

      A,#00H JMP

      INCOUT INC004: CJNE A, # 13H, INCOUT MOV

      A,#01H JMP

      INCOUT

      課程設(shè)計(jì)報(bào)告

      INC003: CJNE A,# 32H ,INCOUT MOV

      A,#01H JMP

      INCOUT INC002: CJNE A,#24H,INCOUT MOV

      A,#00H JMP

      INCOUT INC001: CJNE A,# 60H , INCOUT MOV

      A,#00H INCOUT: RET INTT0: PUSH

      ACC PUSH

      PSW ORL TL0,#0C0H MOV

      TH0,#63H DJNZ R4 , CLKE111 JMP

      LOOP11 CLKE111: JMP

      CLKE

      課程設(shè)計(jì)報(bào)告

      LOOP11: MOV

      R4,#19H MOV

      A,SEC ADD

      A,#1 DA A MOV

      SEC,A CJNE A, #60H , CLKE99 MOV

      SEC,#0 MOV

      A,MINUTE ADD

      A,#1 DA A MOV

      MINUTE,A CLK0: CJNE A, # 60H, CLKE MOV

      MINUTE,#0 MOV

      A,HOUR ADD

      A,#1 DA

      A MOV

      HOUR,A CJNE A, # 24H, CLKE MOV

      HOUR,#0 MOV

      A,DAY

      課程設(shè)計(jì)報(bào)告

      ADD

      A,#1 DA A MOV

      DAY,A MOV

      A,MONTH INC

      A MOVC A, @A + PC SJMP

      CLK1 DB

      31H,28H,31H DB

      30H,31H,30H DB

      31H,31H,30H DB

      00H,00H,00H DB

      00H,00H,00H DB

      31H,30H,31H CLK1: CLR C SUBB A,DAY JNC

      CLKE MOV

      A,MONTH CJNE A,#2,CLK3 MOV

      A,YEAR ANL A,#13H JNB

      ACC.4,CLK2

      課程設(shè)計(jì)報(bào)告

      ADD

      A,#2 CLK2: ANL A,#3 JNZ

      CLK3 MOV

      A,DAY XRL A,#29H JZ

      CLKE CLK3: MOV

      DAY,#1 MOV

      A,MONTH ADD

      A,#1 DA

      A MOV

      MONTH,A CJNE A,#13H,CLKE MOV

      MONTH,#1 MOV

      A,YEAR ADD

      A,#1 DA

      A MOV

      YEAR,A CLKE99: CALL

      CONVERT CLKE:

      課程設(shè)計(jì)報(bào)告

      POP

      PSW POP

      ACC RETI DISP: PUSH

      PSW PUSH

      ACC MOV

      23H,R0 DISP99: MOV

      R1,#40H MOV

      R0,#30H MOV

      R2,#9 DISP1: MOV A,@R0 ANL A,#0FH MOV @R1,A MOV A,@R0 SWAP A ANL A,#0FH INC R1 MOV @R1,A DJNZ R2,DISP2 CALL DISPLAY

      課程設(shè)計(jì)報(bào)告

      MOV R0,23H POP ACC POP PSW RET DISP2: INC R1 INC R0 JMP DISP1 DISPLAY: MOV R1,#40H MOV R5,#19 SETB AAA PLAY: SETB BBB NOP CLR BBB CLR AAA MOV A,@R1 MOV DPTR,#TAB MOVC A,@A+DPTR MOV COM,A CALL DL1MS

      課程設(shè)計(jì)報(bào)告

      MOV COM,#0FFH DJNZ R5,PLAY1 CLR BBB SETB AAA RET PLAY1: INC R1 JMP PLAY TAB: DB 0C0H,0F9H,0A4H, 0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0A3H,8EH,0ABH DL1MS: MOV 25H,R7 MOV 24H,R6 MOV R7,#20 DS1: MOV R6,#10 DJNZ R6,$ DJNZ R7,DS1 MOV R7,25H MOV R6,24H RET

      課程設(shè)計(jì)報(bào)告

      START_YEAR EQU 01 CONVERT_YEAR DATA 5CH CONVERT_MONTH DATA 38H CONVERT_DATE DATA 37H TEMP_BYTE1 DATA 57H TEMP_BYTE2 DATA 58H TEMP_BYTE3 DATA 59H TEMP_BYTE4 DATA 5AH TEMP_BYTE5 DATA 5BH CONVERT: MOV A, YEAR MOV TIME_YEAR,A MOV A,MONTH MOV TIME_MONTH,A MOV A,DAY MOV TIME_DATA,A MOV A,TIME_YEAR MOV B,#16 DIV AB MOV CONVERT_YEAR,B MOV B,#10 MUL AB

      課程設(shè)計(jì)報(bào)告

      ADD A,CONVERT_YEAR MOV CONVERT_YEAR,A MOV A,TIME_MONTH JNB ACC.4,CON_02 CLR ACC.4 ADD A,#10 CON_02:MOV CONVERT_MONTH,A MOV A,TIME_DATA MOV B,#16 DIV AB MOV CONVERT_DATE,B MOV B,#10 MUL AB ADD A,CONVERT_DATE MOV CONVERT_DATE,A MOV DPTR,#MONTH_DATA MOV A,CONVERT_YEAR CON_06:CLR C SUBB A,#START_YEAR MOV B,#3 MUL AB ADD A,DPL

      課程設(shè)計(jì)報(bào)告

      MOV DPL,A MOV A,B ADDC A,DPH MOV DPH,A MOV A, #2 MOVC A, @A+DPTR CLR ACC.7 MOV B, #32 DIV AB MOV TEMP_BYTE1,A MOV TEMP_BYTE2,B MOV TEMP_BYTE3,#0 MOV A,CONVERT_MONTH CJNE A,#10,CON_08 CON_08:JC CON_09 MOV TEMP_BYTE3,#1 CON_09:MOV A,CONVERT_YEAR ANL A,#03H JNZ CON_10 MOV A,CONVERT_MONTH LCALL GET_RUN_DAYS_LOW SJMP CON_12

      課程設(shè)計(jì)報(bào)告

      CON_10:MOV A,CONVERT_MONTH LCALL GET_DAYS_LOW CON_12:MOV B,CONVERT_DATE DEC B ADD A,B MOV TEMP_BYTE4,A JNC CON_14 INC TEMP_BYTE3 CON_14:MOV A,TEMP_BYTE1 LCALL GET_DAYS_LOW DEC A ADD A,TEMP_BYTE2 MOV TEMP_BYTE5,A MOV A,CONVERT_MONTH CJNE A,TEMP_BYTE1,CON_20 MOV A,CONVERT_DATE CJNE A,TEMP_BYTE2,CON_20 CON_20:JC CON_22 LJMP CON_60 CON_22:MOV A,CONVERT_YEAR JNZ CON_24 MOV A,#100

      課程設(shè)計(jì)報(bào)告

      CON_24:DEC A MOV CONVERT_YEAR,A MOV A,DPL CLR C SUBB A,#3 MOV DPL,A JNC CON_26 DEC DPH CON_26:MOV A,TEMP_BYTE5 CLR C SUBB A,TEMP_BYTE4 MOV TEMP_BYTE3,A MOV CONVERT_MONTH,#12 CLR F0 CLR A MOVC A,@A+DPTR ANL A,#0F0H SWAP A;MOV TEMP_BYTE4,A JZ CON_30 MOV A, #2 MOVC A , @A+DPTR

      課程設(shè)計(jì)報(bào)告

      MOV C, ACC.7 MOV A, #1 MOVC A, @A+DPTR RLC A SJMP CON_34 CON_30:MOV A, #1 MOVC A, @A+DPTR CON_34:MOV TEMP_BYTE5, A CON_40:MOV A, TEMP_BYTE5 RRC A MOV TEMP_BYTE5, A JC CON_42 MOV B, #29 SJMP CON_44 CON_42:MOV B, #30 CON_44:MOV A, TEMP_BYTE3 CLR C SUBB A, B JZ CON_46 JNC CON_50 CPL A INC A

      課程設(shè)計(jì)報(bào)告

      CON_46: INC A MOV B, #10 DIV AB SWAP A ORL A, B MOV CONVERT_DATE, A MOV A, CONVERT_MONTH MOV B, #10 DIV AB SWAP A ORL A, B MOV CONVERT_MONTH, A MOV A, CONVERT_YEAR MOV B, #10 DIV AB SWAP A ORL A, B MOV CONVERT_YEAR, A CALL WEEK RET CON_50:MOV TEMP_BYTE3, A JB F0, CON_52

      課程設(shè)計(jì)報(bào)告

      DEC CONVERT_MONTH CON_52:MOV A, CONVERT_MONTH CJNE A, TEMP_BYTE4, CON_54 CPL F0 CON_54:SJMP CON_40 CON_60:MOV A, TEMP_BYTE4 CLR C SUBB A, TEMP_BYTE5 MOV TEMP_BYTE4, A JNC CON_62 DEC TEMP_BYTE3 CON_62:MOV CONVERT_MONTH, #1 CLR A MOVC A, @A+DPTR MOV TEMP_BYTE5, A ANL A, #0F0H SWAP A XCH A, TEMP_BYTE5 CLR F0 ANL A, #0FH MOV TEMP_BYTE1, A MOV A, #1

      課程設(shè)計(jì)報(bào)告

      MOVC A, @A+DPTR MOV TEMP_BYTE2, A ANL A, #0F0H ORL A, TEMP_BYTE1 SWAP A MOV TEMP_BYTE1, A MOV A, #2 MOVC A, @A+DPTR MOV C, ACC.7 MOV A, TEMP_BYTE2 ANL A, # 0FH SWAP A MOV ACC.3, C MOV TEMP_BYTE2, A CON_70:MOV A, TEMP_BYTE2 RLC A MOV TEMP_BYTE2, A MOV A, TEMP_BYTE1 RLC A MOV TEMP_BYTE1, A JC CON_72 MOV B, #29

      課程設(shè)計(jì)報(bào)告

      SJMP CON_74 CON_72:MOV B, #30 CON_74:MOV A, TEMP_BYTE4 CLR C SUBB A,B JNC CON_78 MOV B, A MOV A, TEMP_BYTE3 JZ CON_76 DEC TEMP_BYTE3 MOV TEMP_BYTE4, B SJMP CON_80 CON_76:MOV A, TEMP_BYTE4 LJMP CON_46

      CON_78:MOV TEMP_BYTE4, A CON_80:MOV A, CONVERT_MONTH CJNE A, TEMP_BYTE5, CON_82 CPL F0 JNB F0, CON_82 SJMP CON_70 CON_82:INC CONVERT_MONTH SJMP CON_70

      課程設(shè)計(jì)報(bào)告

      GET_DAYS_LOW: MOVC A, @A+PC RET DB 0,31,59,90,120,151,181,212,243,17,48,78 GET_RUN_DAYS_LOW: MOVC A, @A+PC RET DB 0,31,60,91,121,152,182,213,244,18,49,79 MONTH_DATA:

      DB 04DH,04AH,0B8H;2001 DB 00DH,04AH,04CH;2002 DB 00DH,0A5H,041H;2003 DB 025H,0AAH,0B6H;2004 DB 005H,06AH,049H;2005 DB 07AH,0ADH,0BDH;2006 DB 002H,05DH,052H;2007 DB 009H,02DH,047H;2008 DB 05CH,095H,0BAH;2009 DB 00AH,095H,04EH;2010 DB 00BH,04AH,043H;2011

      課程設(shè)計(jì)報(bào)告

      DB 04BH,055H,037H;2012 DB 00AH,0D5H,04AH;2013 DB 095H,05AH,0BFH;2014 DB 004H,0BAH,053H;2015 DB 00AH,05BH,048H;2016 DB 065H,02BH,0BCH;2017 DB 005H,02BH,050H;2018 DB 00AH,093H,045H;2019 DB 047H,04AH,0B9H;2020 DB 006H,0AAH,04CH;2021 DB 00AH,0D5H,041H;2022 DB 024H,0DAH,0B6H;2023 DB 004H,0B6H,04AH;2024 DB 069H,057H,03DH;2025 DB 00AH,04EH,051H;2026 DB 00DH,026H,046H;2027 DB 05EH,093H,03AH;2028 DB 00DH,053H,04DH;2029 DB 005H,0AAH,043H;2030 DB 036H,0B5H,037H;2031 DB 009H,06DH,04BH;2032 DB 0B4H,0AEH,0BFH;2033

      課程設(shè)計(jì)報(bào)告

      DB 004H,0ADH,053H;2034 DB 00AH,04DH,048H;2035 DB 06DH,025H,0BCH;2036 DB 00DH,025H,04FH;2037 DB 00DH,052H,044H;2038 DB 05DH,0AAH,038H;2039 DB 00BH,05AH,04CH;2040 DB 005H,06DH,041H;2041 DB 024H,0ADH,0B6H;2042 DB 004H,09BH,04AH;2043 DB 07AH,04BH,0BEH;2044 DB 00AH,04BH,051H;2045 DB 00AH,0A5H,046H;2046 DB 05BH,052H,0BAH;2047 DB 006H,0D2H,04EH;2048 DB 00AH,0DAH,042H;2049 DB 035H,05BH,037H;2050 DB 009H,037H,04BH;2051 DB 084H,097H,0C1H;2052 DB 004H,097H,053H;2053 DB 006H,04BH,048H;2054 DB 066H,0A5H,03CH;2055

      課程設(shè)計(jì)報(bào)告

      DB 00EH,0A5H,04FH;2056 DB 006H,0B2H,044H;2057 DB 04AH,0B6H,038H;2058 DB 00AH,0AEH,04CH;2059 DB 009H,02EH,042H;2060 DB 03CH,097H,035H;2061 DB 00CH,096H,049H;2062 DB 07DH,04AH,0BDH;2063 DB 00DH,04AH,051H;2064 DB 00DH,0A5H,045H;2065 DB 055H,0AAH,0BAH;2066 DB 005H,06AH,04EH;2067 DB 00AH,06DH,043H;2068 DB 045H,02EH,0B7H;2069 DB 005H ,02DH, 04BH;2070 DB 08AH, 095H, 0BFH;2071 DB 00AH, 095H, 053H;2072 DB 00BH, 04AH, 047H;2073 DB 06BH, 055H, 03BH;2074 DB 00AH, 0D5H, 04FH;2075 DB 005H, 05AH, 045H;2076 DB 04AH, 05DH, 038H;2077

      課程設(shè)計(jì)報(bào)告

      DB 00AH, 05BH, 04CH;2078 DB 005H, 02BH, 042H;2079 DB 03AH, 093H, 0B6H;2080 DB 006H, 093H, 049H;2081 DB 077H, 029H, 0BDH;2082 DB 006H, 0AAH, 051H;2083 DB 00AH, 0D5H, 046H;2084 DB 054H, 0DAH, 0BAH;2085 DB 004H, 0B6H, 04EH;2086 DB 00AH, 057H, 043H;2087 DB 045H, 027H, 038H;2088 DB 00DH, 026H, 04AH;2089 DB 08EH, 093H, 03EH;2090 DB 00DH, 052H, 052H;2091 DB 00DH, 0AAH, 047H;2092 DB 066H, 0B5H, 03BH;2093 DB 005H, 06DH, 04FH;2094 DB 004H, 0AEH, 045H;2095 DB 04AH, 04EH, 0B9H;2096 DB 00AH, 04DH, 04CH;2097 DB 00DH, 015H, 041H;2098 DB 02DH, 092H, 0B5H;2090

      課程設(shè)計(jì)報(bào)告

      DB 00DH, 053H, 049H;2100 TIME_WEEK1 DATA 52H WEEK: MOV A, TIME_YEAR MOV B, #16 DIV AB MOV TEMP_BYTE1, B MOV B, #10 MUL AB ADD A, TEMP_BYTE1 MOV TEMP_BYTE1, A MOV A, TIME_MONTH JB ACC.7, GETW02 MOV A, #100 ADD A, TEMP_BYTE1 MOV TEMP_BYTE1, A MOV A, TIME_MONTH CLR ACC.7 GETW02: JNB ACC.4, GETW04 ADD A , #10 CLR ACC.4 GETW04: MOV TEMP_BYTE2,A

      課程設(shè)計(jì)報(bào)告

      MOV A, TIME_DATA MOV B, #16 DIV AB MOV TEMP_BYTE3, B MOV B, #10 MUL AB ADD A, TEMP_BYTE3 MOV TEMP_BYTE3, A MOV A ,TEMP_BYTE1 ANL A, #03H JNZ GETW10 MOV A, TEMP_BYTE2 CJNE A, #3,GETW06 GETW06: JNC GETW10 DEC TEMP_BYTE3 GETW10: MOV A,TEMP_BYTE2 LCALL GET_CORRECT ADD A, TEMP_BYTE1 MOV B, #7 DIV AB

      MOV A, TEMP_BYTE1

      課程設(shè)計(jì)報(bào)告

      ANL A, #0FCH RR A RR A ADD A, B ADD A, TEMP_BYTE3 MOV B, #7 DIV AB MOV A, B CJNE A, #0,OUTOUT MOV B, #8 OUTOUT: MOV TIME_WEEK, B RET GET_CORRECT: MOVC A, @A+PC RET DB 0,3,3,6,1,4,6,2,5,0,3,5 END 系統(tǒng)仿真及調(diào)試

      課程設(shè)計(jì)報(bào)告 仿真結(jié)果及分析

      課程設(shè)計(jì)報(bào)告

      上圖為運(yùn)行時(shí)的顯示,左邊兩個(gè)數(shù)碼管顯示器顯示的是年、月、日,中間的顯示的是時(shí)、分、秒,右邊顯示的是農(nóng)歷日期以及星期。若想要調(diào)試時(shí)間,可通過右下方兩個(gè)并聯(lián)開關(guān)調(diào)試,左邊開關(guān)調(diào)試數(shù)碼管顯示位置,右邊的調(diào)試增1。此刻是2013年11月29日下午15:02,星期五,時(shí)間準(zhǔn)確。訓(xùn)練體會

      在整個(gè)單片機(jī)課程設(shè)計(jì)中,想要做出這個(gè)完整的設(shè)計(jì)過程,必須突破幾個(gè)難點(diǎn):

      1、元件得找準(zhǔn)卻,6路驅(qū)動可以用74LS244代替。

      2、連線不能連錯(cuò),對應(yīng)的輸入輸出端標(biāo)上序號。

      3、程序代碼不能敲錯(cuò)。

      4、由于單管顯示的星期數(shù)不穩(wěn)定,可以采用雙管顯示。參考文獻(xiàn):單片機(jī)課程設(shè)計(jì)指導(dǎo)。

      第三篇:單片機(jī)實(shí)訓(xùn)報(bào)告范文

      四川電子機(jī)械職業(yè)技術(shù)學(xué)院

      單片機(jī)原理及應(yīng)用

      實(shí) 訓(xùn)報(bào)告1

      班級:應(yīng)電14.2班 姓名:劉華利 學(xué)號:140302058 指導(dǎo)教師:向兵

      四川電子機(jī)械職業(yè)技術(shù)學(xué)院

      摘要:

      《單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)項(xiàng)目化教程》這本書根據(jù)教育部新的教學(xué)改革要求和企業(yè)崗位技能需求,以高技能應(yīng)用型人才專業(yè)能力培養(yǎng)為目標(biāo),結(jié)合作者多年的教學(xué)經(jīng)驗(yàn)與課程改革成果進(jìn)行編寫。全書通過6個(gè)典型項(xiàng)目任務(wù),著重介紹單片機(jī)基本原理及應(yīng)用系統(tǒng)的設(shè)計(jì)方法與技巧,包括流水燈控制系統(tǒng)設(shè)計(jì)、簡易數(shù)字時(shí)鐘設(shè)計(jì)、數(shù)字電壓表設(shè)計(jì)、低頻信號發(fā)生器設(shè)計(jì)、數(shù)據(jù)存儲及回放系統(tǒng)設(shè)計(jì)和窗簾智能控制系統(tǒng)設(shè)計(jì)等。本書采用“理實(shí)一體、項(xiàng)目化教學(xué)”模式進(jìn)行內(nèi)容編排,將單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì)的相關(guān)知識點(diǎn)融入項(xiàng)目中進(jìn)行講解,易教易學(xué),效果良好。

      目錄

      摘要········································ 2 目錄········································ 2 實(shí)訓(xùn)名稱···································· 3 實(shí)訓(xùn)地點(diǎn)···································· 3 實(shí)訓(xùn)時(shí)間···································· 3 實(shí)訓(xùn)目的···································· 3 實(shí)訓(xùn)項(xiàng)目···································· 3 項(xiàng)目1·······································3 項(xiàng)目2·······································4 項(xiàng)目3·······································5 項(xiàng)目4·······································6 實(shí)訓(xùn)總結(jié)····································· 7

      四川電子機(jī)械職業(yè)技術(shù)學(xué)院

      實(shí)訓(xùn)名稱:單片機(jī)原理及應(yīng)用 實(shí)訓(xùn)地點(diǎn):行政樓523 實(shí)訓(xùn)時(shí)間:2016.6.27—6.30 實(shí)訓(xùn)目的:1、2、3、4、5、6、7、掌握結(jié)構(gòu)化程序設(shè)計(jì)的基本方法,基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法。

      掌握C的基本概念和基礎(chǔ)知識。

      通過訓(xùn)練能夠讀懂較為復(fù)雜的C語言源程序并具備基本C語言程序設(shè)計(jì)的能力。

      熟練掌握各種常用類的定義繼承文件的應(yīng)用,為更好的理解面向?qū)ο蟠蛳赂玫幕A(chǔ)。

      掌握面向?qū)ο蟮幕驹?,提高學(xué)生綜合程序設(shè)計(jì)的能力。

      培養(yǎng)自己獨(dú)立解決問題,找資料的能力。同學(xué)之間相互幫助、相互交流、相互合作的團(tuán)隊(duì)精神。

      通過實(shí)訓(xùn)檢查自己學(xué)習(xí)上的不足,達(dá)到熟練掌握C語言的基本知識和技能。

      實(shí)訓(xùn)項(xiàng)目: 項(xiàng)目1 點(diǎn)亮一個(gè)LED,每隔一定時(shí)間循環(huán)熄滅、點(diǎn)亮…

      設(shè)計(jì)思路:端口送高電平,led熄滅,延時(shí)1s,端口送低電平,led點(diǎn)亮,延時(shí)1s,就這樣一直循環(huán)。

      程序

      #include } typedef unsigned char UINT8;void main(void)typedef unsigned int UINT16;{ void DelayMs(UINT16 Ms)while(1){ { UINT8 i;

      L2 = 1;

      while(Ms--)

      DelayMs(1000);

      {

      L2 = 0;

      for(i = 0;i < 114;i+

      DelayMs(1000);+);} } }

      四川電子機(jī)械職業(yè)技術(shù)學(xué)院

      原理圖

      項(xiàng)目2 點(diǎn)亮一個(gè)LED,讓它每隔一定時(shí)間循環(huán)左移(課使用delay函數(shù)進(jìn)行延時(shí))

      設(shè)計(jì)思路:在項(xiàng)目1的的基礎(chǔ)上,用dalay函數(shù)進(jìn)行延時(shí),用<<來表示左移,添加一個(gè)左移的函數(shù)。通俗一點(diǎn)的講的話,就如天天天同一些人排隊(duì)領(lǐng)東西,領(lǐng)完了返回隊(duì)位繼續(xù)排(當(dāng)然一只是這幾個(gè)人排)。

      程序

      #include void delay(unsigned int z){ unsigned intj,i;for(i=0;i

      }

      while(1){

      for(i=0;i<7;i++){

      delay(100);

      LED=(LED<<1)|0x01;P3=LED;} }

      四川電子機(jī)械職業(yè)技術(shù)學(xué)院

      原理圖

      項(xiàng)目3 將任務(wù)二中delay延時(shí)改用定時(shí)器延時(shí),且延時(shí)一秒

      設(shè)計(jì)思路:在項(xiàng)目2的的基礎(chǔ)上,用定時(shí)器來進(jìn)行延時(shí),首先設(shè)置定時(shí)器工作方式 也就是TMOD,在設(shè)置TH0/1,TL0/1的初值,也就是定時(shí)時(shí)間的設(shè)置,然后設(shè)置中斷允許,并開中斷。用中斷來控制。

      程序

      #include char j=0,i=0;void main(){ TMOD=0X01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;while(1);} void T0_time()interrupt 1

      { TH0=(65536-50000)/256;TL0=(65536-50000)%256;j++;if(j==5){

      j=0;

      P1=~(0x01<

      if(++i==8)i=0;

      } }

      四川電子機(jī)械職業(yè)技術(shù)學(xué)院

      原理圖

      項(xiàng)目4 四位數(shù)碼管并排顯示,從左到右依次為分、秒十位、秒各位、0.1秒,相當(dāng)于移動可計(jì)時(shí)9分59.9秒,使用一個(gè)按鍵,當(dāng)按鍵第一次按下,啟動秒表,第二次按下,停止,第三次按下,清零。(數(shù)碼管可選共陰極、共陽極,至于對應(yīng)數(shù)字的段選可參考教材)

      設(shè)計(jì)思路:用delay函數(shù)來進(jìn)行延時(shí),用內(nèi)部中斷來控制T1,用外部中斷來實(shí)現(xiàn)計(jì)數(shù)、暫停、清零這三個(gè)功能。

      程序

      #include #define uint unsigned int #define uchar unsigned char sbitdp=P0^7;uchar code Tab[]={0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8,0x80,0x90};ucharxiao,miao,fen;uchart,swnum=0;void delay(uint z){

      uintx,y;

      for(x=100;x>0;x--)

      for(y=z;y>0;y--);}

      void dihplay(){

      P1=0xfd;

      四川電子機(jī)械職業(yè)技術(shù)學(xué)院

      P0=Tab[xiao%10];

      delay(1);

      } void display(){

      P1=0xfb;P0=Tab[miao/10];delay(1);

      P1=0xfe;P0=Tab[miao%10];dp=0;delay(1);}

      void dimplay(){

      P1=0xf7;P0=Tab[fen%10];dp=0;delay(1);}

      void main(){

      EA = 1;EX0 = 1;IT0 = 1;

      ET0=1;TMOD=0x01;

      TH0=(65536-50000)/256;

      TL0=(65536-50000)%256;

      TR0=0;xiao=0;miao=0;fen=0;

      while(1)

      {

      display();delay(1);dimplay();delay(1);dihplay();delay(1);

      } }

      void timer0()interrupt 1 {

      xiao++;

      if(xiao==10)

      {

      xiao=0;miao++;

      if(miao==59)

      { miao=0;

      fen++;

      if(fen==10)

      { fen=0;

      }

      }

      } }

      void ex0_int0()interrupt 0 { swnum++;if(swnum == 1){

      TR0= 1;} if(swnum == 2){

      TR0 = 0;} if(swnum == 3){

      xiao = 0;

      miao = 0;

      fen = 0;

      swnum=0;} }

      四川電子機(jī)械職業(yè)技術(shù)學(xué)院

      原理圖

      實(shí)訓(xùn)總結(jié):

      通過今次單片機(jī)實(shí)訓(xùn),使我對單片機(jī)的認(rèn)識有了更深刻的理解。系統(tǒng)以51單片機(jī)為核心部件,利用C語言編程,通過對led燈控制到用數(shù)碼管實(shí)現(xiàn)秒表功能、中斷控制功能,能實(shí)現(xiàn)本設(shè)計(jì)題目的基本要求和發(fā)揮部分。由于時(shí)間有限和本身知識水平的限制,本系統(tǒng)還存在一些不夠完善的地方,要作為實(shí)際應(yīng)用還有一些具體細(xì)節(jié)問題需要解決。

      踉踉蹌蹌地忙碌了一周,我的程序終于編譯成功。當(dāng)看著自己的程序,自己成天相伴的系統(tǒng)能夠健康的運(yùn)行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最終都會化為甜美的甘泉。

      但在這次實(shí)訓(xùn)中同時(shí)使我對C語言有了更深的認(rèn)識。當(dāng)我第一次接觸C語言就感覺很難,特別是今次實(shí)訓(xùn)要用到C語言,盡管困難重重,可我們還是克服了。這次的實(shí)訓(xùn)使培養(yǎng)了我們嚴(yán)肅認(rèn)真的做事作風(fēng),增強(qiáng)了我們之間的團(tuán)隊(duì)合作能力,使我們認(rèn)識到了團(tuán)隊(duì)合作精神的重要性。

      這次實(shí)訓(xùn)的經(jīng)歷也會使我終身受益,我感受到這次實(shí)訓(xùn)是要真真正正用心去做的一件事情,是真正的自己學(xué)習(xí)的過程和研究的過程,沒有學(xué)習(xí)就不可能有研究的能力,沒有自己的研究,就不會有所突破。希望這次的經(jīng)歷能讓我在以后學(xué)習(xí)中激勵我繼續(xù)進(jìn)步。

      第四篇:單片機(jī)實(shí)訓(xùn)報(bào)告

      單片機(jī)原理及應(yīng)用

      實(shí)訓(xùn)報(bào)告

      班級: 學(xué)號: 姓名: 指導(dǎo)教師: 實(shí)訓(xùn)總成績:

      一、節(jié)日彩燈設(shè)計(jì)

      題目:8位邏輯電平模塊上的LED小燈從左向右呈現(xiàn)“鞭甩”的實(shí)驗(yàn)現(xiàn)象,狀態(tài)間隔為0.25秒;按鍵1開始,按鍵2結(jié)束。

      原理圖

      程序代碼:

      #include #define uchar unsigned char uchar tab[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};sbit S1=P1^4;sbit S2=P1^7;unsigned char i,j;delay(unsigned int x){ for(j=0;j

      單片機(jī)原理及應(yīng)用實(shí)訓(xùn)報(bào)告

      管及驅(qū)動電路的連接,從而構(gòu)成一個(gè)完整的硬件電路。然后通過對單片機(jī)的ROM進(jìn)行編程,實(shí)現(xiàn)對彩燈閃爍的控制。

      二、定時(shí)器實(shí)現(xiàn)流水燈

      題目:利用定時(shí)器/計(jì)數(shù)器T0產(chǎn)生2秒鐘的定時(shí),每當(dāng)2秒定時(shí)到來時(shí),更換指示燈點(diǎn)亮,依次循環(huán)點(diǎn)亮。

      原理圖

      程序代碼

      #include #include int lamp = 0xfe;int cnt = 0;main(){P2 = 0xfe;TMOD = 0x01;TL0 =(6553650000)/ 256;TR0 = 1;ET0 = 1;

      50000)% 256;TH0 =(65536

      單片機(jī)原理及應(yīng)用實(shí)訓(xùn)報(bào)告

      程序代碼

      #include unsigned char seg[]={0xf9,0xa4,0xb0,0x99,0x92};unsigned char i,j;sbit P1_7=P1^7;delay(unsigned int x){ for(j=0;j

      單片機(jī)原理及應(yīng)用實(shí)訓(xùn)報(bào)告

      實(shí)訓(xùn)總結(jié)

      通過本次單片機(jī)實(shí)訓(xùn)使得我更深層次的學(xué)習(xí)單片機(jī)原理與應(yīng)用技術(shù)這門專業(yè)課程,同時(shí)對KEIL軟件進(jìn)行復(fù)習(xí)。這次實(shí)訓(xùn)是我看到了我最薄弱的一點(diǎn)那就是編程,對于編程有很大的困難。對以往學(xué)習(xí)過的編程知識沒有好好掌握,特別是編程這方便的知識很薄弱。學(xué)習(xí)過的知識在實(shí)際應(yīng)用中仿佛是冰山一角,完全不夠用,需要通過查閱很多資料才能解決到碰到的相關(guān)問題。而且實(shí)訓(xùn)中出現(xiàn)的問題都是實(shí)際應(yīng)用出比較典型的問題。這次實(shí)訓(xùn)還讓我深刻的體會了結(jié)構(gòu)化程序設(shè)計(jì)的優(yōu)勢,讓我懂得當(dāng)我們要進(jìn)行一個(gè)復(fù)雜的程序設(shè)計(jì)時(shí)應(yīng)該先將其分解為多個(gè)不同的功能模塊再分別編程實(shí)現(xiàn),這樣做不僅降低了編程的難度,也容易讓編程者思路更加清晰,避免出現(xiàn)不必要的錯(cuò)誤。在做仿真時(shí),仿真圖正確也不一定就是說明一定正確。

      第五篇:單片機(jī)實(shí)訓(xùn)報(bào)告

      目錄

      一 方案設(shè)計(jì)說明:............................................................................................2 二 硬件設(shè)計(jì)說明:............................................................................................4

      (一)電路圖:..........................................................................................4(二)單片機(jī)AT89S51的I/O口分配使用情況........................................4

      (三)元器件的參數(shù)及規(guī)格:....................................................................5 三 軟件設(shè)計(jì)說明:............................................................................................6

      (一)軟件設(shè)計(jì)思路及流程圖:................................................................6

      (二)程序的總體框架結(jié)構(gòu)說明:............................................................8

      (三)重要程序段的功能,作用及思路簡介:........................................8 四 制作調(diào)試說明:..........................................................................................13

      (一)程序調(diào)試過程:..............................................................................13

      (二)硬件調(diào)試:......................................................................................13 五 電路實(shí)拍:.....................................................................................................14 六 總結(jié)心得體會:..........................................................................................15 七 參考文獻(xiàn):.....................................................................................................16

      一 方案設(shè)計(jì)說明:

      設(shè)計(jì)方案之前,得先分解設(shè)計(jì)任務(wù)。本次的設(shè)計(jì)任務(wù)是籃球記分牌,據(jù)常識,籃球記分牌應(yīng)有分別給兩隊(duì)加分,減分,能交換顯示分?jǐn)?shù)。在進(jìn)行設(shè)計(jì)之前,應(yīng)自己提出幾個(gè)問題,待問題回答之后?;竟?、的設(shè)計(jì)方案就出來了。在設(shè)計(jì)之前我提出了一下幾個(gè)問題:

      a:硬件部分如何控制給A對B對加分,場地交換的時(shí)候又是如何實(shí)現(xiàn)分?jǐn)?shù)顯示交換的?應(yīng)該如何連接硬件,在硬件上設(shè)置控制端,控制端與單片機(jī)各引腳之間的連。

      b:單片機(jī)只有一個(gè)CPU,如何實(shí)現(xiàn)即要掃描按鍵,又要顯示比分。數(shù)碼管工作的本質(zhì)是將要顯示的數(shù)據(jù)的字型碼送給他,如何采集到變化的分?jǐn)?shù)送給數(shù)碼管。用查表嗎?

      c:加分與倒計(jì)時(shí)在程序中最本質(zhì)的東西是什么,如何用程序來說明這樣的事件,各事件之間又是如何聯(lián)系的。

      雖然這些問題看似很普通,似乎在設(shè)計(jì)過程中都要面對這樣的問題,何不事先就解決這些問題呢,在逐一回答這些問題的同時(shí),該任務(wù)的設(shè)計(jì)方案已見雛形。以下就是該方案的詳細(xì)內(nèi)容以及我問題的答案。

      系統(tǒng)原理圖如下圖一所示:

      LED數(shù)碼顯示管外部按鍵AT89S51驅(qū)動電路 3

      二 硬件設(shè)計(jì)說明:

      (一)電路圖:

      (二)單片機(jī)AT89S51的I/O口分配使用情況

      圖中P3.0,P3.1,P3.2,P3.3分別是加一分、加兩分、加三分、減一分。P3.4與P3.5口是外部中斷,其中斷服務(wù)程序的功能是實(shí)現(xiàn)比分交換的切換顯示和加分減分切換。電路中選擇共陽極的數(shù)碼管,可以省去輸入端的驅(qū)動電路,使電路更簡潔。P0口作為字形碼的輸出口,與數(shù)碼管的八只管教相連。

      (三)元器件的參數(shù)及規(guī)格:

      主要元器件有單片機(jī)芯片AT89S51,共陽極數(shù)碼管,9012PNP三極管。其中單片機(jī)承載程序,實(shí)現(xiàn)電路功能,三極管起開關(guān)及驅(qū)動數(shù)碼管顯示作用。數(shù)碼管顯示比分。

      三 軟件設(shè)計(jì)說明:

      程序的總體思路是主程序一直在掃描按鍵,比分顯示,比分交換,加減分隊(duì)伍切換都在中斷服務(wù)程序中完成。其具體內(nèi)容如下所示。

      (一)軟件設(shè)計(jì)思路及流程圖:

      中斷程序流程圖(如:圖一)

      程序初始化,給存儲器賦初值按鍵掃描程序,掃描到由按鍵控制的中斷就執(zhí)行其對應(yīng)程序外部中斷1,加減外部中斷0,A、B分隊(duì)伍切換中斷程序兩隊(duì)比分切換圖一

      按鍵掃描程序流程圖(如:圖二)按鍵掃描入口,檢測軟件標(biāo)志位F0,為1調(diào)用分?jǐn)?shù)顯示程序程序,為0調(diào)用加減分切換程序,同時(shí)掃描按鍵是掃描P3.0,并去抖,是否有鍵按下加一分否是掃描P3.1,并去抖,是否有鍵按下加兩分否是掃描P3.2,并去抖,是否有鍵按下加三分否是掃描P3.3,并去抖,是否有按鍵按下減一分否按鍵掃描程序結(jié)束圖二

      分?jǐn)?shù)顯示程序流程圖(如:圖三)

      將A對B對的分?jǐn)?shù)首先進(jìn)行BCD碼轉(zhuǎn)換,再保存到相對應(yīng)的寄存器中把各分?jǐn)?shù)分別賦給寄存器A,查表送往要顯示的數(shù)碼管由P2口的位狀態(tài)控制子程序調(diào)用結(jié)束,返回主程序,RET 圖三

      其中時(shí)間顯示的子程序流程圖與分?jǐn)?shù)的大同小異,此處就不再一一列出。

      (二)程序的總體框架結(jié)構(gòu)說明:

      程序包含按鍵掃描程序,不斷地掃描按鍵,一旦有控制中斷的按鍵按下,就執(zhí)行中斷程序,交換比分。中斷服務(wù)程序,INT_0交換A對與B對的總分,INT_1改變軟件標(biāo)志位就可以切換加減分隊(duì)伍,同時(shí)掃描按鍵。

      (三)重要程序段的功能,作用及思路簡介:

      按鍵掃描程序是本程序中最重要的程序段,其連接了所有的子程序,子程序的調(diào)用都是在其中完成。下面就對該程序段的功能,作用及編寫思路做詳細(xì)說明。各部分關(guān)鍵程序 按鍵控制程序

      org 0060h ajcx: jnb p3.0,s0

      jnb p3.1,s1

      jnb p3.2,s2

      jnb p3.3,s3

      jnb p3.4,s4

      jnb p3.5,sz5

      ljmp ajcx sz5: ljmp s5 s0:

      lcall del

      jb p3.0,s01

      ljmp ajcx s01: jnb p1.0,s02

      mov a,30h

      inc a

      mov 30h,a

      ljmp tzcx s02: mov a,31h

      inc a

      mov 31h,a

      ljmp tzcx s1:

      lcall del

      jb p3.1,s11

      ljmp ajcx s11: jnb p1.0,s12

      mov a,30h

      add a,#02h

      mov 30h,a

      ljmp tzcx s12: mov a,31h

      add a,#02h

      mov 31h,a

      ljmp tzcx s2:

      lcall del

      jb p3.2,s21

      ljmp ajcx s21: jnb p1.0,s22

      mov a,30h

      add a,#03h

      mov 30h,a

      ljmp tzcx s22: mov a,31h

      add a,#03h

      mov 31h,a

      ljmp tzcx s3:

      lcall del

      jb p3.3,s31

      ljmp ajcx s31: jnb p1.0,s32

      mov a,30h

      dec a

      mov 30h,a

      ljmp tzcx s32: mov a,31h

      dec a

      mov 31h,a

      ljmp tzcx s4:

      lcall del

      jb p3.4,s41

      ljmp ajcx s41: push 30h

      push 31h

      pop 30h

      pop 31h

      lcall jscx

      ljmp ajcx s5:

      lcall del

      jb p3.5,s51

      ljmp ajcx s51: cpl p1.0

      cpl p1.1

      ljmp ajcx 加分程序: org 0120h tzcx: lcall jscx

      ljmp ajcx org 0130h del: mov tl1,#00h

      mov th1,#0bh

      setb tr1

      jnb tf1,$

      mov tl1,#00h

      mov th1,#0bh

      clr tf1

      ret 加減分隊(duì)伍切換程序: org 0150h

      dscx: mov th0,#0fch

      mov tl0,#18h

      mov a,r2

      rl a

      mov r2,a

      cjne r2,#11h,d1

      mov r1,#32h

      lcall jscx

      reti d1:

      cjne r2,#22h,d2

      mov r1,#33h

      lcall jscx

      reti d2:

      cjne r2,#44h,d3

      mov r1,#34h

      lcall jscx

      reti d3:

      mov r1,#35h

      lcall jscx

      reti 比分切換程序: org 0190h jscx: mov a,30h

      mov b,#0ah

      div ab

      mov 33h,b

      mov 32h,a

      mov a,31h

      mov b,#0ah

      div ab

      mov 35h,b

      mov 34h,a

      mov p2,r2

      mov dptr,#tab

      mov a,@r1

      movc a,@a+dptr

      mov p0,a

      ret

      org 0220h tab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h

      db 80h,90h end 12

      四 制作調(diào)試說明:

      (一)程序調(diào)試過程:

      程序調(diào)試我花了兩天的時(shí)間,此程序雖然不復(fù)雜,由于我平時(shí)學(xué)習(xí)的不夠深入,也沒用心學(xué)。對于我這樣的基礎(chǔ)來說調(diào)試過程真的很痛苦。剛開始調(diào)試時(shí)程序有兩處讓我感覺很亂,按鍵掃描程序中的中斷程序如何調(diào)用。當(dāng)寄存A對或B對的分?jǐn)?shù)累加到99的時(shí)候,就清零,但還沒有累加到99的時(shí)候,程序應(yīng)該跳往何處執(zhí)行,我最初的是跳了繼續(xù)累加。在仿真中的現(xiàn)象就是分?jǐn)?shù)一直顯示99,加不了。我真的是太大意了,調(diào)試的時(shí)候不踏實(shí)。

      (二)硬件調(diào)試:

      此次的硬件焊接很成功,電路布局很清晰,雖然在調(diào)試時(shí)也發(fā)現(xiàn)錯(cuò)誤,但用萬用表很容易就檢測出來了,其中有幾根線的皮包線熔了,肉眼看不到。重新整理電路后,功能明顯成功。至此,本次的單片機(jī)課程設(shè)計(jì)圓滿結(jié)束。

      五 電路實(shí)拍: 電路板正面:

      電路板背面:

      六 總結(jié)心得體會:

      通過這一次的單片機(jī)實(shí)訓(xùn),讓我對單片機(jī)這一門知識有了更深的認(rèn)識,更鍛煉了我獨(dú)立解決問題獨(dú)立思考的能力,在電路設(shè)計(jì)和程序設(shè)計(jì)的過程中我們遇到了很多問題和困難,但通過大家的討論和老師的指點(diǎn)之后,一切的問題都一一被解決,但單片機(jī)的學(xué)習(xí)并不是那么的簡單,在最后也是最關(guān)鍵的程序調(diào)試的過程中,我們又遇到了很多更難的更棘手的問題,電路焊接完好也會出現(xiàn)諸多類似于不實(shí)現(xiàn)功能或是出現(xiàn)混亂顯示的情況,真的很讓人頭疼,但,大家都還是咬牙堅(jiān)持了下來,最后很多電路雖然依舊還是沒能實(shí)現(xiàn)功能,但我們努力頑強(qiáng)克服重重困難的精神,是大家有目共睹的,就算是失敗了,也依舊是很值得的一次經(jīng)歷.,與此同時(shí),也有很多同學(xué)試驗(yàn)成功,看著大家臉上洋溢的笑容,大家無論失敗成功都從這次的實(shí)訓(xùn)中學(xué)到了很多很多的東西

      七 參考文獻(xiàn): 胡健

      主編 《單片機(jī)原理及接口技術(shù)》

      張大明 主編 《單片機(jī)控制實(shí)訓(xùn)指導(dǎo)及綜合應(yīng)用實(shí)例》李勛、林廣艷《單片機(jī)微型計(jì)算機(jī)大學(xué)讀本》

      機(jī)械工程出版社 機(jī)械工業(yè)出版社

      北京航空航天大學(xué)出版社16

      下載單片機(jī)萬年歷實(shí)訓(xùn)報(bào)告word格式文檔
      下載單片機(jī)萬年歷實(shí)訓(xùn)報(bào)告.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        單片機(jī)實(shí)訓(xùn)報(bào)告

        滄州職業(yè)技術(shù)學(xué)院單片機(jī)實(shí)訓(xùn)報(bào)告 原理圖 滄州職業(yè)技術(shù)學(xué)院單片機(jī)實(shí)訓(xùn)報(bào)告 雙位數(shù)碼管顯示控制程序及說明 START: MOV R0,#0 ;清零 MOV DPTR,#TABLE ;指定查表起始地址 LO......

        單片機(jī)實(shí)訓(xùn)報(bào)告樣本(★)

        實(shí)訓(xùn)報(bào)告實(shí)訓(xùn)題目:_ 專業(yè):_ 班級:姓名:指導(dǎo)教師:2實(shí)訓(xùn)目的: 掌握匯編語言程序設(shè)計(jì)和調(diào)試方法,熟悉鍵盤操作。掌握RAM中的數(shù)據(jù)操作。 熟悉MCS-51指令系統(tǒng),掌握程序設(shè)計(jì)方法。掌握簡單的......

        單片機(jī)實(shí)訓(xùn)

        單片機(jī)應(yīng)用課程設(shè)計(jì)教學(xué)大綱 開課學(xué)院:機(jī)電工程學(xué)院 適用專業(yè):電子科學(xué)與技術(shù) 課程編號:2009404 課程英文名稱:Single-chip Microcomputer Application System Design 實(shí)驗(yàn)課程......

        單片機(jī)應(yīng)用實(shí)訓(xùn)報(bào)告

        青島大學(xué)軟件技術(shù)學(xué)院 單片機(jī)應(yīng)用實(shí)訓(xùn)報(bào)告 姓 名 xx 專 業(yè) xxxxxxx 班 級 xxxxxxxxxxxxxxxxxxxx 指導(dǎo)教師 xxxxxxxxxxxxxxx 2014 年 1月16日 目錄 1實(shí)訓(xùn)目的……………......

        51單片機(jī)實(shí)訓(xùn)報(bào)告

        “51單片機(jī)”精簡開發(fā)板的組裝及調(diào)試實(shí)訓(xùn)報(bào)告 為期一周的單片機(jī)實(shí)習(xí)已經(jīng)結(jié)束了。通過此次實(shí)訓(xùn),讓我們掌握了單片機(jī)基本原理的基礎(chǔ)、單片機(jī)的編程知識以及初步掌握單片機(jī)應(yīng)用......

        單片機(jī)數(shù)字鐘實(shí)訓(xùn)報(bào)告

        單片機(jī)數(shù)字鐘實(shí)訓(xùn)報(bào)告 學(xué)院:電子工程學(xué)院 專業(yè):機(jī)電一體化 班級: 姓名: 手機(jī)號: 一、任務(wù)及要求 用51單片機(jī)設(shè)計(jì)時(shí)、分、秒計(jì)時(shí)器,具體要求如下。 1、具有時(shí)、分、秒計(jì)時(shí)功能和8......

        單片機(jī)課程設(shè)計(jì)-電子萬年歷

        單片機(jī)及接口技術(shù)綜合實(shí)驗(yàn) ——————電子萬年日歷系統(tǒng) 一、題目:電子實(shí)時(shí)時(shí)鐘/萬年日歷系統(tǒng) 二、功能要求:1. 基本要求: ⑴ 顯示準(zhǔn)確的北京時(shí)間(時(shí)、分、秒),可用24小時(shí)制式; ⑵......

        單片機(jī)實(shí)訓(xùn)題目

        電氣1001班綜合實(shí)訓(xùn)任務(wù)(單片機(jī)控制系統(tǒng)運(yùn)行與維護(hù)) 第1題 模擬交通燈 任務(wù)要求:1、主干道綠燈40秒,支干道綠燈20秒,黃燈都是5秒; 2、要求用定時(shí)器實(shí)現(xiàn)定時(shí)時(shí)間; 3、要求顯示器同步......