资源预览内容
第1页 / 共24页
第2页 / 共24页
第3页 / 共24页
第4页 / 共24页
第5页 / 共24页
第6页 / 共24页
第7页 / 共24页
第8页 / 共24页
第9页 / 共24页
第10页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
综合电子电路设计与调试实 验 报 告题目: 可编程顺序控制器 学院: 专业: 班级: 姓名: 学号: 2009年 11 月 30 日课 堂考 勤(20分)实 验报 告(20分)PCB制作、安装焊接软硬件调试(60分)总 评成 绩指 导教 师综合电子电路设计与调试 可编程程序控制器(一)研制意义在我们日常生活中,可编程顺序控制器的通用性极强,在工业和家电控制中经常采用顺序控制器,实现工作的节拍运行,也就是第一步工作完成了,才开始下一步,每一步都有持续的时间。作为传统继电接触控制的替代产品,这个系统由于它可以通过软件编程来改变控制过程,而且具有硬件电路简单,编程容易,抗干扰能力强及可靠性高等优点,并且非常适合于在恶劣的工业环境下使用。(二)研制任务a.研制一款基于AT89C51单片机、采用JQC-3F继电器和LCD1602C液晶显示器的可编程顺序控制器;b.硬件电路的设计与制作,软件程序的编写与调试;c.设计报告的撰写。(三)设计要求 a.键盘图例 键盘按键布局 键盘内码值(ASCII码) b.显示图例(四)系统硬件框图(五)硬件各单元电路设计及原理图 a.继电器输出单元电路由于AT89C51复位时P0口(接上拉电阻)为FFH,系统一开机,继电器触点就会闭合,因此在P0口的输出与ULN2003之间加了74LS04反向器,这样使得系统在开机时发光二极管就处于暗的状态。(1)若P0.0=1,则OUT1=0V 继电器的VCC和GND之间的电压差为12V 继电器线圈通电 常开触点闭和(AA为常开触点,B为常闭触点) LED亮。(2)若P0.0=0,则OUT1=12V 继电器的 VCC和GND之间的电压差为0V 继电器线圈不通电 常开触点不闭和(AA为常开触点,B为常闭触点) LED暗。b.继电器输出单元电路原理图 c.夜晶显示单元电路(1)AT89C51的P1.0P1.7控制LCD1602C液晶显示器的8根数据线(DB0DB7)。(2)AT89C51的P3.5P3.7分别控制LCD1602C液晶显示器的3条控制线(RS、R/W、E),其中P3.5控制RS,P3.6控制R/W,P3.7控制使能端口 E。d.液晶显示单元电路原理图e.键盘输入单元电路(1)系统中的键盘输入单元电路是采用44阵列键盘,与单片机AT89C51的P2口连接;(2)按键S1S15采用扫描方式得到键盘码;(3)按键S16作为单片机复位按键。f.键盘输入单元电路原理图g.电源保护电路(六)系统软件主程序流程图系统功能及工作过程描述:a.先接通电源,调整输入电压为5V左右,液晶显示器分两行显示Please Input和 Number:,我从键盘输入我的学号:06220404。弹出两行字母分别为:Name:Xuyanxin和Number:06220404;b.间隔60秒左右紧接着分两行显示PLEASE INPUT HOW和MANY STAGE:( ),输入数字2,弹出两行字母分别为:STEP_OUT_TIME和INPUT:。我从键盘输入1_1100_10,按输入键,接着输入2_0101_10,连续按输入键和执行键;c.可以观察到有四盏绿灯先是仅有前两盏亮,维持10秒后就是第2和第4盏灯亮,又维持了10秒,最后弹出了两行字母OVER和PLEASE RESET,结束整个测试过程。(七)系统调试 a.系统硬件调试(1)ULN2003的1脚为输入端,1016脚为输出端,8脚接地,9脚接电源(+12V);(2)若输入端1脚为低电平,则对应的输出端16脚输出为+12V,继电器不会动作。(继电器的VCC和GND之间的电压差为0V继电器线圈不通电常开触点不闭合);(3)若输入端1脚为高电平,则对应的输出端16脚输出为0V,继电器常开触点闭合。(继电器的 VCC和GND之间的电压差为+12V继电器线圈通电常开触点闭合)。b.系统软件调试(1)LCD显示:在任意位置显示任意字符或字符串;清屏,光标闪烁及移动;最后的实时输出显示。(2)显示按键对应的功能:当有键按下时,运行相应的程序,观察LCD上是否能显示键值或相应功能。可以同时观察DATA及SFR窗口中相应寄存器中的数据是否正确。c.系统综合调试(1)系统上电时,LCD上显示“*PLEASE INPUT HOW MANY STAGE ()BU”。(2)按数字键,键入要求的步骤数,例如要实现3个步骤,则只需按在括号内键入3就可以了,输入后按确认键。(3)接着输入控制数据,每输入一个步骤后按输入键,可以在RAM数据窗口查看每一步数据是否已保存。(4)按执行键,按下此键后,系统就会按照输入的数据执行,控制每一步的工作时间和继电器状态,并且会在LCD上显示出来。d.调试的主要事项(1)调试使用仪器:万用表,电压电流输出器,起子,测试探头,以及Proteous和Keil软件;(2)调试过程中出现的故障,原因及解决方法:当接通电源后,接在电源旁边的红灯并没有亮,经过发现是因为正负极搞错了,于是我又重新参看PCB原理图,找到正极的准确位置,把原来的灯取出来,然后又焊上了一个,结果红灯一接通电源就亮了;当前期软件显示正确无误的前提下,结果出现了四盏绿灯没有按照预测的那样亮起来,原因是我用的是AT89C51的芯片,但是里面烧写的程序中关于倒计时的部分是不能在其中实现的,这能在AT89C52芯片中才可以的,结果通过换芯片,四盏绿灯按照程序准确的显示了亮灭情况;此外,在调试软件程序编程过程中,一开始总是实现不了输入学号后弹出姓名和学号,原来是因为我对于Keyscan这个函数的调用不是很熟悉,经过老师的指导和协助,最终我编好了整个程序,并在Proteous中进行了仿真,一切都显示正确。(七)设计电路的优缺点及自身收获和体会 a.电路的优缺点: (1)电路的优点:这次试验研制的是一款基于AT89C51单片机、采用JQC-3F继电器和LCD1602C液晶显示器的可编程顺序控制器,它的设计电路简单易行,功能较强。由于采用编程来控制要实现的目的,具有很大的灵活性,可以通过变换程序达到多种功能; (2)电路的缺点:这次试验我们采用2K的电阻代替了阻值较小的电阻,因此使得四盏绿灯亮度不够。本次没有采用继电器,容易使四盏绿灯的电压不是很稳定。而且本次试验没有使用继电器,使绿灯的电压不能很稳定。 c.试验过程中的收获和体会 在此次试验中,我学会了如何运用Proteous和Keil软件调试程序,懂得了一些基本的函数调用方法和一些新函数的使用(如Keyscan函数的使用),看到自己编写的程序仿真成功,让我很开心,尝到了学习的乐趣和成就感。当然,在调试过程中,我发现我的红灯不亮时,原因竟然是因为我的正负极接错了,所以我总结了一下自己,焊板时一定要参照PCB原理图,认真仔细,关注每一个引脚,相信我以后会做的更好。 (八)附录 a.硬件电路原理图和PCB图 (1)完整的硬件电路原理图 (2)PCB原理图 b.软件程序源代码(核心程序) void yanxin() uchar j;uchar code row1=Name:Xuyanxin; /12个字符uchar code row2=Number:06220404;init(); /初始化液晶 write_com(0x01); write_com(0x0f); write_com(0x0c); for(j=0;j30;j+) delay(250); write_com(0x82); write_com(0x80+1); /向液晶发出命令,命令代码为0x80,表示设置光标在第一行的开始,见文档1602液晶说明.pdf的4.3.1节 for(j=0;j12;j+) write_shu(row1j); /向液晶提供需要显示的字符write_com(0x80+0x40+1);/向液晶发出命令,光标移动到第二行,并空出第一个字符 for(j=0;j15;j+) write_shu(row2j); /向液晶提供需要显示的字符 void Xu() uchar i,j,g,h;uchar code line1=Please Input; /12个字符 uchar code line2=Number:;init(); /初始化液晶 write_com(0x80); /向液晶发出命令,命令代码为0x80,表示设置光标在第一行的开始,见文档1602液晶说明.pdf的4.3.1节 for(i=0;i12;i+) write_shu(line1i); /向液晶提供需要显示的字符 write_com(0x80+0x40);/向液晶发出命令,光标移动到第二行,并空出第一个字符 for(i=0;i0) h=g; g=0; if(h=0x30 & h=0x39) if(q=1) write_com(0x0f); write_as(0x80+0x40+8+i,h); i+; q=0; /判断是否是确认键 if(h=12) break; h=0; void start()/开机提示,并输入步数 uchar i,b,temp0,temp1; uchar code start=PLEASE INPUT HOW; uchar code start1= MANY STAGE:( ); write_com(0x80); for(i=0;i16;i+)
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号