具体实现功能
具体功能:
设置三个按键,第一个按键按下电机正转,第二个按键按下电机反转,第三个按键按下电机停止。
设计介绍
单片机介绍
51单片是一种低功耗、高性能CMOS8位微控制器,具有?8K?在系统可编程Flash?存储器。在单芯片上,拥有灵巧的8?位CPU?和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32?位I/O?口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,三个16?位?定时器/计数器,一个6向量2级中断结构,全双工串行口。另外?STC89X51?可降至0Hz?静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU?停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。
设计思路
文献研究法:搜集整理相关单片机智能手环系统相关研究资料,认真阅读文献,为研究做准备;
调查研究法:通过调查、分析、具体试用等方法,发现单片机智能手环系统的现状、存在问题和解决办法;
比较分析法:比较不同单片机智能手环系统的具体原理,以及同一类传感器性能的区别,分析单片机智能手环系统的研究现状与发展前景;
软硬件设计法:通过软硬件设计实现具体硬件实物,最后测试各项功能是否满足要求。
设计内容
仿真图
本设计利用protues8.7软件实现仿真设计,具体如图。
Protues也是在单片机仿真设计中常用的设计软件之一,通过设计出硬件电路图,及写入驱动程序,就能在不实现硬件的情况进行电路调试。另外,protues还能实现PCB的设计,在仿真中也可以与KEIL实现联调,便于程序的调试,且支持多种平台,使用简单便捷。
程序
本设计由汇编语言编写,具体如下:
K1 EQU P0.0 K2 EQU P0.1 K3 EQU P0.2 ORG 0000H LJMP MAIN ORG 0100H MAIN:MOV SP,50H STOP:MOV P1,#0FFH ;步进电机停转 LOOP:JNB K1,MZZ2 ;是否K1按下,是则转正转模块 JNB K2,MFZ2 ;是否K2按下,是则转反转模块 JNB K3,STOP1 ;是否K3按下,是则转步进电机停转 JMP LOOP ;循环 STOP1:ACALL DELAY ;按K3键,消除抖动 JNB K3,$ ;K3放开否? ACALL DELAY ; 放开消除抖动 JMP STOP ; 步进电机停转 MZZ2:ACALL DELAY ;按K1键,消除抖动 JNB K1,$ ;K1放开否? ACALL DELAY ; 放开消除抖动 JMP MZZ ; 转步进电机正转模块 MFZ2:ACALL DELAY ;按K2键,消除抖动 JNB K2,$ ;K2放开否? ACALL DELAY ; 放开消除抖动 JMP MFZ ; 转步进电机反转模块 MZZ: MOV R0,#00H ;置表初值 MZZ1:MOV A,R0 MOV DPTR,#TABLE ;表指针 MOVC A,@A+DPTR ;取表代码 JZ MZZ ;是否取到结束码? MOV P1,A ;从P1输出,正转 JNB K3,STOP1 ; 是否K3按下,是则转步进电机停转 JNB K2,MFZ2 ; 是否K2按下,是则转反转模块 ACALL DELAY ; 步进电机转速 INC R0 ;取下一个码 JMP MZZ1 RET;步进电机反转模块程序如下所示。 MFZ:MOV R0,#05 ; 反转到TABLE表初值 MFZ1:MOV A,R0 MOV DPTR,#TABLE ;表指针 MOVC A,@A+DPTR ;取表代码 JZ MFZ ;是否取到结束码? MOV P1,A ;从P1输出,反转 JNB K3,STOP1 ; 是否K3按下,是则转步进电机停转 JNB K1,MZZ2 ; 是否K1按下,是则转正转模块 ACALL DELAY ; 步进电机转速 INC R0 ;取下一个码 JMP MFZ1 RET DELAY:MOV R5,#40 ;延时20ms DEL1:MOV R6,#248 DJNZ R6,$ DJNZ R5,DEL1 RET ;;控制代码表: TABLE:DB 0FCH,0F9H,0F3H,0F6H;;正转 DB 00H ; ;正转结束码 DB 0F7H,0F3H,0FBH,09H;;反转 DB 0FDH,0FCH,0FEH,0F6H; DB 00H; ;反转结束码 END ;程序结束
更多资料欢迎关注微信公众号“电子工程师成长日记”!
|