毕业论文-基于80c51单片机的数字电压表设计内容摘要:

RET。 量程判断切换程序 SWITCH: MOV A,30H JB ,SWITCH2 SWITCH1: CJNE A,0FEH,NEXT1。 大 量程 NEXT1: JC BACK SETB MOV A,0FEH。 由小量程变为大量程 MOV P0,A MOV A,01H。 显示字符 1 MOV DPTR,TAB1。 选择表 TAB1 MOVC A,@A+DPTR MOV P2,A LCALL DELAY SETB SJMP BACK SWITCH2: CJNE A,15H,NEXT2。 小 量程 NEXT2: JNC BACK CLR MOV A,0FEH。 由大量程变为小量程 MOV P0,A MOV A,02H。 显示字符 2 MOV DPTR,TAB1。 选择表 TAB1 MOVC A,@A+DPTR MOV P2,A LCALL DELAY SETB BACK: RET。 BCD 码转换程序 12 TRANSFER: MOV A,30H JNB ,TRF1 ADD A,06H。 补偿量程切换造成的电压差值 TRF1: MOV B,200。 B 赋值 200 MUL AB。 AB 乘 低 8 位给 A MOV R1,A MOV A,B。 B 赋给 A MOV B,100。 B 赋值 100 DIV AB。 A 除以 100,A 为商 ,B 为余数 MOV 40H,A MOV A,B。 B 赋给 A MOV B,10 DIV AB。 A 除以 10,A 为商 MOV 41H,A MOV 42H,B MOV A,R1。 R1 赋给 A MOV B,100。 B 赋值 100 DIV AB。 A 除以 100,A 为商 ,B 为余数 MOV 43H,A RET。 数码显示输出程序 DISPLAY: MOV R4,06H DISPLAY1: MOV A,R2 MOV P0,A JNB ,AB1 JB ,ABX。 根据字位选择查相应的表 AB2: MOV DPTR,TAB2。 选择表 TAB2 SJMP CONTINUE AB1: JNB ,AB2 ABX: MOV DPTR,TAB1。 选择表 TAB1 CONTINUE: MOV A,@R0 MOVC A,@A+DPTR MOV P2,A LCALL DELAY MOV A,R2 13 JNB ,RETURN RR A MOV R2,A INC R0 SJMP DISPLAY1 RETURN: MOV R0,40H MOV R2,0DFH DJNZ R4,DISPLAY1 RET TAB1: DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H TAB2: DB 0BFH 86H 0DBH 0CFH 0E6H 0EDH 87H 0FFH 0EFH 0F7H。 延时程序 DELAY: MOV R7,0AH DELAY1: MOV R6,0FFH DELAY2: DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET END 14 第二章 仿真 实验电路图: 电阻为 0欧姆时: 15 电压为 200mV 时: 16 电压为 200mV 时: 电压最大值为 : 17 第 三 章 调试 电压为 0mV 时 : 电压为 时: 电压为 时: 电压为 时: 18 第四章 结论 本次课程设计在老师的帮助下,我们解决了切换档位、字符错误的问题,完成了规定的所有要求,并对该电路板上所用电路以及元器件有了更为深刻 的认识。 但是对于一个完整的电压表而言,我们的工作还存在缺陷,就是当电压表超出量程的时候,我们的电压表会出现重新开始计数的问题。 这个问题我们能力有限所以难以解决,这将是我们今后认真研究的一个问题。 遇到的问题: 本次实验我们根据老师发的电路 板 做了仿真,虽然做仿真不太难,但是调程序的时候遇到了 一些解决的问题。 1. 量程的调变。 我们组先根据电路图和课设的要求把程序写了,然后做了仿真。 做完仿真后把程序调到仿真电路图里面,经过一个小时左右的调试得到了单量程的电压表效果。 但是得到双量程的电压表不是那么容易了。 2. 字符错误。 当处于低量程时候,电压表示数会出现 A 字符,这不符合十进制的基本常识,说明算法出现了严重错误。 解决步骤: 我们先把程序查了两三次,没发现问题,然后查了仿真电路图,也没发现问题。 我们跟其他组同学讨论了很长时间也没发现问题,虽然把电路图改了以后显示效果有发生变化,但是比 200mv 一下的电压值显示不是理想的。 我们周末两天的时间为了解决这个问题而奋斗得到了双量程的电压表,输入电压从小到大变化过程没错,从大到小变化时就乱了,。 我们程序按照逻辑构成又分析了一遍,结果发现问题在于仿真电路和实际电路的不同即我们所 选的量程转折点电压值对应的数字在仿真里面没有,于是我们把量程转折点改了以后就得到了理想的有两个量程的数字电压表。 同时,在详细剖析程序时候,我们还一起对小量程时候的算法进行逻辑分析,发现我们的算法在小量程时,进位的写错了,应该是当余数出现 10 时候,要考虑对其进行“ +1”运算,才能避免出现字符里的 A 情况。 19 第五章 心得体会与建议 此次单片机课程设计较其他课程设计而言时间较充足,因此我们组也做了充分的前期准备。 得知课程设计的题目与要求之后,便与组员一起查找资料,对相关元器件的工作原理和结构进行分析和研 究,并设计了电路图。 由于这次实验 AD采集用的不是 AD0809而是 AD0832,而 AD0832是我们所不熟悉的,为了弄明白 AD0832的工作原理和模拟量采集与模数转换的具体实现过程进而为编程做准备,我们在网上和图书馆查找资料,这也加强了我们的自学能力。 同时对单片机的引脚连接有了更为直观的认识,对于程序的编写也有了很大的提高。 指导老师的严谨负责,也给了我们很大的帮助。 例如在验收时他提问继电器的结构和它内部的工作原理是怎样的。 我们对继电器的认识只停留在了它在整个设计中的作用上而忽略了它本身内部的结构和原理,当老 师提出这一问题时,我们认真思索,翻阅资料,在较短的时间内牢牢的掌握住了继电器的工作原理,老师的鼓励也给了我们很大的信心。 在此要感谢王老师,他使我们懂得在学习中要有自主钻研的精神,要踏踏实实,从小的知识点全方位的掌握课程内容。 20 参考文献 [ 1] 李维波, MATLAB 在电气工程中的应用,中国电力出版社, 2020 [ 2] 胡汉才,单片机原理及其接口技术,清华大学出版社, 2020 21 附录 1:元器件清单 1. 实验指定所用电路板 2. 51 单片机 wave 仿真器 3. +5V,177。 12V 稳压电源 22 微机原理与接口设计 课程设计成绩评定 表 姓 名 学。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。