电子开发网

电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册
搜索: 您现在的位置: 电子开发网 >> 电子开发 >> 单片机 >> 正文

单片机最小系统制作教程

作者:佚名    文章来源:本站原创    点击数:    更新时间:2009-8-19

一、确定任务
开发单片机最小系统
二、任务分析:
该系统具有的功能:
1)具有2LED数码管显示功能。
2)具有八路发光二极管显示各种流水灯。
3)可以完成各种奏乐,报警等发声音类实验。
4)具有复位功能。
三、功能分析
1)两位LED数码管显示功能,我们可以利用单片机的P0口接两个数码管来现这个功能;
2)八路发光二极管显示可以利用P1口接八个发光二极管实现这个功能;
3)各种奏乐、报警等发声功能可以采用P2.0这个引脚接一蜂鸣器来实现。
4)利用单片机的第9脚可以设计成复位系统,我们采用按键复位;利用单片机的1819脚可以设计成时钟电路,我们利用单片机的内部振荡方式设计的。
四、设计框图

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

六、元件清单的确定:
数码管:共阴极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……”直到“9ABCDEFY”
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 R5D3
DJNZ R6
D2
DJNZ R7
D1
RET
;延时子程序返回指令。
END
;结束伪指令。
九、利用KEIL C51 软件对上面的程序进行调试和编译,产生*.HEX文件,以便用编程器写入单片机芯片中。
十、编程器的使用:用编程器把电脑里生成的*.HEX文件写到芯片中。
十一、产品调试:通上4.5V(三节电池)的电源,可以调试本系统,如果没有错误就可以正常工作了。

(以上程序在调试是会提示错误,错误原因正在调查中)

Tags:单片机,最小系统,制作  
责任编辑:admin
请文明参与讨论,禁止漫骂攻击,不要恶意评论、违禁词语。 昵称:
1分 2分 3分 4分 5分

还可以输入 200 个字
[ 查看全部 ] 网友评论
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
返回顶部
刷新页面
下到页底
晶体管查询