技术中心
 
 

单片机最小系统设计

   日期:2011-05-01     来源:互联网    
核心提示:单片机最小系统设计 该单片机最小系统具有的功能:(1)具有2位LED数码管显示功能。(2)具有八路发光二极管显示各种流水灯。(3)可以完
单片机最小系统设计 该单片机最小系统具有的功能:
(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个。 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 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 单片机最小系统一般情况下运行起来不会很稳定,原因是没有加入看门狗等电路。引电路非常简单,能帮助你学习和使用单片机。
 
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