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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

上傳一個單片機實驗代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:262 發(fā)表于 2014-6-18 00:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
實驗二
實驗要求:
P3.2、P3.3、P3.4、P3.5作輸入口接四個按鈕開關SW1、SW2、SW3、SW4;P1.2、P1.3 、P1.2,P1.3作輸出口接發(fā)光二極管,編寫程序讀取開關狀態(tài),將此狀態(tài)在發(fā)光二極管上顯示出來。編程時應注意P3.2、P3.3、P3.4、P3.5作為輸入口時應先置1,才能正確讀入值。
代碼:
ORG 0000H ;復位開始
         LCALL MAIN;轉去主程序執(zhí)行
         ORG 0030H;主程序從0030H開始
MAIN:
         MOV A, #0FFH ;預設初始化的值是為1111 1111
         LJMP LOOP ;不斷循環(huán)
LOOP:  
         MOV P3,A     ; 初始化 p3作為輸入口應為1
         MOV P1,P3       ;開關按下,p3口就得到了當前的值,并賦值給p1,點亮相應的LED
         RET  ;返回
END
實驗三:
實驗要求:
       用單次脈沖申請中斷,在中斷處理程序中對信號進行反轉輸出
代碼:
  ORG 0000H;
         LJMP MAIN;
         ORG 0003H ;        INT0中斷的入口程序地址
         LJMP INT;         中斷程序的標號
         ORG 0400;
MAIN:  
SETB P1.0; 置位p1.0,
                MOV TCON,#01H;  選擇外部中斷0(INT0)觸發(fā)方式控制位。
                MOV IE,#81H;  開所有中斷且中斷源為INT0
                LJMP $;     一直跳轉到當前地址,也就是循環(huán)
                ORG 0100;      INT的起始地址
INT:       CLR EX0;           關INT0中斷
                PUSH ACC;       然后保護現(xiàn)場
                PUSH PSW;
                CPL P1.0;          將p1.0取反
                POP PSW;    恢復現(xiàn)場
                POP ACC;
                SETB EX0;  開中斷
                RETI; 中斷返回
       END


實驗四
實驗展示:
單片機內部定時器中斷方式計時每隔一秒鐘輸出狀態(tài)反轉一次
X= 2M -(t/12*T osc)t的值是50ms, x值為15536就是3CB0。
代碼:      
ORG 0000H;
           LJMP MAIN;
           ORG 000BH;
           LJMP INT;
MAIN:
         MOV TMOD,#01H;選擇定時器0 工作方式一
         MOV TL0,#0B0H;設置時間常數(shù)3CB0
         MOV TH0,#03CH;

         SETB P1.0; 設置p1.0的初始狀態(tài)
         MOV R0,#014H;設置秒計數(shù)值 20.  20*50ms=1s
         MOV IE,#82H; 開所有中斷且選擇中斷源為定時器0
         SETB TR0; 啟動定時器工作
         LJMP $; 死循環(huán)
INT:
         CLR ET0; 關中斷
         PUSH ACC; 保護現(xiàn)場
         PUSH PSW
         MOV TL0,#0B0H;重新賦值
         MOV TH0,#03CH;                     
         CJNE R0,#00H,LOOP;如果R0==0,就繼續(xù)執(zhí)行下去 否則LooP
         CLR EA;關中斷
         MOV R0,#014H;如果已經到1S了重新計時
          CPL P1.0;        取反p1.0
LOOP:
         DEC R0;   如果還木有到1s那么就將計數(shù)值自減
         POP PSW;  恢復現(xiàn)場
         POP ACC;
         MOV IE,#82H; 開中斷
         RETI; 中斷返回
END;


實驗五
實驗展示:
PC機串行口設置波特率4800,啟始位1位,數(shù)據(jù)為8位,停止位1位,用交叉串行線連接單片機J232。 編程實現(xiàn)向PC機串行發(fā)送1-10十個數(shù)據(jù),波特率4800,工作方式1。
通常采用T1的工作方式2,即自動重裝載方式作為波特率發(fā)生器

代碼
         ORG 0000H;
         LJMP MAIN;
         ORG 0100H;
MAIN:
         MOV TMOD,#20H; 定時器T1 工作方式2
         MOV TL1,#0F3H; 通過公式去計算對應的初始值
         MOV TH1,#0F3H;
         MOV IE,#98H;  開全部中斷且開串行中斷,且中斷源是T1
         SETB TR1;         啟動定時器1                  
         MOV SCON,#50H; 設定串行口的工作方式為方式1
         MOV PCON,#80H;比特率加倍
         MOV R0,#00H; 發(fā)送數(shù)據(jù)計數(shù)器 從0開始
         MOV A,#00H; 準備發(fā)送的數(shù)據(jù) 先初始化成0
