单片机课程设计报告(五人表决器)

目录

一、方案设计 ................................................ 2

二、硬件电路设计 ........................................ 2

三、软件设计说明 ........................................ 6

四、 程序清单 .............................................. 7

五、制作调试说明 ...................................... 12

六、操作使用说明 ...................................... 13

七、总结 ...................................................... 13

单片机课程设计

一、方案设计

1、设计题目:5人表决器 2、设计要求:

1)、可供5—7个人进行表决,每个人有一个“同意”和一个“反对”按键,故一个人需要两个按键,表决时两个键先按下的一个有效,同时按下则表示无效,每次表决每个按键只能是第一次按下的有效,多按无效,用单片机设计表决器是硬件电路与软件设计相结合的一种设计,因此在硬件电路只能实现按键的按下与释放,不能智能的实现检测按键被按下几次,则可用软件设计来实现其功能。 2)会议主持人可利用按键控制表决的开始与结束,点亮黄灯用于显示表决开始,熄灭黄灯表示结束,并将表决结果用红灯与绿灯显示。当不相等时,“同意”多于“反对”点亮绿灯,“同意”少于“反对”点亮红灯。

3)在实现上述功能的基础上增加“同意”数和“反对”数的显示。

二、硬件电路设计

1、硬件设计思路:

此次设计的题目是5人表决器,分析得设计的硬件电路选用P1口与P2口作为同意与反对按键的输入端。又表决的开始与结束是由主持人来控制的,因此需要两个按键来表示表决的开始与结束,因此可采用外部中断0与外部中断1来控制表决的开始于结束。故设计总共需要按键12个。设计要求中需要四盏灯,分变为

一个黄灯,一个绿灯和二个红灯,三盏灯用于输出显示,因此也可以征用单片机的I/O口,由于P1口与P2口作为同意与反对按键的输入端且P0口当做输出端口时可以不用接上拉电阻,因此可将三个显示灯接在P0口用于显示表决的结果。还有一盏红灯用来做电源指示灯。

2、元器件参数确定:

设计要求中需要三盏灯(黄灯,绿灯和红灯) 用于输出显示,选用P0口的3个端口与显示灯相连接用于输出,由于输出端口输出的高电平一般为5V ,而发光二极管允许的最大电流为5mA ,因此需要用到限流电阻,发光二极管可降2V 的电压,则限流电阻上的压降为3V, 那么限流电阻的最小阻值为R=3V/5mA=600欧姆,由于输出的高电平不是5V ,故用510欧姆的限流电阻。然后将单片机的最小系统(最小系统中各元器件的参数可参考单片机课本中给出的值)加入电路中就是此次设计的硬件电路。

3、元件清单:

各元器件的作用:

开关:有十个开关用于分别用做5人的同意与反对按键;一个开关用于复位电路,另外两个按键用于主持人的开始与结束按键;电容:用于单片机的最小系统;发光二极管:黄灯用于显示表决的开始与结束,红灯与绿灯用于显示表决的结果;电阻:用于限制电流;8051芯片:软件编程;电源接头:用于接外接电源。

4、电路工作原理简述:

该电路是基于硬件电路,应用汇编语言来设计出其工作流程,硬件电路是用软件程序来检测表决器的开始按键是否被按下,如果开始键已按下,则利用软件程序来检测用于表决的按键是否被按下以及按下的按键是否有效,然后检测结束键是否被按下,如果按下则表决结束,并且显示最终的表决结果。硬件电路只能够用于表征表决是否开始以及每个人按下的是同意按键还是反对按键。

工作流程:当主持人按下开始表决的开始按键(在电路中用接在外部中断0上的按键来表示开始按键)后,5个人才开始表决,5个人分别按下同意按键或是反对按键,剩余的事情由软件来处理分析最终统计得到“同意”的人数和“反对”的人数,当主持按下结束按键后(在电路中用外部中断1上所接的按键来表示结束按键),软件中用外部中断1来表示结束(采用中断的方式),在中断程序中比较“同意”的人数与“反对”的人数的大小。当“同意”的人数大于“反对”的人数时,应用软件程序点亮绿灯;当“同意”的人数小于“反对”的人数时,应用软件程序点亮红灯;当“同意”的人数等于“反对”的人数时,则应用软件程序将红灯与绿灯同时点亮。

图1 单片机系统的时钟电路

图2 实物电路板

三、软件设计说明

1、模块设计:

初始化模块 :对系统进行初始化,由于程序中有中断源,因此打开相应的中断也放在程序的初始化模块中;

检测开始按键:检测开始按键是否被按下,按下则开始执行循环检测同意与反对按键,为消除按键抖动,此处需调用延时程序;

循环检测同意/反对按键:循环检测同意与反对按键是否被按下,同时统计同意总数与反对总数,然后等待中断到来;

延时程序:用于消除按键的机械抖动,调用0.5s 的延时程序;

中断处理:当中断源到来,首先熄灭黄灯,然后将同意总数与反对总数进行比较,并点亮对应的显示灯;

2、软件设计流程图

3、软件总体功能:

软件的总体功能

1. 用于检测开始按键是否被按下,按下则表决按键按下才有效,即开始表决; 2. 开始表决后循环检测对应的同意与反对按键是否被按下,并统计同意总数与反对总数;

3. 等待中断,即等待结束按键被按下,在中断处理中将同意与反对数进行比较,并点亮相应的显示灯,程序结束。

四、程序清单

ORG 0000H AJMP MAIN ;//转主程序// ORG 0013H ;//外部中断1的入口地址// AJMP INT_1 ;//跳转到中断// ORG 0100H

MAIN: MOV SP,#60H ;//给地址指针赋初值// MOV A,#0FFH MOV P1,A ;//给P1口赋初始值// MOV P2,A ;//给P2口赋初始值// MOV P0,A ;//给P0口赋初始值// SETB EA ;//开中断// SETB EX1 ;//打开外部中断1// SETB IT1 ;//设置外部中断1为边沿触发方式// JB P3.2,$ ;//等待外部中断0上的按键按下// LCALL DEL05S ;//调用延时程序// JNB P3.2,$ ;//等待按键弹起// CLR P 0.5 ;//点亮黄灯// L10: JB P1.4,L11 ;//判断按键P1.4口上的按键是否被按下// JNB P1.4,$ ;//等待按键弹起// JNB P2.0,L11 ;//检测对应的反对按键是否被按下// LCALL DEL05S ;//调用延时程序// MOV 21H,#00H ;//将21H 初始化// MOV A,21H ;//21H中存储第一个同意按键的按下数// INC A ; //对21H 地址单元中的值加1// MOV B,A

MOV A,#01H CJNE A,B,L11 ;//将寄存器A 中的值与1比较,保证只有第一次按下才有效// MOV 21H,A ;//26H中存储第一个反对按键的按下数// MOV 31H,#00H MOV A,31H INC A MOV 31H,A ;//对31H 中的同意数加1// L11: JB P1.3,L12 ;//检测按键是否被按下// JNB P1.3,$ ;//等待按键弹起// JNB P2.1,L12 ;//判断对应的反对建是否被按下// LCALL DEL05S ;//调用延时程序// MOV 22H,#00H MOV A,22H ;//同L10注释,下同// INC A MOV B,A CJNE A,B,L12 MOV 22H,A MOV A,31H INC A MOV 31H,A L12: JB P1.2,L13 ;//同上// JNB P1.2,$ JNB P2.2,L13 LCALL DEL05S MOV 23H,#00H MOV A,23H INC A MOV B,A CJNE A,B,L13 MOV 23H,A MOV A,31H INC A MOV 31H,A L13: JB P1.1,L14 ;//同上// JNB P1.1,$ JNB P2.3,L14 LCALL DEL05S MOV 24H,#00H MOV A,24H

INC A MOV B,A CJNE A,B,L14 MOV A,31H INC A MOV 31H,A L14: JB P1.0,S0 ;//同上// JNB P1.0,$ JNB P2.4,S0 LCALL DEL05S MOV 25H,#00H MOV A,25H INC A MOV B,A CJNE A,B,S0 MOV 25H,A MOV 30H,A MOV A,31H INC A MOV 31H,A S0: JB P2.0,s1 ;//判断第一个反对建是否被按下// JNB P2.0,$ ;//等待按键弹起// JNB P1.4,s1 ;//判断对应的同意键是否被按下// LCALL DEL05S ;//调用延时程序// MOV 26H,#00H ;//将26H 初始化// MOV A,26H ;//将值送入对应的存储空间// INC A;//寄存器A 的内容加1// MOV B,A CJNE A,B,S1 ;//与1比较// MOV 26H,A MOV A,32H INC A ;//对寄存器A 的内容加1// MOV 32H,A ;//将寄存器A 的值赋值给32H// S1: JB P2.1,S2 ;//同上面的S0程序的注释// JNB P2.1,$ JNB P1.3,S2 LCALL DEL05S MOV 27H,#00H MOV A,27H

INC A

MOV B,A CJNE A,B,S2 MOV 27H,A MOV A,32H INC A

MOV 32H,A S2: JB P2.2,S3 ;//同上// JNB P2.2,$ JNB P1.2,S3

LCALL DEL05S MOV 28H,#00H MOV A,28H INC A

MOV B,A CJNE A,B,S3 MOV 28H,A MOV A,32H INC A

MOV 32H,A S3: JB P2.3,S4 ;//同上// JNB P2.3,$ JNB P1.1,S4

LCALL DEL05S MOV 29H,#00H MOV A,29H INC A

MOV B,A CJNE A,B,S4 MOV 29H,A MOV A,32H INC A

MOV 32H,A S4: JB P2.4,RT ;//同上// JNB P2.4,$ JNB P1.0,RT

LCALL DEL05S MOV 30H,#00H MOV A,30H

INC A

MOV B,A

CJNE A,B,RT

MOV 30H,A

MOV A,32H

INC A

MOV 32H,A

RT: AJMP L10 ;//跳转到L0程序循环检测各个按键是否被按下//

DEL05S: MOV TMOD,#10H ;//定时器T1,方式1//

MOV TL1,#0DCH ;//送计数初值,保证定时时间为125ms//

MOV TH1,#0BH

MOV R2,#4 ;//设置软计数器,使4*125ms=0.5s//

SETB TR1 ;//启动定时计数器//

LOOP: JNB TF1,$ ;//等待1ms 定时到//

MOV TL1,#0DCH ;//再送计数初值,保证定时时间始终为125ms//

MOV TH1,#0BH

CLR T F1 ;//清除溢出标志位,以便下次判断//

DJNZ R2,LOOP ;//等待0.5S 延时到//

CLR T R1 ;//关闭定时器1//

RET ;//延时程序返回//

INT_1: SETB P0.5 ;//熄灭黄灯//

MOV A,31H ;//将同意数赋值给寄存器A//

MOV B,A

MOV A,32H

CLR P 0.0

CJNE A,B,LP ;//比较同意数与反对数的大小//

MOV P0,#00H ;//三个显示灯同时点亮//

SJMP OUT ;//跳转到OUT 程序//

LP: JC GREEN ;//判断溢出标志位Cy//

CLR P 0.0 ;//点亮绿灯//

SJMP OUT ;//跳转到OUT 程序//

GREEN: CLR P 0.2 ;//点亮红灯//

OUT: NOP ;//空操作指令//

RETI ;//中断返回//

END

五、制作调试说明

1、制作与程序设计思路:

将所设计的硬件电路焊接好,然后根据硬件电路的基本接法画出软件编程的流程图,然后根据流程图中的各个模块编写相应模块的程序,最后将各个模块综合起来构成说设计的程序。

2、调试过程与结果:

程序的编写过程:

1)、根据软件的流程图中的各个模块的基本要求,先编写出模块程序,使其实现模块功能;然后根据流程图中各个模块之间的箭头方向将各个模块联系在一起,最后对对整体程序进行调节,直至调试运行后没有逻辑错误与警告;

2)、将运行没有错误的程序导入模拟软件中进行仿真调试,首先发现不能实现预期的功能,于是对程序进行修改,直至调试成功,通过仿真能够实现预期的功能,则程序编写成功,可进行硬件电路的调试。

