单片机最小系统软硬件设计

发布者:CelestialLight最新更新时间:2012-06-25 来源: 21ic 关键字:单片机  最小系统 手机看文章 扫描二维码
随时随地手机看文章

该单片机最小系统具有的功能:
(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、AT89C52、fosc=6MHz。

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

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

4 显示位数:8位。

5 键盘按键数:16个。[page]

6 上电初始化显示P.

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

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

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

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

 

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

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

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

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

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

              ORG     0000H

              AJMP    MAIN

              ORG     0080H

 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:    MOV      78H,  #0FFH            ;显示P.

              MOV      79H,  #0FFH

              MOV      7AH,  #0FFH

              MOV      7BH,  #0FFH

              MOV      7CH,  #0FFH

              MOV      7DH,  #0FFH

              MOV      7EH,  #0FFH

              MOV      7FH,  #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

              JB        ACC.5,LD1

              RL        A

              MOV       R3,  A

              LJMP      LD0

   LD1:    RET

 DSEG:  DB        3FH,06H,5BH,4FH,66H

              DB        6DH,7DH,07H,7FH,6FH

              DB        77H,7CH,39H,5EH,79H

              DB        71H

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

[page]

INC       DPTR

              INC       DPTR

              MOVX      A,      @DPTR

              JB        ACC.0,  LONE

              MOV       A,      #00H

              AJMP      LKP

     LONE:    JB        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:    MOV       7EH,     7FH             ;移位子程序

              MOV       7DH,     7EH

              MOV       7CH,     7DH

              MOV       7BH,     7CH

              MOV       7AH,     7BH

              MOV       79H,     7AH

              MOV       78H,     79H

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

              MOV       A,        #00H

              MOVX      @DPTR,    A

              INC       DPTR

              INC       DPTR

              MOVX      A ,       @DPTR

              CPL       A

              ANL       A,        #0FH

              RET

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

关键字:单片机  最小系统 引用地址:单片机最小系统软硬件设计

上一篇:51单片机的高精度除法使用及程序清单
下一篇:单片机基本结构及C语言编程基础

推荐阅读最新更新时间:2024-03-16 13:01

51单片机学习笔记(一)_总记
单片机电路仿真软件Proteus;编程软件Keil; 在Proteus中设计好电路图、在Keil中编写程序编译生成十六进制文件。 在电路图中载入该十六进制文件通过相应的程序控制电路。 51hei单片机+Proteus视频+实例+开发工具包 http://download.csdn.net/detail/leytton/7658297 http://www.51hei.com/ 文章阅读 http://www.51hei.com/mcuteach/252.html http://www.51hei.com/mcuteach/150.html 视频教程 http://www.51hei.com/sp/
[单片机]
51<font color='red'>单片机</font>学习笔记(一)_总记
avr+开发环境+linux,win7下avr单片机开发环境的搭建
操作系统:win7 professional x86 开发软件:avr studio 4.19 首先下载avr studio 4.19,因为貌似这是atmel官方最后支持jtag ice的开发环境。而且也就只有这个4的版本才支持win7,正好本人有个jtag,所以果断选择这个版本了。 相关软件下载地址: 貌似这个里面有很多常见的工具下载。 刚开始我是用的avr studio 4.19+WinAVR-20100110这个环境搭建的开发环境。 但是问题出现了,编译文件时出现了找不到编译器。出现如下的错误: make: Makefile: No such file or directory avr-objcopy: 'mai
[单片机]
avr+开发环境+linux,win7下avr<font color='red'>单片机</font>开发环境的搭建
基于AT89C2051单片机的超声波理疗仪设计
摘要:给出了一种基于AT89C2051单片机控制的超声波理疗仪的设计方案。该方案采用高频和低频信号双通道输入电路,能产生波形峰值低、穿透力强的特定超声波能量,因而可以更加深层地作用于肌肉骨骼上,起到加速愈合的作用。实践证明,此方法经济适用,且实现简单。 关键词:AT89C2051;MAX038;超声波;理疗仪 0 引言 目前国内外的多数超声治疗仪(理疗型)普遍都是以连续正弦波(1~3 MHz)或脉冲正弦波(低频调制100 kHz左右)的方式进行工作,其输出声强≤3.0 W/cm2,所存在的问题是超声波主要作用于皮肤、肌肉和结缔组织,发射波形峰值高、穿透力差等,对较深病灶点的治疗效果不明显。因此,治疗和促进肌肉恢复和骨骼愈合需要
[单片机]
基于AT89C2051<font color='red'>单片机</font>的超声波理疗仪设计
基于MSP430系列单片机的常用程序编写总结
前一段时间一直在用TI公司的MSP430系列的单片机,总结了点430常用的程序框架。 a.循环低功耗、中断服务程序唤醒 void main() { 关闭开门狗; 初始化时钟; 初始化端口; 初始化屏幕; 其他外围必要的初始化; 开中断; while(1) { 进入低功耗模式; 执行某函数; } } 中断函数1 { 退出低功耗; 中断服务程序; } 例如: 1 #pragma vector= ADC 12_VECTOR 2 __in te rrupt void ADC12ISR (void) //AD转换中断服务程序 3 { 4 sta TI c unsigned char index = 0; 5 LPM3_EXIT; 6
[单片机]
基于MSP430系列<font color='red'>单片机</font>的常用程序编写总结
用CPLD实现单片机读写模块
1 概述 CPLD(复杂可编程逻辑电路)是一种具有丰富的可编程I/O引脚的可编程逻辑器件,具有在系统可编程、使用方便灵活的特点;不但可实现常规的逻辑器件功能,还可实现复杂的时序逻辑功能。把CPLD应用于嵌入式应用系统,同单片机结合起来,更能体现其在系统可编程、使用方便灵活的特点。CPLD同单片机接口,可以作为单片机的一个外设,实现单片机所要求的功能。例如,实现常用的地址译码、锁存器、8255等功能;也可实现加密、解密及扩展串行口等单片机所要求的特殊功能。实现嵌入式应用系统的灵活性,也提高了嵌入式应用系统的性能。 CPLD(复杂可编程逻辑电路)是一种具有丰富的可编程I/O引脚的可编程逻辑器件,具有在系统可编程、使用方便灵活的
[单片机]
基于51单片机+DS1302万年历+LCD1602显示+按键播报时间+温控风扇+按键控灯
前段时间做了一个 基于51单片机的万年历加温度控制风扇以及按键播报时间。在这里做一下笔记。 准备硬件 1:51单片机(我这里用的是STC89C52) 2:语音播报模块(我这里用的是SYN6288) 3:DS1302时钟模块 4:DS18B20温度模块 5:LCD1602显示屏 6:L298N电机驱动 7:蜂鸣器 8:电机 9:按键 5个 10:灯 功能介绍 功能: 1:修改时间 2:修改日期(软件自动校正日期) 3:闹钟模式 4:温度控制风扇速度 5:调节灯亮度 6:播报时间 主界面设置 下面是大概的流程图 位置不够没画全。。。 由于代码较多,这里就不全部贴出来了。 修改时间 当我们进入到修改时间的界面,我们屏幕得
[单片机]
基于51<font color='red'>单片机</font>+DS1302万年历+LCD1602显示+按键播报时间+温控风扇+按键控灯
单片机DS18B20水温控制系统设计程序源码
TEMPERATURE_L DATA 31H ;DS18B20低8位Buffer TEMPERATURE_H DATA 30H ;DS18B20高8位Buffer TEMPERATURE_HC DATA 32H ;计算后的百位和十位的BCD码存放BUFFER TEMPERATURE_LC DATA 33H ;计算后的个位和小数位的BCD码存放BUFFER TEMPERATURE_ZH DATA 34H ;计算后十位和个位HEX码的存放BUFFER DIS_BUF_X DATA 35H ;数码管小数位Buffer DIS_BUF_G DATA 36H ;数码管个位Buffer DIS_BUF_S DATA 37H ;数码管十位Bu
[单片机]
stm32单片机待机模式的设计
一 待机模式简介 在stm32的低功耗模式中,待机模式可以实现系统的最低功耗,在这种模式下,只需要2uA左右的电流。 三 待机唤醒程序分析 实验现象: 将程序下载到开发板上后,LED灯会不断地亮灭,当按下KEY2键超过3s时,LED灯灭,标志着单片机进入待机模式,再按下KEY1键,这时唤醒单片机,LED又开始不断地亮灭亮灭。 程序中用到的一些宏定义 #definemacEXTI_GPIO_CLK(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO) #definemacEXTI_GPIO_PORTGPIOC #definemacEXTI_GPIO_PINGPIO_Pin_13 #definem
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved