搜档网
当前位置:搜档网 › 单片机最小系统设计

单片机最小系统设计

单片机最小系统设计
单片机最小系统设计

单片机最小系统设计

时间:2011-05-01 22:47:54 来源:作者:

单片机最小系统设计

该单片机最小系统具有的功能:

(1)具有2位LED数码管显示功能。

(2)具有八路发光二极管显示各种流水灯。

(3)可以完成各种奏乐,报警等发声音类实验。

(4)具有复位功能。

功能分析

(1)两位LED数码管显示功能,我们可以利用单片机的P0口接两个数码管来现这个功能;(2)八路发光二极管显示可以利用P1口接八个发光二极管实现这个功能;

(3)各种奏乐、报警等发声功能可以采用P2.0这个引脚接一蜂鸣器来实现。

(4)利用单片机的第9脚可以设计成复位系统,我们采用按键复位;利用单片机的18、19脚可以设计成时钟电路,我们利用单片机的内部振荡方式设计的。

设计框图

硬件电路设计

根据本系统的功能,和单片机的工作条件,我们设计出下面的电路图。

元件清单的确定:

数码管:共阴极2只(分立)

电解电容:10UF的一只

30PF的电容2只

220欧的电阻9只

4.7K的电阻一只

1.2K的电阻一只

4.7K的排阻一只,

12MHZ的晶振一只

有源5V蜂名器一只

AT89S51单片机一片

常开按钮开关1只

紧锁座一只(方便芯取下来的,绿色的)

发光二极管(5MM红色)8只

万能板电路版15*17CM

S8550三极管一只

4.5V电池盒一只,导线若干。七、硬件电路的焊接

按照原理图把上面的元件焊接好,详细步骤省略。

相关程序编写

针对上面的电路原理图,设计出本单片机最小系统的详细功能:(1)、第一个发光二极管点亮,同时数码管显示“1”。

(2)、第二个发光二极管点亮,同时数码管显示“2”。

(3)、依次类推到第八个发光二极管点亮,同时数码管显示“8”。以上出现的是流水灯的效果

(4)、所有的发光二极管灭了,同时数码管现实“0”。

(5)、数码管显示“1”。

(6)、数码管显示“2、……”直到“9、A、B、C、D、E、F、Y”。

(7)、蜂鸣器发出九声报警声后重复上面所有步骤。

(8)程序如下:

ORG 0000H;伪指令,定义下面的程序代码(机器代码)从地址为0000H的单元存放。LJMP START;跳转到标号为START的地方去执行。

ORG 0030H;伪指令,定义下面的程序代码(机器代码)从地址为0030H的单元存放。START:MOV P1,#0FEH ;点亮第一个发光二极管。

CLR P2.7 ;送低电平到第一个数码管,开启数码管。

CLR P2.6 ;送低电平到第二个数码管,开启数码管。

MOV P0,#06H;让数码管显示“1”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P1,#0FDH;点亮第二个发光二极管。

MOV P0,#5bH;让数码管显示“2”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P1,#0FBH;点亮第三个发光二极管。

MOV P0,#4fH;让数码管显示“3”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P1,#0F7H;点亮第四个发光二极管。

MOV P0,#66H;让数码管显示“4”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P1,#0EFH;点亮第五个发光二极管。

MOV P0,#6dH;让数码管显示“5”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P1,#0DFH;点亮第六个发光二极管。

MOV P0,#7dH;让数码管显示“6”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P1,#0BFH;点亮第七个发光二极管。

MOV P0,#07H;让数码管显示“7”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P1,#7FH;点亮第八个发光二极管。

MOV P0,#7fH;让数码管显示“8”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P1,#00H;灭了所有的发光二极管。

MOV P0,#3FH;让数码管显示“0”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P0,#06H;让数码管显示“1”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P0,#5bH;让数码管显示“2”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P0,#4fH;让数码管显示“3”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P0,#66H;让数码管显示“4”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P0,#6dH;让数码管显示“5”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P0,#7dH;让数码管显示“6”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P0,#07H;让数码管显示“7”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P0,#7fH;让数码管显示“8”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P0,#6fH;让数码管显示“9”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P0,#7fH;让数码管显示“A”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P0,#7fH;让数码管显示“b”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P0,#7fH;让数码管显示“C”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P0,#7fH;让数码管显示“d”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P0,#7fH;让数码管显示“E”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P0,#7fH;让数码管显示“F”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV P0,#7fH;让数码管显示“Y”。

LCALL DELAY;调用延时子程序,起到延时的目的。

MOV R4,#9;送蜂鸣器的报警次数。

LOOP:SETB P2.0;不发声

LCALL DELAY;调用延时子程序,起到延时的目的。

CLR P2.0;发声。

LCALL DELAY;调用延时子程序,起到延时的目的。

DJNZ R4,LOOP;发声九次后向下执行。

SETB P2.0;关闭发声

LJMP START;跳转到标号为START处执行,循环本程序。

DELAY:MOV R7,#200;这是延时子程序。

D1:MOV R6,#200

D2:MOV R5,#200

D3:DJNZ R5,D3

DJNZ R6,D2

DJNZ R7,D1

RET;延时子程序返回指令。

END;结束伪指令。

九、利用KEIL C51 软件对上面的程序进行调试和编译,产生*.HEX文件,以便用编程器写入单片机芯片中。

十、编程器的使用:用编程器把电脑里生成的*.HEX文件写到芯片中。

十一、产品调试:通上4.5V(三节电池)的电源,可以调试本系统,如果没有错误就可以正常工作了。