调试过程中出现的问题:

1)、将所编程的的程序烧写在单片机8051芯片中,然后将其加入硬件电路中,然后进行调试,发现不能实现其功能。

2)调整后继续进行调试,结果还是不能实现预期的功能,当按下的同意键大于反对建时,绿灯被点亮;但当按下的反对建大于同意键时,仍然显示绿灯,同意键等于反对建是也显示绿灯,也不能达到预期的功能;进一步对程序进行调试,但仍然不能解决问题。然后对硬件电路进行检测发现有一个管脚虚焊,红灯也不能正常工作,于是将坏掉的元器件换掉后再进行调试后猜成功实现理想的功能。

六、操作使用说明

1、将汇编语言程序烧写进单片机8051芯片中,然后把芯片连接到硬件电路中;

2、按下开始按键(外部中断0)后开始表决,P1口上的按键为同意按键,P2口上的按键为反对按键,表决后按下结束按键(外部中断1),点亮相应的显示灯,绿灯表示同意大于反对总数,点亮红灯表示反对大于同意同意数。

七、总结

这次实训,主要实习任务是根据以前所学知识,设计单片机硬件电路,制作电路,自己编写汇编程序;并通过调试硬件电路和程序使其实现预期的功能。这次实训让我真正的了解了单片机设计的基本设计理念,以及设计所需要掌握的一些基本概念。同时更加巩固了我们所学习的知识,并将所学习的理论知识真正的应用于实践中。我认为此次的实习对我是受益匪浅的,让我更加有了学习的动力。当我所设计的电路经调试能够实现预期效果时,我的内心是无比的愉悦,虽然此次在调试过程中遇到了很多的问题,最终的结果页并不是那么理想,但我还是感觉很欣慰,因为这次实训让我了解到了平时学习中的不足,让我更谦虚的学习更多的知识。虽然有很多地方是借鉴别人的,但我能够在调试过程中学到很多以前没有弄明白的问题以及相关知识点。在这实训的二周里,说紧张却稍带着愉快的气氛,整个过程应该是充实的,时而惊喜,时而烦闷特别是最后调试阶段有一块调通了都会让我们高兴不已,当卡在某处时也确实是让人抓狂。总之通过这次单片机实训,我们不但复习了过去所学,并且学到了一些新东西。更重要的是通过这一次切身实践,才使我们真正将理论与实际结合起来,并且遇到了很多实实在在的需要我们亲自解决的问题。通过解决这些问题,我们处理实际问题的能力有了很大提高,积累了我们的实践经验,以便为以后打下牢固的基础。而这些才是我们作为一名工科学生最宝贵的财富。

目录

一、方案设计 ................................................ 2

二、硬件电路设计 ........................................ 2

三、软件设计说明 ........................................ 6

四、 程序清单 .............................................. 7

五、制作调试说明 ...................................... 12

六、操作使用说明 ...................................... 13

七、总结 ...................................................... 13

单片机课程设计

一、方案设计

1、设计题目:5人表决器 2、设计要求:

1)、可供5—7个人进行表决,每个人有一个“同意”和一个“反对”按键,故一个人需要两个按键,表决时两个键先按下的一个有效,同时按下则表示无效,每次表决每个按键只能是第一次按下的有效,多按无效,用单片机设计表决器是硬件电路与软件设计相结合的一种设计,因此在硬件电路只能实现按键的按下与释放,不能智能的实现检测按键被按下几次,则可用软件设计来实现其功能。 2)会议主持人可利用按键控制表决的开始与结束,点亮黄灯用于显示表决开始,熄灭黄灯表示结束,并将表决结果用红灯与绿灯显示。当不相等时,“同意”多于“反对”点亮绿灯,“同意”少于“反对”点亮红灯。

3)在实现上述功能的基础上增加“同意”数和“反对”数的显示。

二、硬件电路设计

1、硬件设计思路:

此次设计的题目是5人表决器,分析得设计的硬件电路选用P1口与P2口作为同意与反对按键的输入端。又表决的开始与结束是由主持人来控制的,因此需要两个按键来表示表决的开始与结束,因此可采用外部中断0与外部中断1来控制表决的开始于结束。故设计总共需要按键12个。设计要求中需要四盏灯,分变为

