标题:
STC单片机制作磁悬浮程序
[打印本页]
作者:
rld11210
时间:
2018-7-8 11:34
标题:
STC单片机制作磁悬浮程序
单片机源程序如下:
;---------------------------------------------------------------------
;定义与 ADC 有关的特殊功能寄存器
ADC_CONTR EQU 0C5H ;A/D 转换控制寄存器
ADC_DATA EQU 0C6H ;A/D 转换结果寄存器
P1M0 EQU 91H ;P1口模式寄存器0
P1M1 EQU 92H ;P1口模式寄存器1
CCON EQU 0D8H
CMOD EQU 0D9H
CCAP0L EQU 0EAH
CCAP0H EQU 0FAH
CCAP1L EQU 0EBH
CCAP1H EQU 0FBH
CCAPM0 EQU 0DAH
CCAPM1 EQU 0DBH
PCA_PWM0 EQU 0F2H
PCA_PWM1 EQU 0F3H
CR EQU 0DEH
CL EQU 0E9H
CH EQU 0F9H
EPCA EQU IE.6
;---------------------------------------------------------------------
;---------------------------------------------------------------------
main:
; ACALL initiate_RS232
SETB P1.7 ;将 P1 口置高, 为 A/D 转换作准备
ORL ADC_CONTR, #80H ;1000,0000 打开 A/D 转换电源
MOV P1M0, #80H
MOV CMOD,#82H
MOV CCON,#00H
MOV CL,#00H
MOV CH,#00H
MOV CCAPM1,#42H
MOV PCA_PWM1,#00H
SETB EPCA
SETB EA
SETB CR
MOV 31H,#40H
main_loop1:
MOV ADC_CONTR, #0E7H ;1110,0000 清 ADC_FLAG, ADC_START 位和低 3 位
MOV ADC_DATA, #00 ;清 A/D 转换结果寄存器
ORL ADC_CONTR, #08H ;0000,1000 令 ADCS = 1, 启动A/D转换,
finishe:
MOV A, #10H ;0001,0000 测试A/D转换结束否
ANL A, ADC_CONTR
JZ finishe
ANL ADC_CONTR, #0E7H ;1110,0111 清 ADC_FLAG 位, 停止A/D转换
MOV A, ADC_DATA ;保存、返回 A/D 转换结果
CLR P3.7
clr c
subb a,#60h
jc bhx
mov a,#0
ljmp fsw
bhx: MOV A, ADC_DATA
clr c
subb a,31h
jnc fsw
mov a,#0
fsw: MOV CCAP1H ,a;#0Ch
MOV CCAP1L ,a
JKW: SJMP main_loop1
;---------------------------------------------------------------------
;---------------------------------------------------------------------
set_P1_IO_port: ;P1 口设置为普通 I/O 模式
MOV P1M0, #00H
MOV P1M0, #00H
ANL ADC_CONTR, #7FH ;0111,1111 关闭 A/D 转换电源
RET
;---------------------------------------------------------------------
initiate_RS232: ;串口初始化
CLR ES ;禁止串口中断
MOV TMOD, #20H ;设置 T1 为波特率发生器
MOV SCON, #50H ;0101,0000 8位数据位, 无奇偶校验
MOV TH1, #0FDH ;11.0592MHz 晶振, 波特率 = 9600
MOV TL1, #0FDH
CLR RI
SETB TR1
SETB ES ;允许串口中断
RET
;---------------------------------------------------------------------
Send_Byte: ;发送一个字节
CLR TI ;清零串口发送中断标志
;mov a,ADC_DATA
MOV SBUF, A
Send_Byte_wait: ;等待发送完毕
JNB TI, Send_Byte_wait
CLR TI ;清零串口发送中断标志
RET
;--------------------------------------------------------------------------
;---------------------------------------------------------------------
delay: ;延时
MOV R4, #1
delay_loop1:
MOV R2, #18H
MOV R3, #0
delay_loop2:
DJNZ R3, delay_loop2
DJNZ R2, delay_loop2
DJNZ R4, delay_loop1
RET
;---------------------------------------------------------------------
END
复制代码
所有资料51hei提供下载:
STC单片机做的上拉式磁悬浮程序.rar
(1.71 KB, 下载次数: 62)
2018-7-8 11:32 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
山青水秀
时间:
2018-11-13 14:44
正在研究磁悬浮,好料,参考一下。谢谢!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1