已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告一、题目:基于单片机的数字电压表二、内容和要求:内容:利用带有ADC的 STC12C5A60S2单片机、1602LCD显示器设计一个数字电压表,要求:4位数码LCD显示,测量范围:05V。带8位LED。可自行添加器件实现其它功能。三、目的与意义:1、掌握单片机应用系统设计的基本方法;2、掌握模数转换电路原理及其应用;3、掌握单片机外围电路接口设计;4、掌握单片机应用软件编程的基本方法;5、掌握单片机应用系统制作、调试的基本方法。四、课程设计过程:1、总体方案与设计思路:系统主要功能:1、ADC转换;2、数据处理,包括乘除法;3、格式转换,二进制转十进制;4、LCD显示。主要器件:一、元件清单1、STC12C5A60S2()单片机1片、40脚集成电路插座1个2、12晶振1个、30p瓷片电容2个;3、LED:红、绿、黄各3个,蓝、白各1个(8个作为流水灯、交通灯、步进电机演示,要求至少4色);4、轻触开关5个(4个作为按键,1个作为复位);5、脚自锁电源开关1个;6、1k、4.7K排阻各1个、10k电阻1个、可调电阻1个;7、40脚排针、排插各1个;8、1602LCD;9、复位电路:22uf电解电容1个、1电阻个。10、电源每2人一组;11、USB转串口数据线每2人1条(TTL电平)二、需要自配的元件:1、22uf电解电容1个;2、3.5mm电源插座1个。电路设计思路:本次课程设计使用的单片机为STC12C5A60S2增强型单片机,带有ADC转换器,为8路电压输入型。输入口为P1口。P1口既可以设为I/O口,又可以设为A/D转换口。本次设计使用P1.0做为AD转换输入口,输入电压经一个10K限流电阻连接P1.0口,输入电压为系统电压,经一滑动变阻器接接到P1.0口。 LCD的数据/命令输入端口接下单片机的P0口,P0口接上一个1K的排阻作为上拉电阻。LCD的RS(数据/命令选择端4引脚)、RW(读写选择端5引脚)、E(使能信号端6引脚)分别接于P2的P2.0、P2.1、P2.2。四个轻触开关分别接在P2的4、5、6、7口。2、原设计Proteus原理图在以上电路中必须加入3.5mm电源插座和电源开关。3、电路原理图;4、PCB版图;四、软件设计:1)系统框图:输入电压ADC转换数据处理并送LCD显示 ADC转换:本次使用的单片机是带ADC转换的逐次比较型的ADC,ADC换口在P1口(P1.7-P1.0),有8路10位高速转换器。本次设计使用P1.0口作模拟电压输入,ADC将模拟电压转化为相应的数字量。 数据处理并LCD显示:ADC转换得到的二制数只是二进制数,还需要进一步处理得到十进数,并且进行精度处理,也就是课题要求的四位有效数据。对数据的处理按下工式式中D为ADC的转换的二进数,V为显示的数据。V设为浮点型数,乘以1000后强制转换为整型。则得到四位有效数据。再依次除于1000取商则得个位,取余除于100取商则得十分位,再取余除10则得百分位,取余则得千分位。将各位加0x30转化为ASCII码后送LCD显示。2)软件流程图子程序流程图主程序的流程图 Write_com()LCD写命令函数 write_data()LCD写数据函数Initlcd()LCD初始化函数 Initadc()ADC初始化函数 get_data()ADC启动函数 change_data()数据处理并显示函数 delay()延时函数开始Resl=ADC_RESresl=(resl0x=zx0结束y-x-YNYN源程序#include#defineuchar unsigned char#define uint unsigned intsbit lcdrs=P20; /LCD数据/命令选择端sbit lcdrw=P21; / LCD读写控制端sbit lcden=P22;/LCD使能信号端uchar code table1=channel 0 (0-5V);/LCD第一行显示uchar code table2=voltage:0;/LCD第二行显示void delay(uint z);/函数声明void write_com(uchar com);void write_data(uchar date);void initlcd();void initadc();void get_data();void change_data();void main()/主函数EA=0;initlcd();initadc();while(1)get_data();P3=ADC_RES;change_data(); void delay(uint z)/延时函数uint x,y;for(x=z;x0;x-)for(y=110;y0;y-); void write_com(uchar com)/ LCD写命令函数lcdrs=0;P0=com;delay(10);lcden=1;delay(10);lcden=0;void write_data(uchar date)/LCD写数据函数 lcdrs=1; P0=date; delay(10); lcden=1; delay(10); lcden=0;void initlcd()/LCD初始化函数uchar num;lcden=0;lcdrw=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);for(num=0;num16;num+)write_data(table1num);write_com(0x80+0x40);for(num=0;num9;num+)write_data(table2num);P3=0;void initadc()/ADC转换器初始化函数P1ASF = 0x01; ADC_RES=0;ADC_RESL=0; ADC_CONTR = 0x00;delay(5);AUXR1=0x00;void get_data()/ADC启动函数ADC_CONTR = 0x80;delay(5);ADC_CONTR |= 0x08;delay(5); while (!(ADC_CONTR &0x10 );ADC_CONTR=ADC_CONTR&0xef;delay(5); void change_data() /数据处理并显示函数 float vin;uint resl;uchar i;resl=ADC_RES;resl=(resl2)+ADC_RESL;vin=resl*5.0/1023;resl=(uint)(vin*1000);i=(uchar)(resl/1000);resl=resl%1000;i=i+0x30;write_com(0x80+0x48);write_data(i);write_data(.);i=(uchar)(resl/100);resl=resl%100;i=i+0x30;write_data(i);i=(uchar)(resl/10);i=i+0x30;write_data(i);i=(uchar)(resl%10);i=i+0x30;write_data(i);5、电路版制作调试过程1、PCB板的制作1)分析资料,设计电路,用Protel原理图在DXP中绘制原理接线图。 2)画好封装图后,将各封装导入对应的元件,将原理图导入PCB板中,手动调整好元件的位置,将同一功能的元件尽量放在一起,晶振和瓷片电容要放在一起且靠近单片机。在调整时需要注意元件之间的距离。然后进行自动布线,待自动布线完后,进行手动调整,尽量减少跳线。3)到实验室将板子做出来,需要注意的是在将PCB图过塑到板子是要小心,如果有断线要加墨使其连接。4)焊接元件前,先再次检查PCB板的线路有没有正确。待检查无误后,把元件焊上去,在焊完一部分时要检测有没有虚焊和短焊。2、PCB板的调试1)流水灯测试:编写流水灯程序,送P3口显示。ORG 0 MAIN:MOV DPTR,#TAB MOV R5,#71H LOOP:MOV A,#00H MOVC A,A+DPTR MOV P3,A ACALL DELAY ACALL DELAY INC DPTR DJNZ R5,LOOP LJMP MAINDELAY:MOV R7,#00H MOV R6,#00H DE:DJNZ R7,$ DJNZ R6,DE RET TAB:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH DB 0FFH,7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH DB 0FEH,0FFH,0FEH,0FCH,0F8H,0F0H,0E0H,0C0H DB 80H,00H,80H,0C0H,0E0H,0F0H,0F8H,0FCH DB 0FEH,0FFH,7FH,3FH,1FH,0FH,07H,03H DB 01H,00H,01H,03H,07H,0FH,1FH,3FH DB 7FH,0FFH,7EH,3CH,18H,00H,18H,3CH DB 7EH,0FFH,0FEH,0FCH,0FCH,0F9H,0F3H,0E7H DB 0CFH,9FH,3FH,7FH,0FFH,7FH,3FH,9FH DB 0CFH,0E7H,0F3H,0F9H,0FCH,0FEH,0FFH DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,00H DB 80H,40H,20H,10H,08H,04H,02H,01H,00H DB 01H,02H,04H,08H,10H,20H,40H,80H,00H DB 80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH END2)LCD测试;编写LCD驱动程序,让LCD显示一段字符测试程序#include#define uchar unsigned char#define uint unsigned intuchar code table=lizhongmin;uchar code table1sbit lcdrs=P20; /LCD数据/命令选择端sbit lcdrw=P21;/读写控制端sbit lcden=P22;/使能控制端uchar num;void delay(uint z) /延时函数uint x,y;for(x=z;x0;x-)for(y=110;y0;y-); void write_com(uchar com)/LCD写命令函数lcdrs=0;P0=com;delay(10);lcden=1;delay(10);lcden=0;void write_data(uchar date) /LC写数据函数lcdrs=1;P0=date;delay(10);lcden=1;delay(10);lcden=0; void init() /LCD初始化lcden=0;lcdrw=0;write_com(0x38);write_com(0x0e);write_com(0x06);write_com(0x01);write_com(0x80);void main() /主函数init();for(num=0;num10;num+)/显示第一行write_data(tablenum);delay(20); write_com(0x80+0x40);/显示第二行for(num=0;num11;num+)write_data(table1num);delay(20);while(1);测试结果:LCD第一行显示“oumeiqing”,第二行显示。3)数据处理:给一个二进制,代入计算公式转成电压送LCD显示。测试程序#include#define uchar unsigned char#define uint unsigned intsbit lcdrs=P20;sbit lcdrw=P21;sbit lcden=P22;void delay(uchar z) /延时函数uchar x,y;for(x=z;x0;x-)for(y=110;y0;y-);void write_com(uchar com) /LCD写命令函数lcdrs=0;P0=com;delay(10);lcden=1;delay(10);lcden=0;void write_data(uchar date) /LCD写数据函数lcdrs=1;P0=date;delay(10);lcden=1;delay(10);lcden=0;void initlcd() /LCD初始化 lcden=0; lcdrw=0; write_com(0x38); write_com(0x0e); write_com(0x06); write_com(0x01); write_com(0x80); void main() /主函数 float vin;uint resl;uchar i;initlcd();/LCD初始化resl=1023; /设一个十位二进制数vin=resl*5/1023.0;resl=(uint)(vin*1000);i=(uchar)(resl/1000);resl=resl%1000;i=i+0x30;write_com(0x80);write_data(i);write_data(.);i=(uchar)(resl/100);resl=resl%100;i=i+0x30;write_data(i);i=(uchar)(resl/10);i=i+0x30;write_data(i);i=(uchar)(resl%10);i=i+0x30; write_data(i);测试结果:当resl=1023时,LCD显示5.000;当resl=512时LCD显示2.500;当resl=0时;LCD显示0.000。6、制作作品
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 起重信号司索工(建筑特殊工种)考试题库附答案
- 2025年防震减灾自救救援知识考察试题及答案解析
- 2025年检验类之临床医学检验技术士真题库附答案
- 三种人安规考试题库及答案
- 铁路单招试题和答案
- 2025年龙矿安全培训考试题库及答案
- 2025建筑施工基础试题及答案
- 总工程师的薪酬与福利体系设计
- 新型半导体器件如GaN-SiC在电子产品中的应用选型指南工程师版
- 农村电商物流站面试技巧
- 智能医学职业规划
- 《金属材料及热处理》课件 项目5 金属的结晶过程与控制
- 2025年私人银行工行考试题库
- 2025至2030年广州物流业行业市场评估分析及投资发展盈利预测报告
- 销售部管理评审报告
- 火力发电厂分散控制系统技术条件DL/T 1083
- 安全风险辨识与管控制度
- 2025年全国新高考II卷高考全国二卷真题英语试卷(真题+答案)
- 天鹅会SPA中心员工手册
- 协会档案印章管理制度
- GA/T 2014-2023道路交通信号配时运行管理规范
评论
0/150
提交评论