一个黄灯,一个绿灯和二个红灯,三盏灯用于输出显示,因此也可以征用单片机的I/O口,由于P1口与P2口作为同意与反对按键的输入端且P0口当做输出端口时可以不用接上拉电阻,因此可将三个显示灯接在P0口用于显示表决的结果。还有一盏红灯用来做电源指示灯。

2、元器件参数确定:

设计要求中需要三盏灯(黄灯,绿灯和红灯) 用于输出显示,选用P0口的3个端口与显示灯相连接用于输出,由于输出端口输出的高电平一般为5V ,而发光二极管允许的最大电流为5mA ,因此需要用到限流电阻,发光二极管可降2V 的电压,则限流电阻上的压降为3V, 那么限流电阻的最小阻值为R=3V/5mA=600欧姆,由于输出的高电平不是5V ,故用510欧姆的限流电阻。然后将单片机的最小系统(最小系统中各元器件的参数可参考单片机课本中给出的值)加入电路中就是此次设计的硬件电路。

3、元件清单:

各元器件的作用:

开关:有十个开关用于分别用做5人的同意与反对按键;一个开关用于复位电路,另外两个按键用于主持人的开始与结束按键;电容:用于单片机的最小系统;发光二极管:黄灯用于显示表决的开始与结束,红灯与绿灯用于显示表决的结果;电阻:用于限制电流;8051芯片:软件编程;电源接头:用于接外接电源。

4、电路工作原理简述:

该电路是基于硬件电路,应用汇编语言来设计出其工作流程,硬件电路是用软件程序来检测表决器的开始按键是否被按下,如果开始键已按下,则利用软件程序来检测用于表决的按键是否被按下以及按下的按键是否有效,然后检测结束键是否被按下,如果按下则表决结束,并且显示最终的表决结果。硬件电路只能够用于表征表决是否开始以及每个人按下的是同意按键还是反对按键。

工作流程:当主持人按下开始表决的开始按键(在电路中用接在外部中断0上的按键来表示开始按键)后,5个人才开始表决,5个人分别按下同意按键或是反对按键,剩余的事情由软件来处理分析最终统计得到“同意”的人数和“反对”的人数,当主持按下结束按键后(在电路中用外部中断1上所接的按键来表示结束按键),软件中用外部中断1来表示结束(采用中断的方式),在中断程序中比较“同意”的人数与“反对”的人数的大小。当“同意”的人数大于“反对”的人数时,应用软件程序点亮绿灯;当“同意”的人数小于“反对”的人数时,应用软件程序点亮红灯;当“同意”的人数等于“反对”的人数时,则应用软件程序将红灯与绿灯同时点亮。

图1 单片机系统的时钟电路

图2 实物电路板

三、软件设计说明

1、模块设计:

初始化模块 :对系统进行初始化,由于程序中有中断源,因此打开相应的中断也放在程序的初始化模块中;

检测开始按键:检测开始按键是否被按下,按下则开始执行循环检测同意与反对按键,为消除按键抖动,此处需调用延时程序;

循环检测同意/反对按键:循环检测同意与反对按键是否被按下,同时统计同意总数与反对总数,然后等待中断到来;

延时程序:用于消除按键的机械抖动,调用0.5s 的延时程序;

中断处理:当中断源到来,首先熄灭黄灯,然后将同意总数与反对总数进行比较,并点亮对应的显示灯;

2、软件设计流程图

3、软件总体功能:

软件的总体功能

1. 用于检测开始按键是否被按下,按下则表决按键按下才有效,即开始表决; 2. 开始表决后循环检测对应的同意与反对按键是否被按下,并统计同意总数与反对总数;

3. 等待中断,即等待结束按键被按下,在中断处理中将同意与反对数进行比较,并点亮相应的显示灯,程序结束。

四、程序清单

ORG 0000H AJMP MAIN ;//转主程序// ORG 0013H ;//外部中断1的入口地址// AJMP INT_1 ;//跳转到中断// ORG 0100H