WRITE:
         CLR  TI; 發(fā)送中斷標志位發(fā)送完數(shù)據(jù)之后會變成1 發(fā)送數(shù)據(jù)之前要清零
         INC A; 從1開始發(fā)送發(fā)送到10即可停止
         MOV SBUF,A; 發(fā)送數(shù)據(jù)
WAUT:
         JBC TI,CONT; 如果發(fā)送數(shù)據(jù)完畢那么就轉去CONT執(zhí)行 發(fā)送下一個數(shù)據(jù)
         LJMP WAUT; 否則就一直等到該數(shù)據(jù)發(fā)送直到發(fā)送完畢
CONT:
         CLR TI; 清零,該句可以省略
         INC R0; 發(fā)送完一幀數(shù)據(jù)以后 計數(shù)值就加1
         CJNE R0,#0AH,WRITE ;  還木有發(fā)送到10 那就繼續(xù)發(fā)送 否則循序執(zhí)行
         END;
實驗七
實驗要求:
根據(jù)動態(tài)顯示原理在四位LED上顯示1234
代碼:
ORG              0000H        
LJMP      MAIN
ORG           0100H      
MAIN:
              MOV P0,#00H;  初始化 哪一位都不選
              MOV P2,#00H;
LOOP:
               SETB P0.0選擇第一位顯示1
         MOV P2,#06H 段的碼數(shù)表示1
                LCALL DELAY   顯示延遲

              MOV P0,#00H; 清空數(shù)碼管
              SETB P0.1選擇第二位顯示2
               MOV P2,#5BH 段的碼數(shù)表示2
               LCALL DELAY

              MOV P0,#00H;
              SETB P0.2 選擇第三位顯示3
               MOV P2,#4FH;
               LCALL DELAY

MOV P0,#00H;
              SETB P0.3選擇第四位
               MOV P2,#66H
               LCALL DELAY

              LJMP LOOP 不斷的循環(huán) 動態(tài)的顯示1 2 3 4

DELAY:   MOV R7,#4
DELY1:  MOV R6,#248
              NOP            
DELY2: DJNZ      R6,DELY2
              DJNZ R7,DELY1
              RET  
END

實驗十三

實驗要求:
開關3S2接通P1.7時工作,這時P1.7=1,繼電器控制線圈通電吸合,P1.7=0,繼電器斷電釋放。當3S2接到GND時,繼電器始終斷電釋放。


ORG 0000H;
        LJMP MAIN;
MAIN:
MOV P1 ,#7FH; 設置p1口的初值 使得p1.7為0
LOOP:
       CPL P1.7; 取反操作
       LCALL DELAY;延遲
       LJMP LOOP; 一直執(zhí)行取反-延遲操作
DELAY:
       MOV R7,#200;
DELAY1:
      MOV R6,#123
       NOP
DELAY2:
       DJNZ R6,DELAY2;
       DJNZ R7,DELAY2;
       RET
END

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

使用道具 舉報

沙發(fā)
ID:63641 發(fā)表于 2014-7-5 20:39 | 只看該作者
謝謝分享
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国内av在线 | 日韩精品一区二区三区视频播放 | 中文字幕av中文字幕 | 拍拍无遮挡人做人爱视频免费观看 | 高清成人av| 日韩一级黄色片 | 狠狠操网站 | 日本成人区 | 一区在线播放 | 99精品久久| 日韩色图在线观看 | 最新中文字幕在线 | 天天插天天操 | 99精品国产一区二区三区 | 中文字幕精品一区二区三区精品 | www.yw193.com| 奇米在线 | 久久精品黄色 | 一级毛片黄片 | av在线免费观看网址 | 国产精品99久久久久久大便 | 中文字幕一区二区三区精彩视频 | 亚洲天天| 欧美一区二区三区大片 | 国产视频一区二区 | 久草在线青青草 | 国产在线对白 | 五月天综合网 | 欧美日本韩国一区二区三区 | 亚洲精品电影网在线观看 | 狠狠操电影 | 色精品 | 天天操妹子 | 久久久久久久国产精品 | 高清免费在线 | 成人免费网站 | 日韩综合在线 | 欧美一级黄色免费看 | 91久色| 中文一区 | 欧美亚州|