《(数控加工)数控直流稳压电源精编.》由会员分享,可在线阅读,更多相关《(数控加工)数控直流稳压电源精编.(20页珍藏版)》请在金锄头文库上搜索。
1、(数控加工)数控直流稳压电源目录壹、前言2二、总体设计方案32.1方案论证32.2方案比较及选择4三、单元模块设计63.1电压调节电路63.2LM317标准电路63.3数码管显示电路73.4ST89C52最小系统8四、实验程序104.1延时模块104.2键盘扫描104.3数码管显示程序114.4利用按键调节输出电压值程序12五、硬件调试16六、心得体会17七、参考文献18八、附录19壹、前言随着现代科技的不断进步,高质量的生活无疑是人们追求的目标之壹,如今这个世界已近进入数字化的时代。数字化的产品也层出不穷,它已经深深的融入人们的日常生活、工作和学习当中。它所给人带来的方便也是不可否定的,而且
2、它让我们的生活更加简单,所以人们对数字化的电子产品要求和需要都不断提高。要为现代人工作、科研、生活、提供更好的更方便的设施就需要壹切向着数字化控制,智能化控制方向发展。其中基于单片机的电子计算器就是壹个典型的例子,它是以单片机为控制核心的智能仪器且且在各行各业中应用越来越广泛。基于单片机控制的电子计算器具有体积小、功能强、精确度高等优点。二、总体设计方案2.1方案论证方案壹:此方案采用8051、4X4键盘、74LS373、6264、液晶显示器LCD1602组成。其中74LS373是地址锁存器,它实质是壹个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要壹块74ls373
3、芯片。6264是8K*8位静态随机存储器芯片,采用CMOS工艺制造,单壹+5V供电,额定功耗200mW,典型存取时间200ns,28线双列直插式封装.方框图如图1所示。图1原理方框图方案二:此方案采用4X4键盘、STC89C52、数码管组成。在该方案中我们利用ADC0832将模拟信号转化为数字信号且和数码管相连将相应的电压值显示出来。方框图如图2所示。图2原理方框图方案三:此方案采用PS2键盘、STC89C52、LCD1602组成。方案三利用PS2键盘作为数字以及符号的输入,且通过单片机来控运算的过程,计算的过程以及结果由LCD1602显示出来。方框图如图3所示。STC89C52PS2键盘LC
4、D1602图3原理方框图2.2方案比较及选择方案壹由于用了4X6键盘所以外加了地址锁存器,6264采用的是5V的电源。电路连接比较复杂。因而不采用壹方案。方案二虽然能够利用4X4键盘来实现电路中必要数字符号的的输入,从而来达到计算的目的,且实验电路简单,但数码管的显示功能不强,显示的数字位数有限。因此不宜选择方案二。方案三,电路原理简单,成本低,方案简单易行,固选用方案三。三、单元模块设计3.1液晶显示电路1602能够显示2行、每行显示16个ASCII字符,且且能够自定义图形,只需要写入相对应字符的ASCII码就能够显示,使用上相对数码管更能显示丰富的信息,我们主要通过1602的显示程序来学习
5、壹下如何见时序图。下面是1602各引脚的功能,具体不同厂家生产的引脚可能不壹样,大家使用前要注意见厂家提供的资料。图壹D0D7端为8位数据口,进行数据传送,而RS、R/W、E端则配合能够做出不同的操作,对1602进行操作主要有四种,如下:1、读状态,输入:RSL,RWH,EH。输出:D0D7状态字2、写指令,输入:RSL,RWL,D0D7指令,E高脉冲。输出:无3、读数据,输入:RSH,RWH,EH。输出:D0D7数据4、写数据,输入:RSH,RWL,D0D7数据,E高脉冲。输出:无从之上能够见出,如果想对1602进行何种操作,只要按其相对应的操作规程来做即可。虽然之上有四种操作,但实际上归类
6、起来只有二种,壹种读壹种写。好了,我们接着见见,进行读和写时时序图:这张图初学者见起来可能有点晕,其实我们只要关注的地方是中间的ValidData即有效数据区,我们进行读或写,无非都是想进行数据的传送,在时序图中,为了见起来更清楚些,我们画上俩根红色,大家注意这个位置各个引脚的状态,先见读操作时序。在进行读操作的时候,RW置于1,RS则根据读的内容(状态或数据)置为1或0,注意见图中的A和B俩根红线,在A位置,E置为1,经过td时间后,能够在数据口读到正确的数据,由于td的时间极短(ns级),我们的单片机操作壹般是us级,所以能够不考虑这个时间差,在将E置为1之后,就能够紧跟着指令去读取数据,
7、在读到数据后,再将E置为0,经过THD2时间后,数据口上的数据失效。在进行写操作的时候,RW要置为0,RS根据写的内容不同(指令或数据)置为1或0,同时,大家注意C和D俩根红线,我们在将E置为1之前,要先将数据送到数据口上,然后,在C位置,将E置为1,经过tPW延时后,再将E置为0,在这个时间段内必须保证数据口上的数据稳定不变,为有效的数据。同理,由于tPW这些延时相对较短(ns级),所以在单片里也不必考虑延时问题。我们下面来见见,程序上如何做到。我们见下面俩个子程序,Read1602()用于读取1602的状态(读数据比较少用,这里不写了,大家自己改改就能够),且且将状态判断也写在这个子函数里
8、面。Write1602()用于写入数据到1602里面,写指令、数据共用壹个函数。大家对照图二的时序图见见是否壹致。为了防止读忙状态里陷入死循环,在Read1602()函数里加入壹个循环变量i,在读状态时,数据线最高位是由1602内部拉为低电平的(表示空闲),当器件发生问题或者1602没有接好时,程序就会在这里等待,所以,加入壹定时间限制是有必要的。之上是俩个基本的函数,在使用1602之前,必须对其进行初始化操作,初始化过程是往1602固定写入壹定的指令,里面包括指定使用模式、清屏等等,各种指令的含义我们在课程后附上详细说明,来见下面的程序(mDelay函数和以前课程壹样)。有了之上三个函数,我
9、们就能够把1602控制起来了。在1602上,分为二行,每行有16个字符位置,如何来在我们需要的位置上显示出对应的字符呢?我们先来见见这俩行对应的地址是什么。上图是1602显示RAM缓冲区对应的地址,要在对应的位置显示出字符,首先要写入壹个设置数据地址的指令码(80H地址),然后紧跟着写入要显示的数据即可。应用我们上面的Write1602()指令,执行下面二条指令。写指令:Write1602(0x80+地址,0)写数据:Write1602(字符ASCII码,1)为了更直观的应用,我们编写下面俩个函数,使用起来就更方便了。WrByte1602()用于在固定位置写入壹个字符,壹次只能写壹个,WrSt
10、ring1602()则是用来整行写入字符串的,壹次只能写壹行,字符串需要先定义好。这样,我们基本上就掌握了1602的控制显示了,另外仍有自定义图形的应用,壹些扩展指令的使用,大家能够见见详细的技术资料,自己尝试,这里不再逐壹说明。这壹课程到此结束,这课没有提供完整的程序,只有几个子函数,相信大家经过这么多课的学习,自己编写壹下应该不难了,大家实际试试,作为课后作业。3.2ST89C52最小系统STC89C52系列单片机是宏晶科技推出的新壹代超强抗干扰/高速/低功耗的单片机,指令代码完全兼容传统8052单片机,12时钟/其周期和6时钟/机器周期可任意选择,最新的D版本内部集成MAX810专用复位
11、电路。选用STC85C52单片机的理由:降低成本,提升性能,原有程序直接使用,硬件无须改动,所以此次试验选择此款单片机。STC89C52芯片引脚图如图7所示。图7STC89C52芯片引脚图四、实验程序4.1延时模块该延时函数利用俩个for循环来实现。voiddelay(uintn)ucharm;for(;n0;n-)for(m=0;m100;m+);/送液晶屏显示子程序/voiddisplay(ucharC)switch(C)case0:clear();break;case1:prodis();alldatacursor=0;wrdata(0);break;case2:/*显示等号结果*/pr
12、odis();wrdata(=);/kind=kind+10;position2=cursor;datajs();remove0();data3dis();break;case3:prodis();kind=kind+1;/加法运算,kind=1position1=cursor;wrdata(+);break;case4:prodis();alldatacursor=1;wrdata(1);break;case5:prodis();alldatacursor=2;wrdata(2);break;case6:prodis();alldatacursor=3;wrdata(3);break;cas
13、e7:prodis();kind=kind+2;/减法运算,kind=5position1=cursor;wrdata(-);break;case8:prodis();alldatacursor=4;wrdata(4);break;case9:prodis();alldatacursor=5;wrdata(5);break;case10:prodis();alldatacursor=6;wrdata(6);break;case11:prodis();kind=kind+3;/乘法运算,kind=25position1=cursor;wrdata(*);break;case12:prodis()
14、;alldatacursor=7;wrdata(7);break;case13:prodis();alldatacursor=8;wrdata(8);break;case14:prodis();alldatacursor=9;wrdata(9);break;case15:prodis();kind=kind+4;/除法运算,kind=125position1=cursor;wrdata(/);break;default:break;五、软硬件调试六、心得体会首先感谢学院领导给予我们比赛的机会,让我们能够利用空余的时间认识自我,充实自已,完善自我!其次特别感谢李涛老师,仍有各位师兄的耐心指导。通过本次培训我们真的获益良多!在本次设计过程中,我们对单片机都有了初步的了解、认识和应用。总的来说,这次课程设计让我受益匪浅,我深切体会到综合设计的重要性,它使我们能将所学知识系统化,掌握它们的用途和使用方法,且且联系理论和实践,更有助于我们吸收知识;且