MAIN: MOV SP,#60H ;//给地址指针赋初值// MOV A,#0FFH MOV P1,A ;//给P1口赋初始值// MOV P2,A ;//给P2口赋初始值// MOV P0,A ;//给P0口赋初始值// SETB EA ;//开中断// SETB EX1 ;//打开外部中断1// SETB IT1 ;//设置外部中断1为边沿触发方式// JB P3.2,$ ;//等待外部中断0上的按键按下// LCALL DEL05S ;//调用延时程序// JNB P3.2,$ ;//等待按键弹起// CLR P 0.5 ;//点亮黄灯// L10: JB P1.4,L11 ;//判断按键P1.4口上的按键是否被按下// JNB P1.4,$ ;//等待按键弹起// JNB P2.0,L11 ;//检测对应的反对按键是否被按下// LCALL DEL05S ;//调用延时程序// MOV 21H,#00H ;//将21H 初始化// MOV A,21H ;//21H中存储第一个同意按键的按下数// INC A ; //对21H 地址单元中的值加1// MOV B,A

MOV A,#01H CJNE A,B,L11 ;//将寄存器A 中的值与1比较,保证只有第一次按下才有效// MOV 21H,A ;//26H中存储第一个反对按键的按下数// MOV 31H,#00H MOV A,31H INC A MOV 31H,A ;//对31H 中的同意数加1// L11: JB P1.3,L12 ;//检测按键是否被按下// JNB P1.3,$ ;//等待按键弹起// JNB P2.1,L12 ;//判断对应的反对建是否被按下// LCALL DEL05S ;//调用延时程序// MOV 22H,#00H MOV A,22H ;//同L10注释,下同// INC A MOV B,A CJNE A,B,L12 MOV 22H,A MOV A,31H INC A MOV 31H,A L12: JB P1.2,L13 ;//同上// JNB P1.2,$ JNB P2.2,L13 LCALL DEL05S MOV 23H,#00H MOV A,23H INC A MOV B,A CJNE A,B,L13 MOV 23H,A MOV A,31H INC A MOV 31H,A L13: JB P1.1,L14 ;//同上// JNB P1.1,$ JNB P2.3,L14 LCALL DEL05S MOV 24H,#00H MOV A,24H

INC A MOV B,A CJNE A,B,L14 MOV A,31H INC A MOV 31H,A L14: JB P1.0,S0 ;//同上// JNB P1.0,$ JNB P2.4,S0 LCALL DEL05S MOV 25H,#00H MOV A,25H INC A MOV B,A CJNE A,B,S0 MOV 25H,A MOV 30H,A MOV A,31H INC A MOV 31H,A S0: JB P2.0,s1 ;//判断第一个反对建是否被按下// JNB P2.0,$ ;//等待按键弹起// JNB P1.4,s1 ;//判断对应的同意键是否被按下// LCALL DEL05S ;//调用延时程序// MOV 26H,#00H ;//将26H 初始化// MOV A,26H ;//将值送入对应的存储空间// INC A;//寄存器A 的内容加1// MOV B,A CJNE A,B,S1 ;//与1比较// MOV 26H,A MOV A,32H INC A ;//对寄存器A 的内容加1// MOV 32H,A ;//将寄存器A 的值赋值给32H// S1: JB P2.1,S2 ;//同上面的S0程序的注释// JNB P2.1,$ JNB P1.3,S2 LCALL DEL05S MOV 27H,#00H MOV A,27H

INC A

MOV B,A CJNE A,B,S2 MOV 27H,A MOV A,32H INC A

MOV 32H,A S2: JB P2.2,S3 ;//同上// JNB P2.2,$ JNB P1.2,S3

LCALL DEL05S MOV 28H,#00H MOV A,28H INC A

MOV B,A CJNE A,B,S3 MOV 28H,A MOV A,32H INC A

MOV 32H,A S3: JB P2.3,S4 ;//同上// JNB P2.3,$ JNB P1.1,S4

LCALL DEL05S MOV 29H,#00H MOV A,29H INC A

MOV B,A CJNE A,B,S4 MOV 29H,A MOV A,32H INC A

MOV 32H,A S4: JB P2.4,RT ;//同上// JNB P2.4,$ JNB P1.0,RT