下面还有有一个网上copy的一个设计

单片机课程设计题目:单片机最小系统

一、设计题目:单片机最小系统四、任务与要求:

在智能化仪器仪表中,控制核心均为微处理器,而单片机以高性能、高速度、体积小、价格低廉、稳定可靠而得到广泛应用,是设计智能化仪器仪表的首选微控制器,单片机结合简单的接口电路即可构成单片机最小系统,它是智能化仪器仪表的基础,也是测控。监控的重要组成部分。

本课题任务与要求如下:

1、单片机可采用8031、8051、AT89C51、AT89C5

2、fosc=6MHz。

2、时钟电路,复位电路的设计。

3、系统RAM、ROM的容量均为8KB。

4、显示位数:8位。

5、键盘按键数:16个。

6、上电初始化显示P.

7、能输入、显示十六进制数0——F

8、编写系统初始化主程序、键扫子程序、显示子程序及其他所需要子程序。

9、计算机输出设计说明书一分(包括各部分电路工作原理说明、程序清单及程序流程框图),16开方框图一X,电路原理总图一X。

10、设计时间:一周五、单片机最小系统总体方案设计提示

1、可利用8031,RAM,ROM,8279构造单片机最小系统。

2、可利用8031,RAM,ROM,8155构造单片机最小系统。

也可以利用AT89C51(或AT89C52),RAM,8155构造单片机最小系统。

请看我的程序然后修改,有问题可以在我们的论坛交流,qq群7344883

设Inter 8051片内RAM78H-7FH单元为显示缓冲区,依次从低到高存显示数据ORG0000H

AJMP MAIN

ORG0080H

MAIN :MOV SP,#60H

MOV R0,#08H

MOV R1,#78H

LCALL ML;调清零子程序

MOV R0,#64;清工作单元

MOV R1,#20H

LCALL ML

MOV A,#03H;8155的初始化

MOV DPTR, #7F00H

MOVX DPTR,A

ST:MOV78H,#0FFH;显示P.

MOV79H,#0FFH

MOV7AH,#0FFH

MOV7BH,#0FFH

MOV7CH,#0FFH

MOV7DH,#0FFH

MOV7EH,#0FFH

MOV7FH,#0CH

LM:LCALL DIS;调显示显示P.

LCALL SHIFT;调移位程序

LCALL LTIM;调延时子程序

LCALL KD1;调键扫程序

INC R0

AJMP LM

DIS:MOV A,#03H;显示程序

MOV DPTR, #7F00H

MOV DPTR,A

MOV R0,#78H

MOV R3,#01H

MOV A,R3

LD0:MOV DPTR, #7F01H

MOVX DPTR,A

INC DPTR

MOV A,R0

DIR0:ADD A,#0DH

MOVC A,A+PC

DIR1:MOVX DPTR,A

LCALL DL

INC R0

MOV A,R3

ACC.5,LD1

RL A

MOV R3, A

LJMP LD0

LD1:RET

DSEG:DB3FH,06H,5BH,4FH,66H

DB6DH,7DH,07H,7FH,6FH

DB77H,7CH,39H,5EH,79H

DB71H

DL1:MOV R7,#01H;延时1ms

DL :MOV R6,#0FFH

DL6:DJNZ R6,DL6

DJNZ R7,DL

RET

KD1:LCALL DIS;键盘扫描程序

KEY1:LCALL KEY

JNZ LK1

NI:ACALL DIS

AJMP KEY1

LK1:ACALL DIS;有键闭合2次延时

ACALL DIS;共12ms去抖动

ACALL K1

JNZ LK2

LCALL DIS

AJMP KEY1

LK2:MOV R2,#0FEH

MOV R4,#00H

LK4:MOV DPTR, #7F01H

MOV A,R2

MOVX DPTR, A

INC DPTR

INC DPTR

MOVX A,DPTR

ACC.0,LONE

MOV A,#00H

AJMP LKP

LONE:ACC.1,NEXT

MOV A,#08H

AJMP LKP

LKP:ADD A,R4;计算键码

PUSH ACC;保护键码

LK3:ACALL DIS

ACALL K1;查键是否继续闭合,若闭合再延时

JNZ LK3

POP ACC

RET

NEXT:INC R4

MOV A,R2

JNB ACC.7,KLM

RL A

MOV R2, A

LJMP LK4;进行下一次扫描

KLM:AJMP KEY1;扫描完毕,开始新的一次LTIM:MOV R5,01H;延时子程序

LP3:MOV R6,#0FFH

LP2:MOV R7,#0FFH

LP1:MOV R7,LP1

DJNZ R6,LP2

DJNZ R6,LP3

ML:MOV A,#60H;清零子程序

MOV R1, A

INC R1

DJNZ R0,ML

MM:MOV A,#00H;清显示

MOV R0,#08H

MOV R1,#78H

LCALL ML

SHIFT:MOV7EH,7FH;移位子程序

MOV7DH,7EH

MOV7CH,7DH

MOV7BH,7CH

MOV7AH,7BH

MOV79H,7AH

MOV78H,79H

KEY:MOV DPTR,#7F01H;判断是否有键闭合

MOV A,#00H

MOVX DPTR, A

INC DPTR

INC DPTR

MOVX A ,DPTR

CPL A

ANL A,#0FH

RET

单片机最小系统一般情况下运行起来不会很稳定,原因是没有加入看门狗等电路。引电路非常简单,能帮助你学习和使用单片机。

相关主题