单片机最小系统.docx
- 文档编号:3005085
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:6
- 大小:77.45KB
单片机最小系统.docx
《单片机最小系统.docx》由会员分享,可在线阅读,更多相关《单片机最小系统.docx(6页珍藏版)》请在冰豆网上搜索。
单片机最小系统
单片机最小系统制作
一、确定任务
开发单片机最小系统
二、任务分析:
该系统具有的功能:
(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)程序如下:
ORG0000H;伪指令,定义下面的程序代码(机器代码)从地址为0000H的单元存放。
LJMPSTART;跳转到标号为START的地方去执行。
ORG0030H;伪指令,定义下面的程序代码(机器代码)从地址为0030H的单元存放。
START:
MOVP1,#0FEH;点亮第一个发光二极管。
CLRP2.7;送低电平到第一个数码管,开启数码管。
CLRP2.6;送低电平到第二个数码管,开启数码管。
MOVP0,#06H;让数码管显示“1”。
LCALLDELAY;调用延时子程序,起到延时的目的。
MOVP1,#0FDH;点亮第二个发光二极管。
MOVP0,#5bH;让数码管显示“2”。
LCALLDELAY;调用延时子程序,起到延时的目的。
MOVP1,#0FBH;点亮第三个发光二极管。
MOVP0,#4fH;让数码管显示“3”。
LCALLDELAY;调用延时子程序,起到延时的目的。
MOVP1,#0F7H;点亮第四个发光二极管。
MOVP0,#66H;让数码管显示“4”。
LCALLDELAY;调用延时子程序,起到延时的目的。
MOVP1,#0EFH;点亮第五个发光二极管。
MOVP0,#6dH;让数码管显示“5”。
LCALLDELAY;调用延时子程序,起到延时的目的。
MOVP1,#0DFH;点亮第六个发光二极管。
MOVP0,#7dH;让数码管显示“6”。
LCALLDELAY;调用延时子程序,起到延时的目的。
MOVP1,#0BFH;点亮第七个发光二极管。
MOVP0,#07H;让数码管显示“7”。
LCALLDELAY;调用延时子程序,起到延时的目的。
MOVP1,#7FH;点亮第八个发光二极管。
MOVP0,#7fH;让数码管显示“8”。
LCALLDELAY;调用延时子程序,起到延时的目的。
MOVP1,#00H;灭了所有的发光二极管。
MOVP0,#3FH;让数码管显示“0”。
LCALLDELAY;调用延时子程序,起到延时的目的。
MOVP0,#06H;让数码管显示“1”。
LCALLDELAY;调用延时子程序,起到延时的目的。
MOVP0,#5bH;让数码管显示“2”。
LCALLDELAY;调用延时子程序,起到延时的目的。
MOVP0,#4fH;让数码管显示“3”。
LCALLDELAY;调用延时子程序,起到延时的目的。
MOVP0,#66H;让数码管显示“4”。
LCALLDELAY;调用延时子程序,起到延时的目的。
MOVP0,#6dH;让数码管显示“5”。
LCALLDELAY;调用延时子程序,起到延时的目的。
MOVP0,#7dH;让数码管显示“6”。
LCALLDELAY;调用延时子程序,起到延时的目的。
MOVP0,#07H;让数码管显示“7”。
LCALLDELAY;调用延时子程序,起到延时的目的。
MOVP0,#7fH;让数码管显示“8”。
LCALLDELAY;调用延时子程序,起到延时的目的。
MOVP0,#6fH;让数码管显示“9”。
LCALLDELAY;调用延时子程序,起到延时的目的。
MOVR4,#9;送蜂鸣器的报警次数。
LOOP:
SETBP2.0;不发声
LCALLDELAY;调用延时子程序,起到延时的目的。
CLRP2.0;发声。
LCALLDELAY;调用延时子程序,起到延时的目的。
DJNZR4,LOOP;发声九次后向下执行。
SETBP2.0;关闭发声
LJMPSTART;跳转到标号为START处执行,循环本程序。
DELAY:
MOVR7,#200;这是延时子程序。
D1:
MOVR6,#200
D2:
MOVR5,#200
D3:
DJNZR5,D3
DJNZR6,D2
DJNZR7,D1
RET;延时子程序返回指令。
END;结束伪指令。
九、利用KEILC51软件对上面的程序进行调试和编译,产生*.HEX文件,以便用编程器写入单片机芯片中。
十、编程器的使用:
用编程器把电脑里生成的*.HEX文件写到芯片中。
十一、产品调试:
通上4.5V(三节电池)的电源,可以调试本系统,如果没有错误就可以正常工作了。
51单片机管脚说明
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 最小 系统