历史上的今天
返回首页

历史上的今天

今天是:2025年01月17日(星期五)

正在发生

2021年01月17日 | 基于AT89S51单片机最小系统制作

2021-01-17 来源:eefocus

一、 确定任务


开发单片机最小系统


二、任务分析:


该系统具有的功能:


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


推荐阅读

史海拾趣

上海如韵(CONSONANCE)公司的发展小趣事

在国内市场取得一定成绩后,如韵开始将目光投向海外市场。为了拓展国际业务,公司在香港设立了研发中心,以便更好地了解国际市场需求和技术趋势。同时,如韵积极参加国际电子展会和交流活动,与多家国际知名企业建立了合作关系。

经过一段时间的努力,如韵的产品逐渐在海外市场上获得了认可。公司的出口额逐年增长,为如韵带来了更多的发展机遇。海外市场的成功拓展,不仅提升了公司的品牌影响力,也为公司带来了更多的国际合作机会。

Dover Corporation公司的发展小趣事

Dover Corporation的电梯业务始于1955年,当时Dover Elevator从Rotary Lift中分离出来,成为一家独立运营的公司。此后,公司通过一系列的收购,如谢泼德华纳电梯公司、Acme Elevator等,迅速扩大了其电梯业务。这些收购不仅使Dover成为美国第三大电梯公司,也为其在电梯行业中的持续领先地位奠定了基础。

Cornerstone Sensors公司的发展小趣事

品质是Cornerstone Sensors的生命线。公司建立了严格的质量管理体系,从原材料采购、生产制造到产品测试等各个环节都进行严格把控。同时,公司还注重品牌建设,通过参加行业活动、发布技术文章、提供专业培训等方式提升品牌影响力。Cornerstone Sensors的产品逐渐成为行业内公认的高品质代表,赢得了广泛的口碑和市场份额。

Boundary Devices公司的发展小趣事

随着技术的不断进步和市场的不断变化,Boundary Devices不断拓展其产品线,推出了包括开发板、OEM板和调制解调器等在内的多种产品。这些产品不仅满足了客户多样化的需求,也进一步提升了公司在行业中的竞争力。同时,公司注重创新,不断投入研发力量,推出了一系列具有自主知识产权的产品,为公司的长期发展注入了新的动力。

Fascomp公司的发展小趣事

随着公司规模的扩大,Fascomp开始关注更广阔的市场。公司针对智能手机市场推出了一款低功耗、高性能的处理器,迅速在市场上获得了成功。同时,公司还不断推出新的产品线,如平板电脑专用芯片、物联网设备等,以满足不同客户的需求。这些创新举措使Fascomp在激烈的市场竞争中脱颖而出。

格瑞宝(GP)公司的发展小趣事

格瑞宝公司致力于功率器件的研发与销售,其产品线不断丰富和完善。从最初的MOSFET产品系列,到后来逐渐扩展到DIODE、BJT、IC集成电路等多个领域,格瑞宝始终坚持技术创新,不断推出符合市场需求的新产品。特别是在SGT MOST工艺方面,格瑞宝达到了国内领先水平,这一技术突破不仅提升了产品的性能和质量,也进一步巩固了公司在行业内的地位。

问答坊 | AI 解惑

招聘软、硬件开发工程师

软件开发工程师   5人     任职资格: 1、 大学本科及以上学历,光信息科学与技术、光通信等相关专业; 2、 熟练掌握C/C++编程语言及主流的工具平台; 3、 熟练掌握windows编程; 4、 2年以上软件工程经验、数据库开发 ...…

查看全部问答>

数据采集的问题

我现在有一个摄像头和数据采集卡,两个配套的,而且带着驱动,但是所带的驱动不能每隔一段时间自动采集图像。我想编个程序能每隔几秒钟自动采集图像,各位大侠告诉我下我应该用什么程序编,我现在一点头绪都没有,谢谢你们…

查看全部问答>

关于PROTEUS,在PROTEUS里面由汇编语言生成".HEX"文件

最近一直在使用PROTEUS.但是如果使用PROTEUS本身来编译"ASM"文件,怎么老说不能生成".OBJ"文件,用的是AVR单片机. 软件装的应该没问题的. 谢谢!头都大了!…

查看全部问答>

在煤矿中做个性化语音提示器

语音: 井下考勤室到了,请您下车 地面井口到,请您下车 15号煤水平到了,请您下车 620水平到了,请您下车 695水平到了,请您下车 前方来车请注意安全 正在行车严禁行人 这些都可以用WT588D来做,而且电路设计简单,灵活性强,用客可以随 ...…

查看全部问答>

大家现在MSP430G2系列用的多吗?

MSP430G2系列的现在价格大概是多少¥ 啊?     大家都应用在哪个领域啊》…

查看全部问答>

stm32gcc可以用吗,哪里有下载?

                                 stm32 gcc可以用吗,哪里有下载?…

查看全部问答>

adc12位转换用的是 多通道序列

adc12位转换用的是 多通道序列关键的初始化为:ADC12CTL0 = ADC12ON+SHT0_2+REFON+REF2_5V; ADC12CTL1 = ADC12SSEL_1+SHP+CONSEQ_1; ADC12MCTL0 = INCH_0+SREF_1; ADC12MCTL1 = INCH_1+ SREF_1+EOS ; 主程序里头相关的程序while (1){ADC12CTL0 | ...…

查看全部问答>

急求指纹传感器

有哪位热心网友用过指纹传感器,或者是哪个淘宝店卖的有,请在此留言,不胜感激   由于需要想做个指纹示识别器,最好图像的识别自动完成(是个半成品也行,引出几个接口),不用自己在进行图像的处理…

查看全部问答>

变电流通过螺线圈产生的磁场是什么样的

和大家请教一个问题,就是当螺线圈通过直流电是,可以通过毕奥—萨伐尔定律计算产生的磁场,当通过变电流或者是交流电时,不知应该怎么计算,产生的磁场是什么样子呢?谢谢大家~~~…

查看全部问答>