单片机最小系统开发实例

发布时间:2022-05-20 阅读量:1183 来源: 我爱方案网整理 发布人: Aurora

一、确定任务

 

开发单片机最小系统

 

二、任务分析:

 

该系统具有的功能:

 

(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 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(三节电池)的电源,可以调试本系统,如果没有错误就可以正常工作了。

 


相关资讯
核心对比!无源晶振与有源晶振在结构和工作原理的本质区别

无源晶振与有源晶振是电子系统中两种根本性的时钟元件,其核心区别在于是否内置振荡电路。晶振结构上的本质差异,直接决定了两者在应用场景、设计复杂度和成本上的不同。

温度稳定性对RTC晶振的计时误差影响与分析

RTC(实时时钟)电路广泛采用音叉型32.768kHz晶振作为时基源,但其频率稳定性对温度变化极为敏感。温度偏离常温基准(通常为25℃)时,频率会产生显著漂移,且偏离越远漂移越大。

从参数到实践!剖析有源晶振的频率稳定度、老化率及正确接线方案

有源晶振作为晶振的核心类别,凭借其内部集成振荡电路的独特设计,无需依赖外部电路即可独立工作,在电子设备中扮演着关键角色。本文将系统解析有源晶振的核心参数、电路设计及引脚接法,重点阐述其频率稳定度、老化率等关键指标,并结合实际电路图与引脚定义,帮助大家全面掌握有源晶振的应用要点,避免因接线错误导致器件失效。

如何对抗晶振老化?深入生产工艺与终端应用的防老化指南

晶振老化是影响其长期频率稳定性的核心因素,主要表现为输出频率随时间的缓慢漂移。无论是晶体谐振器还是晶体振荡器,在生产过程中均需经过针对性的防老化处理,但二者的工艺路径与耗时存在显著差异。

无源晶振YSX321SL应用于高精度HUD平视显示系统YXC3225

在现代汽车行业中,HUD平视显示系统正日益成为驾驶员的得力助手,为驾驶员提供实时导航、车辆信息和警示等功能,使驾驶更加安全和便捷。在HUD平视显示系统中,高精度的晶振是确保系统稳定运行的关键要素。YSX321SL是一款优质的3225无源晶振,拥有多项卓越特性,使其成为HUD平视显示系统的首选。