131 1300 0010
其他
当前位置: 首页>> 元件技术>>其他>>
  • 导航栏目
  • 二极管
  • 整流桥
  • MOS管
  • 其他
  • 如何开发出单片机最小系统
    如何开发出单片机最小系统
  • 如何开发出单片机最小系统
  •   发布日期: 2019-05-23  浏览次数: 1,019

    一、确定任务

    开发单片机最小系统

     

    二、任务分析:

    该系统具有的功能:

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


  • ·上一篇:
    ·下一篇:
  • 其他关联资讯
    深圳市日月辰科技有限公司
    地址:深圳市宝安区松岗镇潭头第二工业城A区27栋3楼
    电话:0755-2955 6626
    传真:0755-2978 1585
    手机:131 1300 0010
    邮箱:hu@szryc.com

    深圳市日月辰科技有限公司 版权所有:Copyright©2010-2023 www.szryc.com 电话:13113000010 粤ICP备2021111333号