具体功能:
设置三个按键,第一个按键按下电机正转,第二个按键按下电机反转,第三个按键按下电机停止。
设计介绍
单片机介绍
51单片是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X51 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。
设计思路
文献研究法:搜集整理相关单片机智能手环系统相关研究资料,认真阅读文献,为研究做准备;
调查研究法:通过调查、分析、具体试用等方法,发现单片机智能手环系统的现状、存在问题和解决办法;
比较分析法:比较不同单片机智能手环系统的具体原理,以及同一类传感器性能的区别,分析单片机智能手环系统的研究现状与发展前景;
软硬件设计法:通过软硬件设计实现具体硬件实物,最后测试各项功能是否满足要求。
设计内容
01
仿真图
本设计利用protues8.7软件实现仿真设计,具体如图。
Protues也是在单片机仿真设计中常用的设计软件之一,通过设计出硬件电路图,及写入驱动程序,就能在不实现硬件的情况进行电路调试。另外,protues还能实现PCB的设计,在仿真中也可以与KEIL实现联调,便于程序的调试,且支持多种平台,使用简单便捷。
02
程序
本设计由汇编语言编写,具体如下:
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 ;程序结束