找回密码
 注册
关于网站域名变更的通知
查看: 698|回复: 1
打印 上一主题 下一主题

[毕业设计] 3D计步器的设计论文下载

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-12-26 14:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
3D计步器的设计论文下载
# d" d! ?0 w: }7 i1 C0 E: |5 |
2 y5 l+ ?8 w# f& z0 k5 K0 B+ j
- Y2 N1 `2 O/ B/ o/ g4 @! }
3D计步器部分程序:
( Z$ }4 R+ a. Q3 [* C9 s9 h
8 `4 C% A! A$ Z  ?* N

9 J7 I$ G. C" n7 a+ f/ Y$ X6 I#include "reg51.h" / V9 `8 Y" {* i& x% o& j4 q
#include "intrins.h"
, L8 k4 U1 V4 ]3 k  _8 x$ [#include <math.h>               
% s0 G6 D, s: A/ A3 M9 Z- J/ \2 c#include <stdio.h>            
1 l/ ~. z9 J; K& _" a#define FOSC 18432000L
% i! {3 t: T. B8 X$ ]! {2 L#define FOSC 11059200L          //晶振 11.0592M . ]$ [  F" b8 X9 a+ p
#define BAUD 9600 typedef unsigned char BYTE; typedef unsigned int WORD;
+ X; z2 e0 m/ m2 A* z  w#define uchar unsigned char uint unsigned int
- H+ E2 I3 N7 b" U3 T2 v* _! t* n
0 W2 B" S9 v) T/*Declare SFR associated with the ADC */
0 A6 {! `+ U7 b  S: H sfr AUXR1 = 0XA2; sfr ADC_CONTR = 0xBC; //ADC control register sfr ADC_RES = 0xBD; //ADC high 8-bit result register sfr ADC_RESL = 0xBE; 8 R7 _; J% Q3 ?+ ?0 H& W
sfr ADC_LOW2 = 0xBE; //ADC low 2-bit result register
. E0 m8 Y; m' }, [5 fsfr P1ASF = 0x9D; //P1 secondary function control register /*Define ADC operation const for ADC_CONTR*/
8 v7 V  k! S. I$ F#define ADC_POWER 0x80 //ADC power control bit ( n  y2 h# ?- k) ]6 v% J, G
#define ADC_FLAG 0x10 //ADC complete flag
4 _( Q8 F- j+ V1 H#define ADC_START 0x08 //ADC start control bit
* ^; I; X; Q  g4 }#define ADC_SPEEDLL 0x00 //420 clocks
' D- |+ E1 @# y* c/ p2 P# y  z& c#define ADC_SPEEDL 0x20 //280 clocks
( E" b% l; j; C  u! ~+ h#define ADC_SPEEDH 0x40 //140 clocks #define ADC_SPEEDHH 0x60 //70 clocks void InitUart();
# C# V7 A+ m3 e; ovoid InitADC();
8 i0 C% ~0 a6 V0 y; kvoid SendData(BYTE dat); 4 Z0 [; f7 ]! c" j8 z
int GetADCResult(BYTE ch);5 a  B1 p% M. B! ~/ x+ }7 V
void Delay(WORD n); 6 ~/ `* ?* ]6 G: ~
uchar ge,shi,bai,qian,wan;
( Q& [$ `/ S+ oVoidconversion(uint temp_data) { wan=temp_data/10000+0x30 ; temp_data=temp_data%10000; qian=temp_data/1000+0x30 ; temp_data=temp_data%1000; bai=temp_data/100+0x30 ; temp_data=temp_data%100; shi=temp_data/10+0x30 ; temp_data=temp_data%10; ge=temp_data+0x30; }! f! s. h7 ~4 n7 K4 ^  k

. C1 p% O: M! q& S* l//显示变量
2 Y. V9 J; j0 l3 a: q
! e$ y# t9 Q4 Q7 l' B: N8 V//取余运算 //取余运算 //取余运算 //取余运算6 f4 ~) {, I' ?9 H! [7 p, V- o
4 {  A, W4 |2 t" s- \  H
/*---------------------------Get ADC result ----------------------------*/
6 \3 K  {) G& |' H2 C6 i* f! Iint GetADCResult(BYTE ch) { int AD10bitResult; ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START; _nop_(); //Must wait before inquiry _nop_(); _nop_(); _nop_();
8 f* T8 j1 Z/ I7 P while (!(ADC_CONTR & ADC_FLAG));//Wait complete
" s' k- r7 E6 C9 U( u7 qflag ADC_CONTR &= ~ADC_FLAG; //Close ADC AD10bitResult=ADC_RES;
, v% m% b5 c4 o- H* T$ I' n7 w* P, P& }AD10bitResult<<=8; AD10bitResult|=ADC_RESL; return AD10bitResult;
: s0 Q; j. p, f+ ^+ W0 P2 j9 E) ?9 R7 ?5 q- g* R7 o' t4 [0 q
//Return 10BIT ADC result
$ o" k" u) b9 D. P5 u- V1 C
) ^7 T2 H' e7 n6 l% F5 T. J" f  M} /*---------------------------Initial UART ----------------------------*/ void InitUart() { SCON = 0x5a; //8 bit data ,no parity bit TMOD = 0x20; //T1 as 8-bit auto reload TH1 = TL1 = -(FOSC/12/32/BAUD); //Set Uart baudrate TR1 = 1; //T1 start running }) t, i+ a* a* u6 l

) W# c6 ^3 `- R  k8 C: i
. A0 f+ l4 s- }+ @+ |  Z/*---------------------------Initial ADC sfr ----------------------------*/ void InitADC() { P1ASF = 0xff;
- f1 |3 [( N  k8 V' N$ |* A
1 k! j# l# i6 N  k3 K//Open 8 channels ADC function. ~. S4 u; ?4 e

4 ?! d; i$ v) W5 hAUXR1=AUXR1|0X04; //ad 值左对齐 ; Z2 Y1 m* [% d
ADC_RES = 0; //Clear previous result ( E6 k( b) D# r0 P0 ]6 o3 Z
ADC_CONTR = ADC_POWER | ADC_SPEEDLL; Delay(2); //ADC power-on and delay } /*---------------------------Send one byte data to PC Input: dat (UART data) Output:----------------------------*/ 8 l% C$ l: d, r& R- E$ a( S% l# `
void SendData(BYTE dat) { while (!TI); TI = 0; SBUF = dat; } /*---------------------------Software delay function ----------------------------*/ $ T7 C& R; `1 d
void Delay(WORD n) { WORD x; while (n--) { x = 5000; while (x--); } } //***************************************************************************** * void main()
9 l6 J: ]4 I& T$ s; B
. Y. h$ w; J  }$ A; T4 y//Wait for the previous data is sent //Clear TI flag //Send current data& _8 h, a8 `, l. u9 g+ P; w% @% E
* x. S+ e( A$ K& T5 s# ^
{
7 Y+ i! _) R8 a9 p
: T8 ~- k$ u: W…………限于本文篇幅 余下代码请从论坛下载附件…………6 h# f5 l+ m" m: A1 @
9 C: H) a, p# H9 t/ ^$ p7 o; c. D
游客,如果您要查看本帖隐藏内容请回复
9 ~- J$ G. V  J7 j$ F

8 w% J9 c3 b/ K4 A& q
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-12 06:24 , Processed in 0.140625 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表