LCALL DEL05S MOV 30H,#00H MOV A,30H

INC A

MOV B,A

CJNE A,B,RT

MOV 30H,A

MOV A,32H

INC A

MOV 32H,A

RT: AJMP L10 ;//跳转到L0程序循环检测各个按键是否被按下//

DEL05S: MOV TMOD,#10H ;//定时器T1,方式1//

MOV TL1,#0DCH ;//送计数初值,保证定时时间为125ms//

MOV TH1,#0BH

MOV R2,#4 ;//设置软计数器,使4*125ms=0.5s//

SETB TR1 ;//启动定时计数器//

LOOP: JNB TF1,$ ;//等待1ms 定时到//

MOV TL1,#0DCH ;//再送计数初值,保证定时时间始终为125ms//

MOV TH1,#0BH

CLR T F1 ;//清除溢出标志位,以便下次判断//

DJNZ R2,LOOP ;//等待0.5S 延时到//

CLR T R1 ;//关闭定时器1//

RET ;//延时程序返回//

INT_1: SETB P0.5 ;//熄灭黄灯//

MOV A,31H ;//将同意数赋值给寄存器A//

MOV B,A

MOV A,32H

CLR P 0.0

CJNE A,B,LP ;//比较同意数与反对数的大小//

MOV P0,#00H ;//三个显示灯同时点亮//

SJMP OUT ;//跳转到OUT 程序//

LP: JC GREEN ;//判断溢出标志位Cy//

CLR P 0.0 ;//点亮绿灯//

SJMP OUT ;//跳转到OUT 程序//

GREEN: CLR P 0.2 ;//点亮红灯//

OUT: NOP ;//空操作指令//

RETI ;//中断返回//

END

五、制作调试说明

1、制作与程序设计思路:

将所设计的硬件电路焊接好,然后根据硬件电路的基本接法画出软件编程的流程图,然后根据流程图中的各个模块编写相应模块的程序,最后将各个模块综合起来构成说设计的程序。

2、调试过程与结果:

程序的编写过程:

1)、根据软件的流程图中的各个模块的基本要求,先编写出模块程序,使其实现模块功能;然后根据流程图中各个模块之间的箭头方向将各个模块联系在一起,最后对对整体程序进行调节,直至调试运行后没有逻辑错误与警告;

2)、将运行没有错误的程序导入模拟软件中进行仿真调试,首先发现不能实现预期的功能,于是对程序进行修改,直至调试成功,通过仿真能够实现预期的功能,则程序编写成功,可进行硬件电路的调试。

调试过程中出现的问题:

1)、将所编程的的程序烧写在单片机8051芯片中,然后将其加入硬件电路中,然后进行调试,发现不能实现其功能。

2)调整后继续进行调试,结果还是不能实现预期的功能,当按下的同意键大于反对建时,绿灯被点亮;但当按下的反对建大于同意键时,仍然显示绿灯,同意键等于反对建是也显示绿灯,也不能达到预期的功能;进一步对程序进行调试,但仍然不能解决问题。然后对硬件电路进行检测发现有一个管脚虚焊,红灯也不能正常工作,于是将坏掉的元器件换掉后再进行调试后猜成功实现理想的功能。

六、操作使用说明

1、将汇编语言程序烧写进单片机8051芯片中,然后把芯片连接到硬件电路中;

2、按下开始按键(外部中断0)后开始表决,P1口上的按键为同意按键,P2口上的按键为反对按键,表决后按下结束按键(外部中断1),点亮相应的显示灯,绿灯表示同意大于反对总数,点亮红灯表示反对大于同意同意数。

七、总结

