一、确定任务
开发单片机最小系统
二、任务分析:
该系统具有的功能:
(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(三节电池)的电源,可以调试本系统,如果没有错误就可以正常工作了。
NICEVIEW液晶拼接屏商场的技术应用
投影仪与会议平板一体机的区别
纺织品垂直燃烧测试仪PY-545D
二极管的类型
车企三电全部外供局面已经打破 优质的三电资源将越来越紧缺
如何开发出单片机最小系统
开关产品ESD测试的介绍
2019年第二季度华为手机以18%的份额占据全球智能手机市场第二名
12V电源适配器分正负极吗?如何区分?
如何使用connectioningPi库从嵌入式I2C接口读取数据
中兴天机Axon10Pro评测 商务范+时尚范的顶级旗舰
矿卡虽便宜 入手需谨慎
详解经典的双向电平转换电路
发展下一代WDM成为光网络发展的必然
工业5.0发展背景及三大核心要素
爱普特在逆境涅槃的国产芯力量!
特斯拉前无人驾驶总监创业抢生意被起诉
小米“处女秀”震惊世界,小米MIX白色版和小米电视4同时发布
三星是如何在重围中杀出一条血路 硬生生登上芯片行业巅峰的?
关灯后灯泡一闪一闪的常见原因是什么