基于AT89C51单片机的最小系统设计说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
DLY: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