广东海洋大学单片机实验全套

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8
0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void delay(uint); void main() { temp=60; num=0; P2=0x00; TMOD=0x01; TH0=(65536-45872)/256; TL0=(65536-45872)%256; EA=1; ET0=1; TR0=1; while(1) { shi=temp/10; ge=temp%10; P0=table[shi]; P2=0x02; delay(5); P0=table[ge]; P2=0x01; delay(5); } } void T0_time()interrupt 1
10
ORG 0100H START:MOV R0,#50H MOVX @R0,A SETB IT0 SETB EX0 SETB EA SETB F0 CLR P2.0 MOV DPTR,#TAB LOOP: JB F0,LOOP1 SETB P3.4 CLR P3.5 MOV A,R6 MOV P1,A ACALL DLY CLR P3.4 AJMP LHD LOOP1: SETB P3.5 CLR P3.4 MOV A,R7 MOV P1,A ACALL DLY CLR P3.5 LHD: CPL F0 AJMP LOOP INT: MOVX A,@R0 MOV R7,A SWAP A MOV R6,A MOV A,R7 ANL A,#0FH MOVC A,@A+DPTR MOV R7,A MOV A,R6 ANL A,#0FH MOVC A,@A+DPTR MOV R6,A MOVX @R0,A RETI DLY: MOV R4,#0FH DL:MOV R5,#045H
三、实验仪器和设备 PC 机、PROTEUS 软件或 W-A-51 综合开发学习板 四、源程序设计: 根据电路图自行编写并调试。 #include<reg51.h> #include<intrins.h> #define GPIO_LED P0 void Delay10ms(unsigned int); void main(void) { unsigned char n; GPIO_LED=0xfe;//1111_1110->1111_1101 while(1) { for(n=0;n<7;n++) { GPIO_LED=_crol_(GPIO_LED,1); Delay10ms(50); }
CRYSTAL
R1
10k
9
RST
39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17
p00 p01 p02 p03 p04 p05 p06 1 2 3 4 5 6 7 8
p00 p01 p02 p03 p04 p05 p06
{ TH0=(65536-45872)/256; TL0=(65536-45872)%256; num++; if(num==40) { num=0;
9
temp--; if(temp==0) { temp=60; } } } void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } 实验五 A/D 转换实验
三、实验仪器和设备 PC 机、PROTEUS 软件或 W-A-51 综合开发学习板 四、源程序设计: 根据电路图自行编写并调试。 #include <reg52.h> char code shumaguan[]={0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0 x83, 0xc6,0xa1,0x86,0x8e}; main() {
广 东 海 洋 大 学
单 片 机 原 理 实 验 指 导 书
1
实验一
发光二极管流水灯实验
一、实验目的: 1.通过 AT89C51 单片机控制 8 个发光二极管,八个发光二极管分别接在单片机的 P0.0-P0.7 接口上,输出“0”时,发光二极管亮。开始时 P0.0→P0.1→P0.7→P0.6→┅ →P0.0,实现亮点以 1HZ 频率循环移动。 2.用 PROTEUS 设计,仿真以 AT89C51 为核心的发光二极管流水灯实验装置。 3.掌握发光二极管的控制方法。 二、PROTEUS 电路设计:
300
300
三、实验仪器和设备 PC 机、PROTEUS 软件或 W-A-51 综合开发学习板 四、源程序设计: 根据电路图自行编写并调试。 ORG 0000H LJMP MAIN ORG 0003H LJMP INT00 ORG 0013H LJMP INT11 ORG 0100H MAIN:MOV SP,#30H SETB EX0 SETB IT0 ETB PX0 SETB EX0 SETB EX1 SETB IT1 SETB EX1 CLR PX1 SETB EA Start MOV R3,#09 MOV R0,#0 LOOP:MOV DPTR,#TAB MOV A,R0 MOVC A,@A+DPTR MOV P0,A INC R0
一、实验目的: 1.掌握转换器 ADC0809 的使用。 2.用 PROTEUS 设计,仿真基于 AT89C51 单片机的 A/D 转换实验。 3.通过改变电位器的值改变模拟量的输入,经转换为数字量在 LED 上显示,比对 模拟量和数字量的关系。 二、PROTEUS 电路设计:
三、实验仪器和设备 PC 机、PROTEUS 软件或 W-A-51 综合开发学习板 四、源程序设计: 根据电路图自行编写并调试。 ORG 0000H AJMP START ORG 0003H AJMP INT
4
RP1
RESPACK-8
p00 2 p01 3 p02 4 p03 5 p04 6 p05 7 p06 8 9
1
C1
30pf
C2
30pF
X1
源自文库
19 18
U1
XTAL1 XTAL2 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD
3
while(1) { switch (P2) { case 0xf0: P0=shumaguan[0];break; case 0xf1: P0=shumaguan[1];break; case 0xf2: P0=shumaguan[2];break; case 0xf3: P0=shumaguan[3];break; case 0xf4: P0=shumaguan[4];break; case 0xf5: P0=shumaguan[5];break; case 0xf6: P0=shumaguan[6];break; case 0xf7: P0=shumaguan[7];break; case 0xf8: P0=shumaguan[8];break; case 0xf9: P0=shumaguan[9];break; case 0xfa: P0=shumaguan[10];break; case 0xfb: P0=shumaguan[11];break; case 0xfc: P0=shumaguan[12];break; case 0xfd: P0=shumaguan[13];break; case 0xfe: P0=shumaguan[14];break; case 0xff: P0=shumaguan[15];break; default:break; } }} 实验三 外中断优先级实验 一、实验目的: 1.理解单片机中断优先级和优先权。 2.用 PROTEUS 设计,仿真基于 AT89C51 单片机的中断优先级实验。 3.掌握中断编程方法。 单片机主程序控制 P0 口数码管循环显示 0~8;外中断 0、外中断 1 发生时分别在 P2 口、P1 口依次显示 0~8。通过实验可演示高优先级可中断低优先级,但低优先级的 中断请求不能中断高优先级。 二、PROTEUS 电路设计:
MOVC A,@A+DPTR MOV INC MOV FG: EF: DF: NOP P1,A R0 R4,#5 MOV MOV NOP DJNZ R1,DF R2,#100 R1,#200
DJNZ R2,EF DJNZ R4,FG
7
DJNZ R3,LO POP POP RETI TAB:DB 0X40,0XF9,0X24,0X30,0X19,0X12,0X02,0XF8,0X00 实验四 60S 倒计时实验 PSW ACC
2
for(n=0;n<7;n++) { GPIO_LED=_cror_(GPIO_LED,1); Delay10ms(50); } } } void Delay10ms(unsigned int c) { unsigned char a,b; for(;c>0;c--) for(b=38;b>0;b--) for(a=130;a>0;a--); } 实验二 开关控制 LED 数码管实验 一、实验目的: 1.通过 AT89C51 读入 4 位开关的输入状态(0~F) ,并将其输出到数码管显示。 2.掌握 LED 数码管的静态显示。 3.掌握 I/O 口的控制方法。 二、PROTEUS 电路设计:
一、实验目的: 1.通过 AT89C51 的定时器实现 60S 倒计时,显示采用两位数码管动态显示。 2.用 PROTEUS 设计,仿真基于 AT89C51 单片机的 60S 倒计时实验。 二、PROTEUS 电路设计:
三、实验仪器和设备 PC 机、PROTEUS 软件或 W-A-51 综合开发学习板 四、源程序设计: 根据电路图自行编写并调试。 #include<reg52.h> #define uchar unsigned char #define uint unsigned int uchar temp,bai,shi,ge,num; uchar code table[]={
1 2 3 4 5 6 7 8
RN3
16 15 14 13 12 11 10 9
300
RN1
C3
10uF
29 30 31
PSEN ALE EA
1 2 3 4 5 6 7 8
RN2
16 15 14 13 12 11 10 9
16 15 14 13 12 11 10 9
1 2 3 4 5 6 7 8
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C51
5
MOV R4,#5 CC: MOV R2,#100 BB: MOV R1,#200 AA: NOP NOP DJNZ R1,AA DJNZ R2,BB DJNZ R4,CC DJNZ R3,LOOP SJ M PST A R T INT00:PUSHACC PUSH PSW SETB RS0 CLR MOV MOV RS1 R,#09 R0,#0 DPTR,#TAB
LOO:MOV MOV A,R0
MOVC A,@A+DPTR MOV INC MOV FF: EE: DD: NOP P2,A R0 R4,#5 MOV MOV NOP DJNZ R1,DD
6
R2,#100 R1,#200
DJNZ R2,EE DJNZ R4,FF DJNZ R3,LOO POP POP RETI INT11:PUSH PUSH PSW SETB RS0 SETB RS1 MOV R3,#09 MOV R0,#0 LO:MOV DPTR,#TAB MOV A,R0 ACC PSW ACC
相关文档
最新文档