示,在程序开始运行之后,首先是对 8155 进行初始化,之后判断信号频率值,如符合所需的频率,则重置时间常数,并通过显示器显示出来,不符则返回。
在中断结束后,还要来判断波形是否符合,如符合,则显示其频率,不符则返回,重新判断。
图 4.1 主程序流程图 11 图 4.2 为各波形子程序的流程图。
如图所示,在中断服务子程序开始后,通过判断来确定各种波形的输出,当判断选择的不是方波后,则转向对正弦波的判断,如此反复。
如果选择的是方波,则用查表的方法求出相应的数据,并通过D/A 转换器将数据转换成模拟信号,形成所需波形信号。
图 4.2 子程序流程图1214 综合实验总结 课程设计是培养学生综合运用所学知识发现提出分析和解决实际问题锻炼实践能力的重要环节是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在好几个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在宋阳老师的辛勤指导下,终于游逆而解。
同时,在宋阳老师那里我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!1314 参考文献1 程全.基于 AT89C52 实现的多种波形发生器的设计J.周口师范学院学报, 2005.225:57~58.2 周明德.微型计算机系统原理及应用M.北京:清华大学出版社,2002.341~364.3 刘乐善.微型计算机接口技术及应用M.北京:北京航空航天大学出版社,2001.258~264.4 童诗白.模拟电路技术基础M.北京:高等教育出版社,2000.171~202.5 杜华.任意波形发生器及应用J.国外电子测量技术,2005.1:38~40.6 张友德.单片微型机原理、应用与实践M.上海:复旦大学出版社,2004.40~44.7 程朗.基于 8051 单片机的双通道波形发生器的设计与实现J.计算机工程与应 用,2004.8:100~103.8 张永瑞.电子测量技术基础M.西安:西安电子科技大学出版社,2006.61~101.9 李叶紫. MCS-51 单片机应用教程M.北京:清华大学出版社,2004.232~238. 附录 1 电路原理图 附录 2 源程序14源程序:ORG 0000HAJM MAINORG 000BHLJMP TC0ORG 0030HMAIN:MOV DPTR,9FFFH 指向 DAC0832(1)MOV A,70HMOVX @DPTR,A DAC0832(1)输出MOV DPTR,7F00H 指向 8155 命令字端口地址MOV A,06H 设置 A 口为输入,B 口、C 口为输出MOVX @DPTR,A 送命令字MOV DPTR,7F01H 指向 A 口地址MOVX A,@DPTR 读入 A 口的开关数据JNB ACC.4,K10H 判断是否“4”号键,若是则转输出 10Hz 信号JNB ACC.5,K100H 判断是否“5”号键,若是则转输出 100Hz 信号JNB ACC.6,K500H 判断是否“6”号键,若是则转输出 500Hz 信号JNB ACC.7,K1K 判断是否“7”号键,若是则转输出 1KHz 信号AJMP MAINLED1: MOV R3,06H 设置 6 个 LED 显示MOV R2,01H 选通第一位 LED 数据MOV R1,30H 送显示缓冲区首址GN1:MOV DPTR,7F03H 指向 C 口地址MOV A,R2 位选通数据送 AMOVX @DPTR,A 位选通数据送 C 口RL A 选通下一位MOV R2,A 位选通数据送 R2 中保存MOV A, @R1 取键值MOV DPTR,TAB 送 LED 显示软件译码表首址MOVC A,@ADPTR 查表求出键值显示的段码15MOV DPTR,7F02H 指向 B 口地址MOV @DPTR,A 段码送显示LCALL LOOP1 调延时子程序INC R1 指向下一位显示缓冲区地址DJNZ R3,GN1 循环显示 6 个 LEDRETLOOP1:MOV R4,08H 延时子程序LOOP:MOV R5,0A0HDJNZ R5,DJNZ R4,LOOPRETK10H:MOV 30H,00H 显示 10HzMOV 31H,00HMOV 32H,00HMOV 33H,00HMOV 34H,01HMOV 35H,00HLCALL LED1 调显示子程序MOV TMOD,00HMOV TL0,15HMOV TH0,9EHAJMP PDK100H:MOV 30H,00H 显示 100Hz.