《单片机原理及应用课程设计恒张力控制系统.doc》由会员分享,可在线阅读,更多相关《单片机原理及应用课程设计恒张力控制系统.doc(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机原理及应用课程设计项目名称: 恒张力控制系统 姓名: 学 院: 机电学院 专 业: 机械电子工程 学 号: 摘要:1一课程设计的要求、目的和意义2课程设计要求:2课程设计的目的与意义:2二:总体方案的设计:3外围系统设计:3系统结构框图:4工作原理介绍:4三:各单元硬件设计说明5单片机的选择:5键盘与LED驱动芯片的选择:7转换芯片的选择:10转换芯片的选择:11看门狗芯片的选择:13注:15四:软件设计与说明16五程序20摘要:张力控制,通俗地讲,就是要控制卷取物体时保持物体相互拉长或者绷紧的力。张力应用于最广泛的造纸、纤维、塑料薄膜、电线、印刷品、磁带等轻工业中,带材或线材的收放卷张
2、力对产品的质量起着至关重要的作用。在收卷和放卷的过程中,为保证生产的质量及效率,保持恒定的张力是很重要的。本系统采用人及交互式的控制方法,由使用者输入设定张力值,通过磁粉制动器、传感器、转换芯片与单片机组成一个闭环系统,使张力恒定在设定值,达到恒张力控制的效果。关键词:张力控制、恒张力、闭环、单片机一课程设计的要求、目的和意义1.1课程设计要求:设计并制作一个基于单片机的恒张力控制系统。通过单片机与AD,DA转换芯片组成一个闭环系统,使系统张力恒定在由控制者设定的值。1.2课程设计的目的与意义:课程设计是让我们熟练掌握课本上的一些理论只是,课程设计也是一个学习新知识、巩固加深所学课本理论只是的
3、一个过程,他培养我们的综合运用能力,独立思考能力和解决问题的能力。加深我们对单片机原理与应用课程的理解。二:总体方案的设计:2.1外围系统设计:本系统在线上安装一个力传感器,使传感器两边的线呈120度,即可使传感器所测得的压力等于线的拉力,将力信号传入基于单片机的张力控制系统,通过一系列的数据处理,输出控制电信号到安装在防线盘轴上的磁粉制动器调节轴转动的阻力,从而达到恒张力控制(如所示图1)。张力控制系统磁粉制动器力传感器线放线盘图12.2系统结构框图:单 片 机力传感器AD转换芯片磁粉制动器DA转换芯片键盘、LED驱动电路看门狗张力系统由力传感器、粉制动器、单片机、AD转换芯片、DA转换芯片
4、、键盘、LED数码管、看门狗以及相关的驱动硬接电路等组成,其结构框图如图二所示。图22.3工作原理介绍:由按键驱动单片机中断,进入按键及显示程序,通过使用者输入数据并通知在LED上显示,输入数据储存在相关区域内备之后使用,返回到主程序后单片机接受由力传感器产生的经AD转换芯片转换后的数字力信号,通过与之前设定值的比较计算,得出控制信号,经DA转换芯片变为模拟电压信号输入磁粉制动器控制端。若没有键盘中断,则如此往复运行信号检测、运算、输出程序达到动态平衡。三:各单元硬件设计说明根据设计要求与思路,确定该系统的设计方案。硬件电路由单片机、AD转换芯片、DA转换芯片、键盘与LED驱动芯片、看门狗芯片
5、5大部分组成。3.1单片机的选择:AT89S51是美国ATMEL公司声场的低功耗,高新能CM058位单片机,片内含4k bytes的可系统编程Flash只读程序存储器,器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,价位低AT89S51单片机可以提供欧许多高性价比的应用场合,可灵活应用于各种控制领域。图3所示为采用双列直插式封装的AT89S51芯片管脚图。图3图4说明:OUTA0OUTA3与OUTB0OUTB3为输出线,通过74HC
6、573与排阻驱动八个LED数码管。SL0SL3通过74HC138译码,再经过74LS07Q驱动八个数码管,控制显示数码管的位置。4*4键盘的行由RL0RL3识别,列由SL0SL2识别。IRQ脚为中断信号输出线,当有键按下,输出中断信号,申请单片机跳转到键盘识别与LED显示程序。图5所示为8279与键盘及部分LED数码管接线图,受篇幅限制只两联个数码管作为示意。图5键名K01K02K03K04K05键值0C0H0C8H0D0H0D8H0C1H键名K06K07K08K09K10键值0C9H0D1H0D9H0C2H0CAH键名键值表:表1图6TLC1543的串行通讯依据其时序图进行,如图7。图73.
7、4DA转换芯片的选择:TLC5615是一个串行10为DAC芯片,新能比早期电流型输出的DAC要好。只需要通过3根串行总线就可以完成10位数据的串行输入,易于和工业标准的微处理器或微控制器(单片机)接口,适用于电池供电的测试仪表、移动 ,也适用于数字失调与增益调整以及工业控制场合。图8所示为TLC5615封装引脚图。图8说明:AGND为模拟地输入端,REFIN为基准电压输入端,OUT为模拟电压输出端。他们之间的关系公式为:(其中N为输入的二进制数)TLC5615的时序逻辑图如图9所示。图9TLC5615的通讯与TLC1543类似,也是十个时钟信号为一个周期,但是由于前者为单通道转换芯片,顾无需输
8、入地址信号,如图9所示,每个时钟上升沿锁存DIN信号。3.5看门狗芯片的选择:看门狗芯片使用MAX8131,其特点有:1.加电、掉电以及供电电压下降情况下的复位输出,复位脉冲宽度典型值为200 ms。2. 独立的看门狗输出,如果看门狗输入在16 s内未被触发,其输出将变为高电平。3. V门限值检测器,用于电源故障报警、电池低电压检测或5 V以外的电源监控。 4. 低电平有效的手动复位输入。5. 8引脚DIP封装。(如图10所示)图10引脚功能为:(1)手动复位输入端(MR)当该端输入低电平保持140 ms以上,MAX813L就输出复位信号.该输入端的最小输入脉宽要求可以有效地消除开关的抖动。
9、与TTL/CMOS兼容。(2)工作电源端(VCC):接+5V电源。(3)电源接地端(GND):接0 V参考电平。(4)电源故障输入端(PFI)当该端输入电压低于125 V时,5号引脚输出端的信号由高电平变为低电平。(5)电源故障输出端(PRO )电源正常时,保持高电平,电源电压变低或掉电时,输出由高电平变为低电平。(6)看门狗信号输入端(WDI)程序正常运行时,必须在小于16 s的时间间隔内向该输入端发送一个脉冲信号,以清除芯片内部的看门狗定时器。若超过16 s该输入端收不到脉冲信号,则内部定时器溢出,8号引脚由高电平变为低电平。(7)复位信号输出端(RST)上电时,自动产生200 ms的复位
10、脉冲;手动复位端输入低电平时,该端也产生复位信号输出。(8)看门狗信号输出端( WDO)正常工作时输出保持高电平,看门狗输出时,该端输出信号由高电平变为低电平。3.6注:以上的所有串行通讯芯片全都共用同一条时钟线与数据线,通过线选法来选中不同的芯片进行操作,从而达到节省引脚资源的目的。四:软件设计与说明主程序及各子程序的程序流程图如下所示(DA转化较简单,不予画出):开始初始化调用AD转换子程序调用数据处理子程序调用DA转换子程序图11:主程序流程图开始初始化设置为读键盘功能读取输入值切换到显示功能显示输入值回到主程序图12:外部中断键盘LED程序开始读取数据处理数据将数据存放在指定区域中备用
11、回到主程序是否转换完是否图13:AD转化流程图开始处理键盘输入数据将10位AD数据转化成8位将键盘输入值减去AD转化值回到主程序是正是负?输出值加上差输出值减去差正负图14数据处理流程图五程序ORG 0000HLJMP MAINORG 0013HLJMP INT1ORG 0003HLJMP INT0MAIN:主程序开始MOV IE,#85H;打开中断总开关和两个外部中断MOV IP,#01H;设中断0为高优先级,1为低优先级LCALL ADCHANGE;调用AD转换子程序LCALL DATATREAT;调用数据处理子程序LCALL DACHANGE;调用AD转换子程序SIMP MAININT0
12、:外中断0RETI*ADCHANGE:SETB DACSORG 0100HADMAIN:ADLOOP1:CJNE P1.1,#1H,ADLOOP1;查看是否转换完,若没有,则等待 MOV SP,#60H MOV A,#0FFH CLR CLK CLR ADCS SETB DATA1 MOV R5,#8ADCONVTER:PUSH ACC CLR ACC CLR ADCS ADLOOP:MOV C,DATA;读取前8位数据到A中 RLC A SETB CLK NOP CLR CLK DJNZ R5,ADLOOP;读后两位存放在B中 MOV C,DATA MOV B.1,C SETB CLK NO
13、P CLR CLK MOV C,DATA MOV B.0,C SETB CLK NOP CLR CLK;数据处理 RL A RL A MOV B.3,C MOV ACC.1,C MOV B.2,C MOV ACC.0,C;把低八位数据放到2FH单元 MOV 2FH,A;把高八位数据放到2EH单元 MOV A,B RR A RR A ANL A,#03H MOV 2EH,APOP PSWPOP ACC RET*INT1:PUCH ACC PUSH PSW CLR EA PUSH PSW PUSH ACC SETB EAMOV DPTR,#7FFFH;置8279命令/状态口地址 MOV A,#0D
14、1H ;置清显示命令 MOVX DPTR,A ;送清显示命令WEIT:MOVX A,DPTR ;读状态 JB ACC.7,WEIT ;等待清显示RAM结束 MOV A,#34H ;置分频系数,晶振频率12MHZ MOVX DPTR,A ;送分频系数 MOV A,#40H ;置键盘/显示命令 MOVX DPTR,A ; MOV IE,#84H ;允许8279中断键盘中断子程序如下:KEY:PUSH PSW PUSH DPL PUSH DPH PUSH ACC PUSH B MOV DPTR,#7FFFH ;置状态口地址 MOVX A,DPTR ;读FIFO状态 ANL A,#0FH ; JZ P
15、KYR ; MOV A,#40H ;置读FIFO命令 MOVX DPTR,A ; MOV DPTR,#7FFEH ;置数据口地址 MOVX A,DPTR ;读数据 MOV R3,#6 MOV R0,#30H LJMP KEY1 ;转键值处理程序PKYR:POP B POP ACC POP DPH POP DPL POP PSW LCALL DISKEY1:CJNE A,#0C0H,KEY2 MOV R0,#1 INC R0 DJNZ R3,KEY1 SJMP PKYRKEY2:CJNE A,#0C8H,KEY3 MOV R0,#2 INC R0 DJNZ R3,KEY1 SJMP PKYRKE
16、Y3:CJNE A,#0D0H,KEY4 MOV R0,#3 INC R0 DJNZ R3,KEY1 SJMP PKYRKEY4:CJNE A,#0D8H,KEY5 MOV R0,#4 INC R0 DJNZ R3,KEY1 SJMP PKYRKEY5:CJNE A,#0C1H,KEY6 MOV R0,#5 INC R0 DJNZ R3,KEY1 SJMP PKYRKEY6:CJNE A,#0C9H,KEY7 MOV R0,#6 INC R0 DJNZ R3,KEY1 SJMP PKYRKEY7:CJNE A,#0D1H,KEY8 MOV R0,#7 INC R0 DJNZ R3,KEY1 S
17、JMP PKYRKEY8:CJNE A,#0D9H,KEY9 MOV R0,#8 INC R0 DJNZ R3,KEY1 SJMP PKYRKEY9:CJNE A,#0C0H,KEY0 MOV R0,#9 INC R0 DJNZ R3,KEY1 SJMP PKYRKEY0:MOV R0,#0 INC R0 DJNZ R3,KEY1 SJMP PKYR显示子程序如下:DIS:MOV DPTR,#7FFFH ;置8279命令/状态口地址 MOV R0,#30H ;字段码首地址 MOV R7,#06H ;8位显示 MOV A,#90H ;置显示命令字 MOVX DPTR,A ; MOV DPTR,#
18、7FFEH ;置数据口地址 LP:MOV A,R0 ;取显示数据 ADD A,#0BH ;加偏移量 MOVC A,+PC ;查表,取得数据的段码 MOVX DPTR,A ;送段码显示 INC R0 ;调整数据指针 DJNZ R7,LP CLR EA POP ACC POP PSW ;出栈 SETB EA RETI SEG:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;用共阴极LED *DATATREAT:PUSH ACCPUSH PSWMOV R3,#4MOV R4,#2MOV A,31HRL ARL ARL ARL AMOV 31H,ADATALOOP
19、1:MOV A,31H RLC A MOV A,30H RLC A DJNZ R3,DATALOOP1;将键盘输入数据放入30H中MOV B,#4HMOV A,2EHDIV ABANL A,#03HMOV 2EH,AMOV 2FHDIV ABANL A,#0FDHMOV 2FH,ADATALOOP2:MOV A,2EH RRC A MOV 2EH,A MOV A,2FH RRC A MOV 2FH,A DJNZ R4,LOOP2;将AD装换输入的十位数转换为八位并且存放到2FH单元中CLR CMOV R5,CMOV A,30HSUBB A,2FH;将键盘输入值减去AD输入值MUL ABCJNE
20、 R5,#0,JIANADDC A,R1MOV R1,ASJMP DATALOOP3JIAN:XCH A,R1 SUBB A,R1 MOV R1,ADATALOOP3:POP PSW POP ACC RET*设转换之前把高8位放在R1中,把低4位放在R0的高四位中,其中底2位填充位为任意位,需要在运行此程序前处理好数据DACHANGE:SETB ADCSP1.4 EQU DACSP1.1 EQU CLKP1.2 EQU DINCLR CLKCLR DACS;此芯片必须在SCLK为低的情况下把片选拉低MOV R3,#8MOV A,R1ADLOOP1:RLC A MOV DIN,C SETB CLK NOP CLR CLK DJNZ R3,ADLOOP1 MOV R3,#4 MOV A,R0ADLOOP2:RLC A MOV DIN,C SETB CLK NOP CLR CLK DJNZ R3,ADLOOP2RET