单片机系统制作实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DDX:判位处理,作为输入。如果 P1.0 引脚不是高电平,则 EEX 执行加 1 指令;如果 P1.1 引脚不是高电平,则 FFX 执行减 1 指令;如果这两个引脚都是高电平,说明没有键按下,则 继续显示上一个数据。
EEX:加 1 指令,执行加 1 操作,使 R1 寄存器数值加 1。 FFX:减 1 指令,执行减 1 操作,使 R1 寄存器数值减 1。 GGX:加 1 的数位处理。当加 1 按键按下时,执行加 1 操作,然后让 GGX 程序段进行调整 处理,使个位和十位谐调显示。 YY:延时程序。实现延时功能,只能延时一小瞬间。俢改 R6 和 R7 的数值大小可以使延 时程序延时时间的长短。
这个实验,让我懂得了一个系统是怎样完成的。我做的是加一减一计数器,虽然它的功 能很简单,但在制作过程中我学到了许多东西。要设计一样东西,得用脑袋想,用 Kell 软件 编程序,proteus 软件仿真。仿真实现后用 protel 软件完成 PCB 图,打印,制板。这一个过 程,一定要注意软件与硬件对得上号,否则硬件的功能不能实现。还有就是 ptoteus 原理图 与 protel 原理图原理一致。我觉得 PCB 板线宽 30mil~40mil 为宜。小于 30mil 时大小了, 制板过程易腐蚀掉;线宽大于 30mil 太宽了,不美观,浪费板子面积。程序设计,前题是让 单片机能工作,﹁EA 引脚接高电平,vcc 接电源,GND 接地。用 P1 口作为输入,P0 口作为段 选输出,P2 口作为位选输出。最好不要单片板同一个 p 口即作为输入又作为输出。程序中, 设计显示的延时要短一些,这样在硬件显示上由于人的视觉停留效应,我们将看到两位数(或 多位)同时显示。还有就是使用高电平时,要接上拉电阻,要不然电流很微弱;特别是 P0 口 使用高电平时一定要接上拉电阻,否则不产生高电平。等等,各细节,该注意的要注意。这 次实验让我记住了很多汇编语言程序指令,整个人的思维得到了锻炼,制作整个系统我觉得还 是很有意思的;也明白了系统是如何设计的,制板工艺得到了锻炼,技术也得到了提高。当 完成这个系统后,我深知过程中每一个细节都很重要。
BBX:减 1 的数位处理。当按下减 1 按键后,程序执行减 1 操作,然后让 BBX 程序段进行 调整处理,使个位和十位谐调显示。
CCX:数据表。此数据表为高电平数据,所以在共阳数码管的段选端要取反操作。此数码 表从左到右的数据依次为:0 1 2 3 4 5 6 7 8 9。当 A=0 时选中第 1 个数据,依此类推。A 的数值是从 R1 或 R2 传送过来的,只要管理好 R1 和 R2,就可以显示想要的数字了。
解释说明: mimi:初始程序。程序的开始,首先清零 R1 和 R2 寄存器,以免影往下面的程序;让 p0
口置 1,数码管熄灭,什么都不显示。 AAX:显示程序。管理 P0 和 P2 口输出高低电平显示数据。如果 P2.0 引脚输出高电平,
那么个位被选中,此时只要在共阳数码管的段选端给一个低电平,那么相应的字段就被点亮。 段选端由 p0 口控制,要显示的数据由数据表提供。
桂林电子科技大学职业技术学院
《单片机原理与应用》系统设计
实 践 操 作 报 告
指导教师:农红密 学生姓名:覃佳幸 学 号:1212150125
机电工程系 2013 年 12 月
一、实验题目
加一减一计数器
二、实验设备与仪器
覆铜板一块,打孔机一台,电烙铁一支,清洁海绵一块,砂纸一小张镊子一支,剪刀一 把,刀钳一把,油性笔一支,焊锡丝适量,腐蚀液适量,裁板机一台,数字万用表一个,打 印机一台,转印纸若干,电慰斗一个,程序烧写器一部,插针两针,杜绑线若干条。单片机 一块,510Ω电阻若干支,10kΩ电阻一支,30pF 瓷片电容两支,晶振 12MHz 一个,电解电容 10μF 一个,发光二极管一支,单片机管座一个,轻触按键三颗,四位共阳数码管 1 个。计算 机一台,Keill 软件,proteus 软件,protel 99 se 软件。等等......
三、系统硬件图绘制
1、proteus 硬件原理图绘制: 打开 proteus 软件(启动桌面上 Isis),单击左边元件列表左上角 p 按钮,弹出元件库对
话框,在对话框中 keywords 栏中输入所需元件名称。输入 res 在列表中找到电阻双击,此时 电阻成功添加到元件列表中。同理,输入 at89c51、button、ca,依次调出单片机、轻触按键、 共阳数码管,然后关闭元件库对话框。选中元件列表中的任意一元件名称,再到元理图编辑 窗口左键单击,元件被拉出,再次单击放下元件。把所有元件按照自己的设计合理布局后, 把鼠标移动,使光标放到元件的引脚端,光标由箭头变成笔形,单击左键,移动鼠标,线条 画出,划到另一个引脚单击左键连接,再右键单击结束画线。有必要时可用网络标号,单击 工具栏 LBL,然后按照画线方法画出一小节线,此时双击该线条,弹出属性框,输标号,标号 自定,后,单击 ok 。 最后得出 proteus 原理图如下图。在 proteus 原理图中,时钟电路和 复位电路可以省略不画。
2
3.下图为输出显示模块。该数码管为共阳数码管,当单片机 P2 口输出高电平,P0 口输出低 电平时,数码管会亮。其中,p2 口是数码管位选信号,P0 口是段选信号。单片机合理控制 p0 口和 P2 口就可以使数码管显示不同的数字了。图中电阻为 P0 口和部分 P2 口的上拉电阻,作 用是自产生高电平。
这个程序实现的功能是:复位或刚上电,数码管会显示 00;当按下加键,系统加 1,显 示 01;当个位显示 9,再按加键,十位进一,个位清 0;当个位和十位都是 9 时按加键,些时 溢出,显示 00,如果百位设置有显示时百位则进一,在数位调整程序段加入即可。 如果在始初或复位后(即显示 00 时)按下减键,那么系统会减一计数,此时显示 99,依次再按, 可从 99 依次减到 00,再按一次,又从 99 开始减。 当正在显示某个数时,按下复位键,立马复位,显示 00。如果长按加键或减键,数据会快速 增加或减小,提高前进速度或快退速度。
制完板后,对照 BCP 图焊上相应的电子元件。然后把程序*.Hex 文件用烧写器烧入单片机。 然后将单片机放入管座,上电测试。如果数码管位选循环切换,则修改一下延时程序,再次 烧入程序即可。同理,发现其他问题也如此做法。我在实验时只遇到这个问题,其他问题略 述。
六、源程序
输入系统的源程序如下面所示。 ORG 0000H LJMP mimi ORG 1000H mimi:MOV P0,#0FFH;初始 MOV R1,#00H;个位清零,R1 管理送个位字样 MOV R2,#00H;十位清零,R2 管理送十位字样 DDX:JNB P1.0,EEX;转跳执行加 1 JNB P1.1,FFX;转跳执行减 1 MOV DPTR,#CCX;继续显示 BBX:CJNE R1,#0AH,AAX;比较个位不等于 10 则转跳 AAX 显示 MOV R1,#00H;清零个位 INC R2;十位进一 CJNE R2,#0AH,AAX;比较 R2 不等于 10 则转跳 AAX 显示 MOV R2, #00H;十位清零 LJMP AAX;转跳去显示 GGX:CJNE R1,#0FFH,AAX;比较 R1 不等于 FFH 则转跳 AAX 显示 MOV R1,#09H;个位显示 9 DEC R2;十位降 1 CJNE R2,#0FFH,AAX;比较十位不等于 FFH 则转跳 AAX 显示 MOV R2,#09H;十位显示 9 LJMP AAX;转跳去显示 AAX:mov r3,#20;让其显示 20 次 aaz:MOV A,R1;显示个位 MOVC A,@A+DPTR;查表显示数字 CPL A;取反累加器 MOV P0,A;在 P0 口输出段选信号 MOV P2,#01H;个位位选信号输出 LCALL YY 延时显示 MOV A,R2;显示十位 MOVC A,@A+DPTR;查表显示数字 CPL A;取反累加器 MOV P0,A;在 P0 口输出段选信号 MOV P2,#02H;十位位选信号输出
2.下图为复位电路模块。当按下按键时,RESET 脚为高电平,单片机复位,未按下时 REST 引脚为低电平,单片机不复位。极性电解电容引脚长正短负,要正确接入;电阻要大一些的 好。轻触按键有四个引脚,特别要注意,相对的两个引脚是相通的,如果按下按键时,才与 另一对引脚相互连通。如果焊接错位,则单片机一直处于复位状态。
5
加一减一计数器程序流程图如下:
开始
初始化
扫描 I/O 口状态

