广东海洋大学单片机实验全套Word下载.docx
- 文档编号:21908736
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:21
- 大小:134.77KB
广东海洋大学单片机实验全套Word下载.docx
《广东海洋大学单片机实验全套Word下载.docx》由会员分享,可在线阅读,更多相关《广东海洋大学单片机实验全套Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
{
GPIO_LED=_crol_(GPIO_LED,1);
Delay10ms(50);
}
n++)
GPIO_LED=_cror_(GPIO_LED,1);
}
}
}
voidDelay10ms(unsignedintc)
unsignedchara,b;
for(;
c>
0;
c--)
for(b=38;
b>
b--)
for(a=130;
a>
a--);
实验二开关控制LED数码管实验
1.通过AT89C51读入4位开关的输入状态(0~F),并将其输出到数码管显示。
2.掌握LED数码管的静态显示。
3.掌握I/O口的控制方法。
#include
<
reg52.h>
char
code
shumaguan[]={0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
main()
while
(1)
switch
(P2)
{
case
0xf0:
P0=shumaguan[0];
break;
0xf1:
P0=shumaguan[1];
0xf2:
P0=shumaguan[2];
0xf3:
P0=shumaguan[3];
0xf4:
P0=shumaguan[4];
0xf5:
P0=shumaguan[5];
0xf6:
P0=shumaguan[6];
0xf7:
P0=shumaguan[7];
0xf8:
P0=shumaguan[8];
0xf9:
P0=shumaguan[9];
0xfa:
P0=shumaguan[10];
0xfb:
P0=shumaguan[11];
0xfc:
P0=shumaguan[12];
0xfd:
P0=shumaguan[13];
0xfe:
P0=shumaguan[14];
0xff:
P0=shumaguan[15];
default:
}
}}
实验三外中断优先级实验
1.理解单片机中断优先级和优先权。
2.用PROTEUS设计,仿真基于AT89C51单片机的中断优先级实验。
3.掌握中断编程方法。
单片机主程序控制P0口数码管循环显示0~8;
外中断0、外中断1发生时分别在P2口、P1口依次显示0~8。
通过实验可演示高优先级可中断低优先级,但低优先级的中断请求不能中断高优先级。
ORG
0000H
LJMP
MAIN
0003H
INT00
0013H
INT11
0100H
MAIN:
MOV
SP,#30H
SETB
EX0
IT0
ETB
PX0
EX1
IT1
CLR
PX1
EA
Start
R3,#09
R0,#0
LOOP:
DPTR,#TAB
A,R0
MOVC
A,@A+DPTR
P0,A
INC
R0
R4,#5
CC:
R2,#100
BB:
R1,#200
AA:
NOP
DJNZ
R1,AA
R2,BB
R4,CC
R3,LOOP
SJMP
START
INT00:
PUSH
ACC
PSW
RS0
RS1
R,#09
R0,#0
LOO:
P2,A
FF:
EE:
R1,#200
DD:
R1,DD
R2,EE
R4,FF
R3,LOO
POP
PSW
ACC
RETI
INT11:
RS0
LO:
A,@A+DPTR
P1,A
FG:
EF:
DF:
R1,DF
R2,EF
R4,FG
R3,LO
TAB:
DB
0X40,0XF9,0X24,0X30,0X19,0X12,0X02,0XF8,0X00
实验四60S倒计时实验
1.通过AT89C51的定时器实现60S倒计时,显示采用两位数码管动态显示。
2.用PROTEUS设计,仿真基于AT89C51单片机的60S倒计时实验。
#define
uchar
unsigned
uint
int
temp,bai,shi,ge,num;
table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void
delay(uint);
temp=60;
num=0;
P2=0x00;
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
ET0=1;
TR0=1;
shi=temp/10;
ge=temp%10;
P0=table[shi];
P2=0x02;
delay(5);
P0=table[ge];
P2=0x01;
T0_time()interrupt
1
num++;
if(num==40)
temp--;
if(temp==0)
delay(uint
z)
x,y;
for(x=z;
x>
x--)
for(y=110;
y>
y--);
实验五A/D转换实验
1.掌握转换器ADC0809的使用。
2.用PROTEUS设计,仿真基于AT89C51单片机的A/D转换实验。
3.通过改变电位器的值改变模拟量的输入,经转换为数字量在LED上显示,比对模拟量和数字量的关系。
AJMP
INT
START:
R0,#50H
MOVX
@R0,A
F0
P2.0
JB
F0,LOOP1
P3.4
P3.5
A,R6
ACALL
DLY
LHD
LOOP1:
A,R7
LHD:
CPL
LOOP
INT:
A,@R0
R7,A
SWAP
A
R6,A
ANL
A,#0FH
DLY:
R4,#0FH
DL:
R5,#045H
DL1:
R5,DL1
R4,DL
RET
0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
80H,90H,88H,83H,0C6H,0A1H,86H,8EH
END
综合性实验——小型计算器的设计
一、实验目的
1.用单片机AT89C51实现一个小型计算器,可以实现两位数以内的算术运算及显示。
2.通过P2口设计一个小型键盘4×
4,键盘包括几个数字键0、1、2、4、5、6、7、8、9,以及功能键加,减,乘,除,等于,CLR(清除)。
键盘输入和计算结果可通过P0口输出到数码管,并以动态显示。
3.综合性实验内容包含一个4×
4的键盘设计,以及两位数码管动态显示的设计方法。
二、PROTEUS电路设计
#include<
sbitfou_bit=P1^0;
sbitthi_bit=P1^1;
sbitsec_bit=P1^2;
sbitfir_bit=P1^3;
unsignedcharnixiecode[2][16]={
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,//无小数点
0x82,0xf8,0x80,0x98,0x88,0x83,
0xc6,0xa1,0x86,0x8e},
};
voiddelay(unsignedintz)
unsignedintx,y;
for(x=z;
x--)
for(y=110;
voiddisplay(unsignedintnum)
unsignedcharthou,hun,ten,bits;
thou=num/1000;
hun=num%1000/100;
ten=num%100/10;
;
bits=num%10;
//显示千位
fou_bit=1;
P0=nixiecode[0][thou];
delay
(1);
P0=0xff;
fou_bit=0;
//显示百位
thi_bit=1;
P0=nixiecode[0][hun];
thi_bit=0;
//显示十位
sec_bit=1;
P0=nixiecode[0][ten];
sec_bit=0;
//显示个位
fir_bit=1;
P0=nixiecode[0][bits];
fir_bit=0;
{
unsignedchartemp=0,operaone,operatwo;
unsignedintnumone=0,numtwo=0,num=0;
while
(1){
P2=0xfe;
switch(P2){
case0xee:
if(temp<
2){
numone=numone*10+1;
while(P2==0xee);
num=numone;
temp++;
}
break;
case0xde:
numone=numone*10+2;
while(P2==0xde);
}
case0xbe:
numone=numone*10+3;
while(P2==0xbe);
case0x7e:
operaone='
+'
while(P2==0x7e);
operatwo=operaone;
num=numtwo=numone;
numone=0;
temp=0;
P2=0xfd;
case0xed:
if(temp<
numone=numone*10+4;
while(P2==0xed);
case0xdd:
numone=numone*10+5;
while(P2==0xdd);
case0xbd:
numone=numone*10+6;
while(P2==0xbd);
case0x7d:
-'
while(P2==0x7d);
P2=0xfb;
case0xeb:
numone=numone*10+7;
while(P2==0xeb);
case0xdb:
numone=numone*10+8;
while(P2==0xdb);
case0xbb:
numone=numone*10+9;
while(P2==0xbb);
case0x7b:
*'
while(P2==0x7b);
P2=0xf7;
case0xe7:
numone=numone*10+0;
while(P2==0xe7);
case0xb7:
='
while(P2==0xb7);
case0x77:
/'
while(P2==0x77);
if(P2==0xd7){
delay(5);
if(P2==0xd7){
numone=0;
numtwo=0;
num=0;
operaone=0;
operatwo=0;
temp=0;
while(P2==0xd7);
}
if(operaone=='
){
switch(operatwo){
case'
:
num=numone+numtwo;
break;
num=numtwo-numone;
num=numone*numtwo;
num=numtwo/numone;
display(num);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 广东 海洋大学 单片机 实验 全套