標題: 一些51單片機的簡單學習實驗程序 [打印本頁]
作者: zbyshen 時間: 2019-7-29 11:02
標題: 一些51單片機的簡單學習實驗程序
實驗項目目錄實驗1:μVision集成開發環境的操作使用和匯編程序設計實驗. 1
實驗2:匯編語言設計實驗 2
實驗3:C51程序設計實驗. 3
實驗4:鍵盤與顯示編程實驗. 4
實驗5:單片機外部中斷實驗. 5
實驗6:中斷及定時系統綜合應用之電子鐘實驗. 7
實驗8:串行通信實驗. 8
實驗9:A/D轉換實驗. 9
實驗10:D/A轉換實驗. 10
實驗11:簡易數字信號發生器設計. 11
實驗12:簡易數字電壓表的設計. 12
實驗1:μVision集成開發環境的操作使用和匯編程序設計實驗
一、實驗目的與要求1.掌握匯編語言指令格式,熟練常用匯編指令的含義及使用方法;
2.熟悉基本程序的結構,熟悉編寫匯編程序的基本方法;
3.掌握使用uVision3創建應用項目方法和步驟和使用uVision3調試應用程序的基本方法。
二、實驗內容與任務 在uVision3環境下,采用匯編語言,分別編程實現:
1. 求取存儲在50H~5FH區間的16個無符號二進制數的最大值和最小值,并將最大值存入60H內,最小值存入61H內。
2. 求片內連續50H~5FH 這16個單元的8位無符號數的平均值,并將結果存入60H中。
3 求多字節無符號數的加法。40H,41H和42H中分別存入被加數的低8位,中8位和高8位,50H,51H和52H中分別存入加數的低8位,中8位和高8位,要求,將兩者相加,結果按低到高位存入40H至43H中,并將結果的字節數存入R3中。
三、實驗儀器與設備 計算機,uVision3軟件
四、實驗設計方案與程序
1. ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:
MOV A,#0FFH
CLR C
MOV R2,#08H
LOOP1:
RLC A
MOV P0,A
ACALL DEL
DJNZ R2,LOOP1
MOV R2,#08H
LOOP2:
RRC A
MOV P0,A
ACALL DEL
DJNZ R2,LOOP2
JMP MAIN
DEL: MOV R5,#05H
DEL1: MOV R6,#0F0H
DEL2: MOV R7,#0F0H
DEL3: DJNZ R7, DEL3
DJNZ R6, DEL2
DJNZ R5, DEL1
RET
END
2 ORG 0000H
LJMP MAIN
ORG 1000H
MAIN:MOV R0,#50H
MOV R1,#51H
MOV R3,#15
MOV R4,#10H
CLR C
LOOP:MOV A,@R0
ADDC A,@R1
MOV @R0,A
INC R1
DJNZ R3,LOOP
MOV A,@R0
DIV A10H
MOV 60H,A
SJMP $
END
3. ORG 0000H
LJMP MAIN
ORG 1000H
MAIN:MOV R0,#40H
MOV R1,#50H
MOV R2,#3
CLR C
LOOP:MOV A,@R0
ADDC A,@R1
MOV @R0,A
INC R0
INC R1
DJNZ R2,LOOP
SJMP $
END
五、實驗結果與分析 1.結果;存儲在50H~5FH區間的16個無符號二進制數的最大值存入60H內,最小值存入61H內。
2結果;程序執行后,16個數的平均值放入60H,
3.結果:兩個加數的高、中、低三位分別在40H、41H、42H和50H、51H、52H中,和分別放在40H、41H、42H中。
六、回答問題及體會遇到的問題:對匯編語言的不熟悉及程序設計的問題
解決:多看書,多實驗
體會:基礎最重要,要重視基礎
實驗2:匯編語言設計實驗 2一、實驗目的與要求1.掌握匯編語言程序結構及其使用方法;
2.學會用匯編語言編寫應用程序;
3.熟悉LED的工作特性及控制方法。
4.熟悉單片機實驗板的工作原理。
二、實驗內容與任務 實驗參考電路圖如下圖所示(實際電路圖以自己手中的單片機實驗板為準),要求采用匯編語言編寫程序,控制數碼管跑馬顯示0-9。
file:///C:/Users/22284/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg
三、實驗儀器與設備 計算機,單片機實驗板
四、實驗設計方案與程序 ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:
MOV A,#0FFH
CLR C
MOV R2,#08H
LOOP1:
RLC A
MOV P0,A
ACALL DEL
DJNZ R2,LOOP1
MOV R2,#08H
LOOP2:
RRC A
MOV P0,A
ACALL DEL
DJNZ R2,LOOP2
JMP MAIN
DEL: MOV R5,#05H
DEL1: MOV R6,#0F0H
DEL2: MOV R7,#0F0H
DEL3: DJNZ R7, DEL3
DJNZ R6, DEL2
DJNZ R5, DEL1
RET
END
五、實驗結果與分析 小燈顯示0到9,如下圖所示
file:///C:/Users/22284/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg
六、回答問題及體會 遇到的問題:對匯編語言的不熟悉及程序設計的問題
解決:多看書,多實 驗 體會:基礎最重要,要重視基礎
實驗3:C51程序設計實驗 一、實驗目的與要求1.掌握C51程序結構及其使用方法;
2.學會用C51編寫應用程序;
3.掌握LED的工作特性及控制方法。
4.掌握單片機實驗板的工作原理。
二、實驗內容與任務 實驗參考電路圖如下圖所示(實際電路圖以自己手中的單片機實驗板為準),要求使用C51編寫程序,使小燈從左到右移動
file:///C:/Users/22284/AppData/Local/Temp/msohtmlclip1/01/clip_image005.jpg
三、實驗儀器與設備 計算機,單片機實驗板
四、實驗設計方案與程序 #include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int //加黑的都是定義頭文件
void DelayMS(uint x) //延時
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
void main() //主程序
{
uchar i;
P2=0x01;
while(1)
{
for(i=0;i<7;i++)
{
P2=_crol_(P2,1); //左循環移動
DelayMS(150);
}
for(i=0;i<7;i++)
{
P2=_cror_(P2,1); //右循環移動
DelayMS(150);
}
}
}
五、實驗結果與分析
file:///C:/Users/22284/AppData/Local/Temp/msohtmlclip1/01/clip_image007.jpg六、回答問題及體會
問題:C語言知識的缺乏以及編程遇到的困難
解決方案:多練習,多編程,有自己的編程風格
體會;編程是個很有意思的東西,一串串代碼就能讓燈按順序亮起來,很有意思
實驗4:鍵盤與顯示編程實驗一、實驗目的與要求 1. 進一步掌握單片機通用IO接口的編程方法。
2.掌握單片機矩陣鍵盤電路的設計方法。
3.掌握單片機讀取矩陣鍵盤狀態的編程方法。
4.掌握數碼管動靜態掃描控制方法。
二、實驗內容與任務 1、實驗電路圖如圖所示,按鍵信號由P2口進行識別,上電后左一數碼管顯示“P”,按下某按鍵后,在左一數碼管顯示對應鍵值。
file:///C:/Users/22284/AppData/Local/Temp/msohtmlclip1/01/clip_image009.jpg
三、實驗儀器與設備 計算機,單片機實驗板
四、實驗設計方案與程序 #include"reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
#define GPIO_DIG P0
#define GPIO_KEY P1
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
u8 KeyValue;
u8 code smgduan[17]={0xf3,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(u16 i)
{
while(i--);
}
void KeyDown(void)
{
char a=0;
GPIO_KEY=0x0f;
if(GPIO_KEY!=0x0f)
{
delay(1000);
if(GPIO_KEY!=0x0f)
{
GPIO_KEY=0X0F;
switch(GPIO_KEY)
{
case(0X07): KeyValue=1;break;
case(0X0b): KeyValue=2;break;
case(0X0d):KeyValue=3;break;
case(0X0e): KeyValue=4;break;
}
GPIO_KEY=0XF0;
switch(GPIO_KEY)
{
case(0X70): KeyValue=KeyValue;break;
case(0Xb0): KeyValue=KeyValue+4;break;
case(0Xd0):KeyValue=KeyValue+8;break;
case(0Xe0): KeyValue=KeyValue+12;break;
}
while((a<50)&&(GPIO_KEY!=0xf0)) //檢測按鍵松手檢測
{
delay(1000);
a++;
}
}
}
}
void main()
{
LSA=1;
LSB=1;
LSC=1;
while(1)
{
KeyDown();
GPIO_DIG=smgduan[KeyValue];
}
}
五、實驗結果與分析
上電后左一數碼管顯示“P”,按下某按鍵后,在左一數碼管顯示對應鍵值。
如圖
-
-
新建 Microsoft Word 文檔.docx
2019-7-29 11:01 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
14.25 KB, 下載次數: 4, 下載積分: 黑幣 -5
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
a免费观看
|
午夜精品一区二区三区在线
|
日韩手机在线看片
|
久久久久网站
|
国产一区二区三区免费视频
|
天天影视网天天综合色在线播放
|
日韩欧美在线不卡
|
亚洲va欧美va人人爽午夜
|
黄免费观看视频
|
欧美片网站免费
|
天堂一区
|
xxxxxx国产
|
99免费
|
毛片视频观看
|
日韩国产中文字幕
|
免费国产视频
|
日日摸夜夜爽人人添av
|
日韩视频在线观看中文字幕
|
久草热8精品视频在线观看
午夜伦4480yy私人影院
|
精品久久一区二区三区
|
在线国产中文字幕
|
久久久婷婷|
国产99视频精品免视看9
|
日本不卡一区二区三区在线观看
|
欧美成人精品一区二区男人看
|
日韩欧美国产一区二区三区
|
国产69精品久久99不卡免费版
|
午夜精品一区二区三区在线视频
|
日韩第一夜
|
久久久久久中文字幕
|
毛片区|
久久久久久美女
|
亚洲精品美女视频
|
日本人爽p大片免费看
|
国产成人精品一区二区三区在线观看
|
国内久久
|
成人一区在线观看
|
国产一区不卡
|
日本精品久久久一区二区三区
|
国产在线精品一区二区三区
|
国产91在线播放
|