判 P1.0 是否按下

执行 加一
判 P1.1 是否按下


执行 减一
个位、十位处理
显示
显示个位
Biblioteka Baidu
延时 2—5ms 显示十位
循环显示 20 次
延时 2—5ms
个位、十位处理
继续显示
回去判位
先判位再显示,显示完就回去判位。
6
七、实验体会
本次实验结束了,我的加一减一计数器也完成了,功能也实现了,在此,谢谢农老师的 热心指导,谢谢同学们的支持与帮助,谢谢各位。
7
1
2、protel 硬件原理图绘制: protel 原理图和 protus 原理图类似,只不过需要画出时钟电路和复位电路罢了。同理,
在左边找到 Add/Remove 按钮,进入文件管理器中查找库,添加或删除某元件库。然后画图, 根据需要,在工具栏中可调出工具。最后得出图形如下图。
proteus 原理图和 protel 原理图的原理应一致,否则结果会出错。接着在 protel 软件 继续画 PCB 图、打印图,最后打印在转印纸上,然后转印覆铜板,腐蚀,焊接,……完成系 统。
3
五、系统制作与调试
画完 proteus 原理图后,把用 keill 软件编译好的程序导入 proteus 原理图的单片机上, 单击播放按钮,观察程序能否实现。若不能实现,那么回到 Keill 软件修改程序,根据自己 的设计分析程序,查找错误处或不合理处做修改编译,再次硬件仿真,直到 OK 为止。
4.下图该模块为按键信号输入模块。当按键没有按下时,单片机得到高电平;当按下按 键时,单片机的相应端口就得到低电平,当单片机检测到按键的按下状态,就会执行相应的 命令。
5.下图该模块为电源指示模块,当系统上电时 LED 发光。R1 用 510 欧电阻;J1 是插针, 它不仅是给电源指示模块供电,而且是整块电路板的电源输入端。
4
LCALL YY;延时显示 djnz r3,aaz;再次循环显示 LJMP DDX;转跳回去判位 EEX:INC R1;加 1 指令 LJMP BBX;转跳数位处理 FFX:DEC R1;减 1 指令 LJMP GGX;转跳数位处理 YY:MOV R6, #30;延时程序 YZ:MOV R7,#50 DJNZ R7,$ DJNZ R6,YZ RET;延时程序结束 CCX:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;数据表 END;主程序结束
四、系统说明与分析
1.下图该模块为时钟电路模块,它为单片机提供均匀的时钟脉冲信号,使单片机正常工 作。C1、C2 是瓷介电容,电容值为 30pF,也可以用 22pF,但是不能使用过大电容量的瓷介电 容,如果电容值过大则单片机不能正常工作。Y1 是晶振,12MHz;一般非精密电路中晶振使用 12MHz。晶振的两端接到单片机的 18、19 号引脚;电容另一端接在一起,而且还要接地。
相关文档
最新文档