这次实训,主要实习任务是根据以前所学知识,设计单片机硬件电路,制作电路,自己编写汇编程序;并通过调试硬件电路和程序使其实现预期的功能。这次实训让我真正的了解了单片机设计的基本设计理念,以及设计所需要掌握的一些基本概念。同时更加巩固了我们所学习的知识,并将所学习的理论知识真正的应用于实践中。我认为此次的实习对我是受益匪浅的,让我更加有了学习的动力。当我所设计的电路经调试能够实现预期效果时,我的内心是无比的愉悦,虽然此次在调试过程中遇到了很多的问题,最终的结果页并不是那么理想,但我还是感觉很欣慰,因为这次实训让我了解到了平时学习中的不足,让我更谦虚的学习更多的知识。虽然有很多地方是借鉴别人的,但我能够在调试过程中学到很多以前没有弄明白的问题以及相关知识点。在这实训的二周里,说紧张却稍带着愉快的气氛,整个过程应该是充实的,时而惊喜,时而烦闷特别是最后调试阶段有一块调通了都会让我们高兴不已,当卡在某处时也确实是让人抓狂。总之通过这次单片机实训,我们不但复习了过去所学,并且学到了一些新东西。更重要的是通过这一次切身实践,才使我们真正将理论与实际结合起来,并且遇到了很多实实在在的需要我们亲自解决的问题。通过解决这些问题,我们处理实际问题的能力有了很大提高,积累了我们的实践经验,以便为以后打下牢固的基础。而这些才是我们作为一名工科学生最宝贵的财富。


相关文章

  • 研发岗位职责
  • 研发部岗位职能与岗位职责 研发部岗位职能 在公司总裁.主管副总裁的领导下,负责组织制定并实施研发部的年度工作计划,建立和完善研发项目的立项.实施的管理和控制流程.根据公司总体战略规划及年度经验目标,围绕市场.客服中心制定公司产品研发项目的年 ...查看


  • 单片机交通灯控制课程设计
  • 单片机交通灯控制课程设计 姓名: 院系:物理与电气工程学院 专业:电气工程及其自动化 班级: 学号: 指导教师:孙志富 2014年3月15日 基本要求 利用单片机的定时器产生秒信号,控制十字路口的红.绿.黄灯交替点亮和熄灭,并且用4只LED ...查看


  • 25030203数字电子技术教学大纲-自动化专业
  • <数字电子技术>教学大纲 学时:80 学分:3.5 课程类别:专业基础课(核心课程) 课程编码:25030210 开设年级:二年级第二学期 撰写人:郑雁翎 审核人:XXX 一.课程说明 <数字电子电路>是自动化专业在 ...查看


  • 单片机课程设计报告(万年历)
  • 江西财经大学职业技术学院 单片机课程设计报告 目 录 一.摘要²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²2 二.设计任务.²²²²²²² ...查看


  • 广州市物业管理暂行办法
  • <广州市物业管理暂行办法>正式出台 5月1日起实施 2014年04月02日 07:22:05 来源: 新快报 分享到:25 公共收益如何监管.业委会如何成立.物管费调价谁说了算„„这些关乎业主切身利益的事终于有了法规保障.昨日, ...查看


  • [法律法规]上海市制定地方性法规条例
  • [阅读全文] 上海市制定地方性法规条例 (2001年2月12日上海市第十一届人民代表大会第四次会议通过根据2004年10月19日上海市第十二届人民代表大会常务委员会第十五次会议<关于修改〈上海市制定地方性法规条例〉的决定>第一 ...查看


  • 单片机课设报告抢答器
  • 武汉理工大学华夏学院 课程设计报告书 课 程 名 称 单片机原理及应用课程设计 课程设计总评成绩 学生姓名.学 号 学 生 专 业 班级 自动化1133 指 导 教 师 姓名 课程设计起止日期 2015.12.21~2015.12.31 目 ...查看


  • 微控器课程设计模板
  • 辽 宁 工 业 大 学 题目: 院(系): 软件学院 专业班级: 学 号: 学生姓名: 指导教师: 葛帅 教师职称: 助教 起止时间: 09.6.15-09.06.26 课程设计(论文)任务及评语 目 录 第1章 课程实训目的与要求 ... ...查看


  • 七人表决器课程设计报告
  • 课 程 设 计 课程名称 硬件描述语言与EDA 技术 题目名称 硬件描述语言与EDA 技术实践 学生学院 材料与能源 专业班级 11微电子学(1)班 学 号 学生姓名 指导教师 2014年 6月 27日 广东工业大学课程设计任务书 题目名称 ...查看


热门内容