单片机系统开发实例

出处:互联网 发布于:2019-05-27 15:05:25

  一、确定任务
  开发单片机系统
  二、任务分析:
  该系统具有的功能:
  (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(三节电池)的电源,可以调试本系统,如果没有错误就可以正常工作了。

关键词:单片机

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

相关技术资料
广告
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!