欢迎来到天天文库
浏览记录
ID:58863745
大小:195.00 KB
页数:5页
时间:2020-09-22
《基于51单片机的数字电压表.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、课程设计题目数字电压表学生姓名张玉龙学号学院信息与控制学院专业测控技术与仪器指导教师葛化敏 二O一一年六月三十日基于51单片机的数字电压表一、设计内容:先在proteus上进行软件仿真设计,在仿真实现的基础上,要求完成部分硬件模块的制作和系统联调,实验内容为设计一个数字电压表,实现从模拟信号输入到数字信号输出的基本功能。二、设计要求:采用51系列单片机和ADC设计一个数字电压表电路,通过调节滑动变阻器改变电压,在LCD液晶屏上显示其相应的电压值,要求电压精确到小数点后第四位,显示格式为,LCD第一行前一段为
2、“”(班级同学张玉龙的学号),后一段则为“V:”(电压单位);第二行的前一段为“Class2”(班级2班),后一段则显示电压值,单位为“V”。三、设计原理:通过在Keil软件对单片机AT89C52进行编程,硬件电路中单片机与ADC0804及LCD显示屏连接。P0与ADC0804相连接,P1与LCD连接。通过start()子程序启动ADC0804,通过init()子程序初始化LCD。模拟信号通过ADC0804的VIN+引脚输入到ADC0804中转换为数字信号,P0获得此数字量后,经过处理得到每位的数据后,通过
3、P1口写数据到LCD屏上。51系列单片机A/D电压输入复位电路晶振电路等LCD显示上图为基本的原理图四、实验电路图及仿真结果:五、程序代码:#include#defineucharunsignedchar#defineuintunsignedintsbitlcdrs=P3^0;sbitlcden=P3^1;sbitwrad=P3^6;sbitrdad=P3^7;uinttemp,a1,a2,a3,a4,a5,num;ucharcodetable[]=".";//显示数字ucharcodet
4、able1[]="V:";ucharcodetable2[]="Class2";voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=100;y>0;y--);}voidstart()//启动AD{wrad=1;wrad=0;wrad=1;}voidwrite_command(ucharcom)//写命令{lcdrs=0;P1=com;delay(2);lcden=1;delay(2);lcden=0;}voidwrite_data(uchardate)//写数据{l
5、cdrs=1;P1=date;delay(5);lcden=1;delay(5);lcden=0;}voidinit()//lcd初始化{lcden=0;write_command(0x38);//设置16x2显示write_command(0x0c);//设置光标write_command(0x06);//写字符指针加1,光标加1write_command(0x01);//清屏}voidmain(){init();//LCD初始化write_command(0x80);//LCD写地址for(num=0;
6、num<15;num++){write_data(table1[num]);delay(5);}while(1){start();//启动ADdelay(50);rdad=0;//rd低脉冲读数据delay(50);temp=P0;a1=(temp*50000/255)/10000;//区分位数,最高位255*50000/255/10000=5.0000Va2=(temp*50000/255)%10000/1000;a3=(temp*50000/255)%1000/100;a4=(temp*50000/25
7、5)%100/10;a5=(temp*50000/255)%10;write_command(0x80+0x40);for(num=0;num<7;num++){write_data(table2[num]);delay(5);}write_command(0x80+0x49);//LCD写地址write_data(table[a1]);delay(1);write_data(table[10]);delay(1);write_data(table[a2]);delay(1);write_data(tabl
8、e[a3]);delay(1);write_data(table[a4]);delay(1);write_data(table[a5]);delay(1);write_data('V');delay(1);}}六、心得体会:课程设计中不得不遇到一些问题,但只要自己有恒心有毅力,终究会克服一切困难;在设计中我们要学会运用keil软件及protues软件对我们设计的电路不断地进行仿真、调试和修正,遇到程序问题时我们应
此文档下载收益归作者所有