




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子技术课程设计说明书1 引言家用电扇是生活中常见普遍的系统,然而,传统的家用电扇不具备自动转速的功能,人们需要手动调节电扇的转速,以达到舒适的风流量。因此,对家用电扇的功能不断进行改进和优化,本设计可以智能控制风速,有利于提高人们的生活水平,且有利于能源环保。家用电扇是一种利用电动机驱动扇叶旋转,来达到使空气加速流通的家用电器,主要用于清凉解暑和流通空气。广泛用于家庭,办公室,商店,医院和宾馆等场所。设计一种利用MCS-51系列单片机及相关元器件的家用风扇控制器。该控制器涵盖了三个主要的功能模块:风速设置,类型设置,停止设置。而且不同功能模块可以实现自由灵活的转换。该控制器自由灵活,功能丰富,实现了自动控制,具有深远的意义。2 设计目标利用MCS-51系列单片机及相关元器件设计并制作一个家用风扇控制器。3 设计要求3.1 控制面板要求 按钮三个,分别为风速、类型和停止;三个LED指示灯用于指示风速强、中、弱;另外三个LED指示灯用于指示类型为睡眠、自然和正常。3.2 电扇处于停转状态时所有指示灯不亮,只有按下“风速”键时,才会响应,进入起始工作状态;电扇在任何状态,只要按停止键,则进入停转状态。3.3 处于工作状态时(1) 初始状态为:风速-“弱”,类型-“正常”;(2) 按“风速”键,其状态由“弱” “中” “强” “弱” 往复循环改变,每按一下按键改变一次;(3) 按“类型”键,其状态由“正常” “睡眠” “自然” “正常” 往复循环改变;3.4 风速风速的弱、中、强对应于电扇的转动由慢到快。3.5 风速类型的不同选择分别为:(1) 正常电扇连续运转;(2) 自然电扇模拟自然风,即转4s,停8s;(3) 睡眠电扇慢转,产生轻柔的微风,运转 8s,停转8s;3.6 按照风速与类型的设置输出相应的控制信号4 总体设计本设计主要是用步进电机的控制来模拟家用风扇控制器,其原理结构如图l。其控制核心是89C51单片机,该控制器涵盖有三个主要功能模块:风速设置、类型设置、停止设置,而且不同功能模块中可以实现灵活自由的转换。图1 家用电扇原理框图上图的按键控制对应于三个按键,分别用来控制风速,风的类型,电机的运转,停止。按风速键,其状态由“弱”,“中”,“强” ,“弱”往复循环改变,每按一下按钮改变一次;按“类型”键,其状态由“正常” ,“睡眠”,“自然”,“正常” 往复循环改变;其中,风速的弱、中、强对应于电扇的转动由慢到快。图3 系统电路图5 硬件设计电扇模拟自然风,即本次课程设计任务主要基于89C51以及各种接口芯片结合汇编语言实现对家用风扇的控制器的模拟。由于本设计主要是用步进电机的控制来模拟家用风扇控制器,所以电路是在步进电机控制系统的电路作了一些修改。除利用了PC机本身资源外(如中断资源),还利用了平台上的TCON计数/定时器、8255并行接口单元,LED指示灯电路等,再加上电机的驱动电路,便构成以风扇电机控制电路。硬件原理图如图1: 图1 硬件原理图6 软件设计电扇模拟自然风,即本次课程设计任务主要基于89C51以及各种接口芯片结合汇编语言实现对家用风扇的控制器的模拟。我主要运用89C51结合汇编语言编写的软件来实现各种信号的处理与变换,以得到想要的控制信号,并用接口芯片8255A实现信号的输出与接收。6.1 设计思路控制系统分四个功能模块,分别是风速设置、类型设置、默认状态运行、退出系统,在前四个功能块中都设置了ESC键来取消或暂停执行当前操作。程序中同时提供三个操作界面,一个主菜单和两个子菜单界面,进行可视控制。(1)风速设置风速即为电机转速设置,风速分为强、中、弱三种,对应不同的电机转速。根据赋给计数器的计数初值,我们可以计算出步进电机各相脉宽信号的频率和电机转速,也可以反过来根据对电机转速要求,计算并调整计算初值。这里采用的是8253的0号计数器和方波产生方式,输入时钟为f=46875hz,设计数初值为n,要求转速为0.25转/秒,对四相步进电机而言即为5步/秒,则有:f / n = 5n=f/5=46875/5=9375反过来,当计数器初值确定时,决定了电机的转速,如计数初值为625时,有电机转速为1步每秒(本设计中的慢风速);当计数初值为125时,电机转速为375步每秒(本设计中的快快速)。具体设置初值及风速见表1。表1风速步速转速计数初值慢753.75625中1256.25375快37518.75125(2)风的类型设置风的类型有:正常、自然、睡眠三种。风的类型的不同选择,用FLAG0来记录状态:a) 正常 电扇连续运转。FLAG0=2b) 自然 电扇模拟自然风,即转4s,停8s。FLAG0=0c) 睡眠 电扇慢转,产生轻柔的微风,运转 8s,停转8s。FLAG0=1电机的运转是通过让89c51的P0口输出高电平到89C51的GATE0使其0号计数器继续工作,并开放中断进入循环等待中断状态。P0口为低电平使8253的0号计数器暂停计数,则无法产生中断信号,电机停止转动。电扇的运转和停转的时间是由89C51的通道1和通道2两个计数器一起来定时的。通道1的输入时钟为f=46875hz,设计数初值为46875,则会产生1s的定时。通道1的OUT1作为通道2的输入脉冲,输入的计数初值为N,则定时的时间为N秒。我们需要的是定时4s和8s,定时中断到修改89C51的P0口的输出的电平和下次计数的初值就可以实现风的不同类型。风的类型为正常时,不用启用计数器2产生中断,让计数器0一直运行。睡眠时,通道2的计数初值一直为8,不用修改。如果是自然就得修改了。(3)中断子程序1在由89C51定时器通道P0产生的中断子程序1中,将值为11001100B的NUM内存单元循环左移或右移一位,通过89C51的下P2口输出低四位,控制步进电机的相序变化,从而使电机连续转动。(4)中断子程序289C51定时器通道P2产生的中断子程序2中,修改输入到89C51的P0口的电平值,控制电机的转停,令NUM1=0,每次求反,输出到89C51的P0口。根据当前选择的风的类型FLAG0以及当前所处的状态,修改通道2的计数初值。(5)菜单界面设置利用DOS下的BIOS功能调用,设计出彩色的形象而又易于操作的界面,详细设计特点请参考课本上相关介绍。使用类型10H中断,可以实现对屏幕的完整的控制。常用的彩色文本功能的参数设置见表2。表2AH=0设置显示方式AL=3 8025 彩色方案 AH=1设置光标类型CH= 位 4-0为光标起始行CL= 位 4-0为光标结束行AH=2设置光标位置DH= 行 DL= 列AH=9在光标位置写属性/字符CX= 要写的字符数AL= 要写的字符AH=11选择彩色调色板BH= 调色板ID(0-127)BL= 调色板ID的颜色AH=19写字符串ES:BP= 指向字符串CX= 字符串的长度BH= 页号6.2步进电机的速度控制调节步进电机绕组通电时间,即可调整速度(频率)。设系统的CPU的频率为8MHZ,则时钟节拍为:0.125微秒。执行PUSHF、POPF、LOOP指令需23个节拍。延迟1秒要循环的次数: DELAY PROC NEAR PUSH CX STAR20T: MOV CX,347 ;送循环次数 LP1: PUSHF ;PUSHF、POPF、LOOP需23个节拍。 POPF LOOP LP1 POP CX RETDELAY ENDP6.3程序流程图(1)主程序流程图如图2 图2 主程序流程图6.4 按键判断控制模块三个按钮接在PC口的低三位,PC3接地,若风速键按下时,开关信号为1H,类型按下时,开关信号为2H,停止键按下时,开关信号为4H。开关模块判断开关状态2?4?1?风速控制模块类型控制模块停止模块返回6.5 风速模块切换流程 在风速切换中,在主函数中定义一个变量FLAGL,初始化为0并将其地址放入SI中,在弱风和中风模块中将SI加1,在强风模块置为零。进入风速模块后判断其大小,若为零则转入弱风模块,否则进入中风模块,以此类推。风速模块判断SI的值1?2?弱风模块中风模块强风模块点亮“弱”灯,SI加一,设定转速值,步进电机转一圈按键判断控制模块0?图4:风速切换模块6.6 停止控制模块停止控制模块PB口清零,灯全灭电机停止子程序返回主程序开头start图6:停止控制模块停止状态主要实现风扇暂时性的停止运行,只有在风速键按下才能继续运行。此模块结束后返回start,在start会对已运行的风扇停止后所有状态进行重新赋值,以保证再次运行后能按初始状态运行。7 程序清单DSEG SEGMENT CLOCK0 EQU 290H CLOCK1 EQU 291H CLOCK2 EQU 292H CLOCKC EQU 293H PA55 EQU 280H PB55 EQU 281H PC55 EQU 282H P55C EQU 283H INTNUM DB 0DH MAMES DB 0DH,0AH DB*WELCOME TO FUN CONTROL SYSTEM*,0DH,0AH,$ MAMU DB 1.SET UP SPEED,0DH,0AH DB 2.ROTATING WITH FIXED STEP,0DH,0AH DB 3.CONTINUAL ROTATING,0DH,0AH DB 4.EXIT,0DH,0AH DB *PLEASE INPUT CHOICE:$ MENU1 DB 0DH,0AH,0DH,0AH DB F6.ROTATING SPEED IS 3.75R/S,0DH,0AH DB F7.ROTATING SPEED IS 6.25R/S,0DH,0AH DB F8.ROTATING SPEED IS 18.75R/S,0DH,0AH DB INTER ESC TO EXIT,0DH,0AH DB *PLEASE INPUT CHOICE:$ MENU2 DB 0DH,0AH,0DH,0AH DB 1.CLOCKWISE,0DH,0AH DB 2.ANTI_CLOCKWISE,0DH,0AH DB INTER ESC TO EXIT,0DH,0AH DB *PLEASE INPUT CHOICE:$ MENU3 DB 0DH,0AH,0DH,0AH DB PLEASE INPUT THE NUMBER OF STEP:$ MENU4 DB 0DH,0AH,0DH,0AH DB CONTINUAL ROTATING!,0DH,0AH DB INTER ESC TO EXIT,0DH,0AH,$ EROMS DB 0DH,0AH DB YOUR CHOISE IS INVALID! PLEASE CHOOSE AGAIN,$ F0 DB 0DH,0AH DB ROTATING SPEED IS:$ F6 DB 3.75R/S,0DH,0AH,$ F7 DB 6.25R/S,0DH,0AH,$ F8 DB 18.75R/S,0DH,0AH,$ SPEDM DW F6,F7,F8 CLCMS DB 0DH,0AH DB DIRECTION IS CLOCKWISE,0DH,0AH,$ ANTMS DB 0DH,0AH DB DIRECTION IS ANTI_CLOCKWISE,0DH,0AH,$ QUITMS DB ENTER ESC TO EXIT,0DH,0AH,$ INTSEG DW ? INTOFF DW ? MCHOC DW STSED,STDIR,ROTFX,CTROT SPEDN DW 625,375,125 SPEED DW 46875 FLAG1 DB 0 FLAG0 DB ? BUFFER DB 4 DB ? DB 4 DUP(?) CW10 DW 10 INTIMR DB ? TURN DB 11001100B DSEG ENDS STACK SEGMENT PARA STACK STACK DB 100 DUP(?) STACK ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG,SS:STACK MAIN: MOV AX,DSEG MOV DS,AX MOV AH,35H MOV AL,0DH INT 21H MOV INTSEG,ES MOV INTOFF,BX PUSH DS MOV AX,CS MOV DS,AX MOV DX,OFFSET INTPROC MOV AH,25H MOV AL,0DH INT 21H POP DS IN AL,21H MOV INTIMR,AL AND AL,11011111B OUT 21H,AL MOV DX,CLOCKC MOV AL,00110110B OUT DX,AL MOV DX,P55C MOV AL,10000000B OUT DX,AL STI OMANU: MOV DX,OFFSET MAMES MOV AH,09H INT 21H MOV DX,OFFSET MAMU INT 21H MOV AH,01H INT 21H CMP AL,1 JB ERROR CMP AL,5 JA ERROR JE EXIT AND AL,0FH DEC AL MOV AH,00H SHL AX,1 MOV BX,OFFSET MCHOC ADD BX,AX CALL BX JMP OMANU ERROR: MOV DX,OFFSET EROMS MOV AH,09H INT 21H JMP OMANU EXIT: MOV AL,INTIMR OUT 21H,AL PUSH DS MOV DX,INTOFF MOV AX,INTSEG MOV DS,AX MOV AH,25H MOV AL,0DH INT 21H POP DS MOV AH,4CH INT 21H STSED PROC NEAR PUSH AX PUSH DX PUSH BX OMENU1: MOV DX,OFFSET MENU1 MOV AH,09H INT 21H MOV AH,00H INT 16H CMP AL,1BH JZ EXIT1 CMP AH,59 JB ERROR1 CMP AH,66 JA ERROR1 SUB AH,59 MOV BH,0 MOV BL,AH SHL BL,1 MOV AX,SPEDNBX MOV SPEED,AX MOV DX,OFFSET F0 MOV AH,09H INT 21H MOV DX,SPEDMBX INT 21H JMP EXIT1 ERROR1: MOV DL,0AH MOV AH,02H INT 21H MOV DL,0DH INT 21H MOV DX,OFFSET EROMS MOV AH,09H INT 21H JMP OMENU1 EXIT1: POP BX POP DX POP AX RET STSED ENDP STDIR PROC NEAR PUSH DX PUSH AX OMENU2: MOV DX,OFFSET MENU2 MOV AH,09H INT 21H MOV AH,01H INT 21H CMP AL,1BH JE EXIT2 CMP AL,1 JE CLFLG CMP AL,2 JE ANTFLG MOV DX,OFFSET EROMS MOV AH,09H INT 21H JMP OMENU2 CLFLG: MOV FLAG1,0 MOV DX,OFFSET CLCMS MOV AH,09H INT 21H JMP EXIT2 ANTFLG: MOV FLAG1,1 MOV DX,OFFSET ANTMS MOV AH,02H INT 21H JMP EXIT2 EXIT2: POP AX POP DX RET STDIR ENDP ROTFX PROC NEAR PUSH DX PUSH CX PUSH BX PUSH AX PUSH SI OMENU3: MOV DX,OFFSET MENU3 MOV AH,09H INT 21H MOV DX,OFFSET BUFFER MOV AH,0AH INT 21H MOV CL,BUFFER1 CMP CL,3 JA ERROR3 LEA SI,BUFFER ADD SI,2 MOV CH,00H MOV AX,00H NEXT: MUL CW10 MOV BL,SI AND BX,000FH ADD AX,BX INC SI LOOP NEXT MOV CX,AX MOV FLAG0,0 MOV DX,CLOCK0 MOV AX,SPEED OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,PA55 MOV AL,0FFH OUT DX,AL STI AGAIN1: CMP CX,00H JE EXIT3 MOV AH,06H MOV DL,0FFH INT 21H CMP AL,1BH JE EXIT3 CMP FLAG0,0 JE AGAIN1 DEC CX MOV FLAG0,0 JMP AGAIN1 ERROR3: MOV DX,OFFSET EROMS MOV AH,09H INT 21H JMP OMENU3 EXIT3: CLI MOV DX,PA55 MOV AL,00H OUT DX,AL POP SI POP AX POP BX POP CX POP DX RET ROTFX ENDP CTROT PROC NEAR PUSH DX PUSH AX MOV DX,OFFSET MENU4 MOV AH,09H INT 21H MOV DX,CLOCK0 MOV AX,SPEED OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,PA55 MOV AL,0FFH OUT DX,AL STI AGAIN2: MOV AH,06H MOV DL,0FFH INT 21H CMP AL,1BH JNE AGAIN2 CLI MOV DX,PA55 MOV AL,00H OUT DX,AL POP AX POP DX RET CTROT ENDP INTPROC PROC PUSH AX PUSH BX PUSH CX PUSH DX PUSH DS MOV AX,DSEG MOV DS,AX STI MOV DX,PC55 MOV AL,TURN OUT DX,AL CMP FLAG1,0 JE TNCLC ROL AL,1 JMP EXITI TNCLC: ROR AL,1 EXITI: MOV TURN,AL MOV FLAG0,1 CLI MOV AL,20H OUT 20H,AL POP DS POP DX POP CX POP BX POP AX IRET INTPROC ENDP CSEG ENDS END MAIN8 遇到的问题及解决方法在这次课程设计中,遇到了各种问题。因为以前的基本太薄弱,刚开始设计写程序的两天,遇到问题后往往是瞪着屏幕毫无办法,常常在一个小问题上一卡就是三四个小时,到后来渐渐学会了一些解决问题的思路和办法,节奏才渐渐加快。 首先是逻辑问题。写类型控制子模块的时候,已经根据流程图把程序写好,里面
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年宠物智能用品行业研发创新与市场适应性研究
- 2026届江苏省宿迁市宿迁中学高三物理第一学期期末教学质量检测模拟试题
- 2026届山东省东营市利津县一中高三物理第一学期期末质量跟踪监视试题
- 《为中华之崛起而读书》课件 部编语文四年级上册
- 中职护理考试题库及答案
- 纪检专项资金管理办法
- 窗口临时用工管理办法
- 网络安全赋能新质生产力
- 跨境犯罪防控合作-洞察及研究
- 制动系统环境适应性-洞察及研究
- 心衰中医护理课件
- 小学美术大单元教学设计与实施研究
- 2025广西公需科目真题续集(附答案)
- 2025中国人民抗日战争暨世界反法西斯战争胜利80周年课件PT
- 医德医风培训课件内容
- 《备课专业化》读书心得
- 《大学生创新创业基础》教案 第1课 大学生创新创业教育概论一
- CJ/T 120-2016给水涂塑复合钢管
- 盾构机施工工艺流程介绍
- 《界面设计》课件
- 腹腔镜胆囊切除术护理查房 课件
评论
0/150
提交评论