基于AT89C51单片机的最小系统设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于AT89C51单片机的最小系统设计

组员:田竹、王维、袁倍明

摘要:

本次实验课题为设计一个基于AT89C51单片机的最小系统。用P1口设计流水灯,用P2口和P0口分别作段选和位选设计了六位数码管的静动态显示和简易的电子钟,用P3口设计了一个4*4的矩阵键盘,并用蜂鸣器实现了唱歌功能和键盘按下的声响,用62256扩展内部RAM,还扩展并实现了LCD1602的静动态显示,最后通过ADC0809和DAC0832分别实现了A/D、D/A转换功能。

一、系统电源

用MC7805集成稳压器将输入电压转为+5V稳压给系统供电。

二、晶振(12MHZ)及复位电路

采用12MHz的外部晶振,给系统提供时钟信号。并采用了按键复位电路。

三、流水灯

功能描述:让8个led灯循环闪烁

源程序:

流水灯

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN:MOV A,#11111110B LOOP:MOV P1,A;给P1口送值LCALL DLY

RL A ;循环左移

LJMP LOOP

DL Y:MOV R7,#250 ;延时子程序DLY1: MOV R6,#200

DJNZ R6,$

DJNZ R7,DLY1

RET

END

四、数码管

功能描述:数码管动态显示1~6

源程序:

ORG 0000H

LJMP START

ORG 0100H

START:

MOV P0,#0

MOV P2,#0F9H

SETB P0.0

LCALL DELAY

CLR P0.0

MOV P2,#0C4H

SETB P0.1

LCALL DELAY

CLR P0.1

MOV P2,#0D0H

SETB P0.2

LCALL DELAY

CLR P0.2

MOV P2,#99H

SETB P0.3

LCALL DELAY

CLR P0.3

MOV P2,#92H

SETB P0.4

LCALL DELAY

CLR P0.4

MOV P2,#82H

SETB P0.5

LCALL DELAY

CLR P0.5

LJMP START

DELAY: MOV R5,#10

D1: MOV R6,#20

D2: MOV R7,#248

DJNZ R7,$

DJNZ R6,D2

DJNZ R5,D1

RET

END

五、4*4矩阵键盘和蜂鸣器

功能描述:通过按键让数码管显示0-F,按键按下时,蜂鸣器响一下。

源程序:

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN: MOV P0,#0FFH

MOV B,#4

MOV P3,#0F0H;列置0,看行电平

JNB P3.4,L1

JNB P3.5,L2

JNB P3.6,L3

JNB P3.7,L4

AJMP MAIN

L1: MOV R1,#0

AJMP LL1

L2: MOV R1,#1

AJMP LL1

L3: MOV R1,#2

AJMP LL1

L4: MOV R1,#3

AJMP LL1

LL1: ACALL DL10MS;消抖

MOV A,P3

XRL A,#0F0H

JZ MAIN

MOV P3,#0FH;行置0,看列电平

JNB P3.0,L5

JNB P3.1,L6

JNB P3.2,L7

JNB P3.3,L8

L5: MOV 20H,#0

AJMP KEY

L6: MOV 20H,#1

AJMP KEY

L7: MOV 20H,#2

AJMP KEY

L8: MOV 20H,#3

AJMP KEY

KEY:MOV A,R1;计算键值并查表赋值

MUL AB

ADD A,20H

MOV R2,A

MOV DPTR,#TABLE

MOV A,R2

MOVC A,@A+DPTR

MOV P2,A

CALL BEEP_BL

LCALL DELAY

LJMP MAIN

BEEP_BL: CLR P2.7;蜂鸣器子程序

ACALL DELAY

SETB P2.7

RET

DELAY: MOV R5,#50;延时

D1: MOV R6,#20

D2: MOV R7,#50

DJNZ R7,$

DJNZ R6,D2

DJNZ R5,D1

RET

DL10MS:MOV R7,#05H

LOOP1: MOV R6,#0F9H

LOOP2:NOP

NOP

DJNZ R6,LOOP2

DJNZ R7,LOOP1

RET

TABLE:DB 0A0H,0F9H,0C4H,0D0H,99H

DB 92H,82H,0F8H,80H,90H

DB 88H,83H,0A6H,0C1H,86H

DB 8EH

END

六、时钟

功能描述:在数码管上实现时钟功能,并通过矩阵键盘的3个键实现复位,调时,调分。

源程序:

ORG 0000H

LJMP 1000H

ORG 001BH

AJMP 0100H

ORG 0100H

相关文档
最新文档