单片机课程设计报告.doc

上传人:仙人指路1688 文档编号:4147620 上传时间:2023-04-07 格式:DOC 页数:16 大小:855KB
返回 下载 相关 举报
单片机课程设计报告.doc_第1页
第1页 / 共16页
单片机课程设计报告.doc_第2页
第2页 / 共16页
单片机课程设计报告.doc_第3页
第3页 / 共16页
单片机课程设计报告.doc_第4页
第4页 / 共16页
单片机课程设计报告.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《单片机课程设计报告.doc》由会员分享,可在线阅读,更多相关《单片机课程设计报告.doc(16页珍藏版)》请在三一办公上搜索。

1、目录1.题目设计要求22. 系统的组成及工作原理22.1电路原理图22.2 A/D转换原理32.3数据处理原理32.4器件列表33. 器件的功能和作用43.1AT89C51功能介绍43.1.1AT89C51的简单概述43.1.2AT89C51的引脚介绍43.2AD0809功能介绍63.3 LED数码管功能介绍74.系统硬件设计75. 系统软件设计85.1 程序流程图85.2程序代码106.系统仿真调试136.1仿真原理图设计136.2 与程序代码链接146.2.1运用keil uVision4生成.hex文件并链接146.3 仿真运行结果157.心得体会168.参考文献161.题目设计要求要求

2、:利用51单片机+8位数码管+AD0809设计数字直流电压表系统,精度为0.01V。完成以下设计环节: 1)使用Altium Desinger或Protel99SE开发工具,设计电路原理图与PCB制板图。 2)使用Uvision2开发平台,采用C语言或汇编语言设计软件程序。 3)使用PROTEUS仿真软件,设计仿真原理图并运行软件程序,完成系统仿真。2. 系统的组成及工作原理2.1电路原理图图2.1 电路原理图2.2 A/D转换原理 模拟量可以是电压、电流等电信号,也可以是压力、温度、湿度、位移、声音等非电信号。但在A/D转换前,输入到A/D转换器的输入信号必须经各种传感器把各种物理量转换成电

3、压信号。 A/D转换器的工作原理:采用逐次逼近法,逐次逼近式A/D是比较常见的一种A/D转换电路,转换的时间为微秒级。逐次逼近法转换过程是:初始化时将逐次逼近寄存器各位清零;转换开始时,先将逐次逼近寄存器最高位置1,送入D/A转换器,经D/A转换后生成的模拟量送入比较器,称为 o,与送入比较器的待转换的模拟量i进行比较,若oi,该位1被保留,否则被清除。然后再置逐次逼近寄存器次高位为1,将寄存器中新的数字量送D/A转换器,输出的o再与i比较,若o0;i-)for(j=250;j0;j-);void display()unsigned long temp;unsigned char DATA,d

4、igit4;unsigned int k,l;DATA=P0;/save AD datatemp=DATA;/the temporary variable temp=temp*1000/51;/AD formula:D=A*5/255digit0=temp/1000;/the thousands placedigit1=temp%1000/100; /the hundreds placedigit2=temp%1000%100/10; /the tens placedigit3=temp%1000%100%10;/the ones placeDATA=P2; /save P2for(k=0;k

5、10000000;k+)/*lighten each LED and equal the below for loopP1=LEDdigit0+0x80;P2_4=0;P2_4=1;P1=LEDdigit1;P2_5=0;P2_5=1;P1=LEDdigit2;P2_6=0;P2_6=1;P1=LEDdigit3;P2_7=0;P2_7=1;*/for(l=0;l4;l+)P2=P2|0xF0;/avoid LED residualP1=LEDdigitl+0x80*(l=0);/LED codeP2=DATA&CHECKl;/choose LED channelP2=DATA;/restor

6、e P2 void main()CHANNEL=0xF8;/AD channel 0ST_ALE=0;/START and ALE defaultOE=0;/OE defaultTMOD=0x02;/T0 operate in mode 2 TH0=0xFF;/auto load valueTL0=0xFF;/default valueEA=1;/all interrupt enableET0=1;/T0 interrupt enableTR0=1;/T0 runwhile(1)P2=CHANNEL;/choose AD channelST_ALE=1;/lock the AD channel

7、 addressST_ALE=0;/AD runwhile(EOC=0);/wait until AD overOE=1;/enable to transmit AD datadisplay();/view the AD result and diaplay LED delay(250);/delay to prepare for next AD channelOE=0;/forbit to transmit AD data/*if(CHANNEL=0xFF)CHANNEL=0xF7;/AD channel loopCHANNEL+;/next AD channel*/void T1_TIME

8、() interrupt 1 using 0CLK=!CLK;/CLK 500 kHz 6.系统仿真调试6.1仿真原理图设计图6.1 仿真原理图6.2 与程序代码链接6.2.1运用keil uVision4生成.hex文件并链接 新建一个工程的步骤:(1)新建一个文件夹,放置工程文件,避免与其他文件混淆,如新建文件夹project 1;(2)点击桌面keil 图标,出现启动界面如图6.2:图6.2 keil启动界面(3)点击“project - New uVision Project”新建一个工程,如新建工程project 1,并将其保存在文件夹project 1中:图6.3 新建工程界面(4

9、)弹出一个框,在CPU类型下我们找到并选中“Atmel”下的AT89S51或AT89S52:图6.4 选择芯片型号(5)点击file,新建文件,并将其保存,如果是C语言,则将文件后缀改为 .c 并保存,如果是汇编语言,将后缀改为 .asm 后保存。(6)将保存好的文件将添加进工程,右击project窗口中的Source Group 1,在打开的菜单中选择” Add File to Group Source Group 1”保存的文件添加进来:图6.5 添加文件至工程添加文件至工程中后即可点击添加的文件进行编程。对程序进行编译,成成文件中包含.hex格式文件。按后按.hex格式文件所在路径链接仿

10、真电路。6.3 仿真运行结果链接后即可获得结果,结果显示在LED数码管上,如图6.1所示,测得的电压为2.49V,与实际电压值相比较,其值在误差允许范围内,故其结果正确。7.心得体会 通过此次课程设计,学到了不少的东西,在此期间,我们通过网上搜索资料,逛图书馆,看视频教程了解本次课程设计的相关知识,真的使人受益匪浅,收获颇多!通过大家的努力,在同学和指导老师的帮助下,成功的完成了本次课程设计。 通过对数字电压表的设计,让我真正的了解了数字电压表的工作原理,另外以前岁单片机就有一定的认识及应用,这次课程设计更加加深了自己对单片机应用技术的掌握,虽然以前就做过一些单片机制作,并且对单片机C语言的应

11、用并不陌生,但是本次设计中系统,纤细的设计工作使我更加深刻的掌握了单片机设计的一些细节,尤其是对A/D 转换技术的掌握。 这次课程设计所涉及的知识虽然并不是很全面,但是同样让我受益匪浅,尤其是在做课程设计的同时,让我找到了自己的一些不足之处。并在做课程设计时让我觉得用平时所学,真的的接触一些东西时,是多么的快乐,动手之后完全没有了在课堂上学习时的枯燥,这样能够更快的吸收知识。另一方也让我看到了交流的重要性,又不懂得时候,和同学交流解决问题可以高效的解决问题。8.参考文献1. 谢维成 杨加国(主编)单片机原理与应用及C51程序设计清华大学出版社2. 刘坤(主编)51单片机典型应用开发大全中国铁道出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号