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

单片机寄存器赋值问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-1-19 09:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
#include<STC15F2K60S2.h>1 e" |& e3 T% @- W6 H# r' O
#include<config.h>6 G' R6 r5 `. ^7 b. u! B
//×ó3ìDòμ÷óÃéùÃ÷2 W; H& B- o$ n( B+ u
extern void delay_time(unsigned int n );
# N) ?. n0 \8 k; j; x% }//¶¨òå1|Äü½Å; k- h8 G# z% }1 N, p4 Z% t
//sbit D1=P0;$ d7 d9 _% {) W8 F: x3 ~3 Y
/ ^3 u- o% a0 E5 q
//¶¨òå×Ö·ûòaò壬àyèçAÎaÕûDíμÄààDí
! \. q( j" v0 k* l//unsigned int a;) C/ `% ?' T% v2 o' W* f

  f7 N: w; b- t; W//Ö÷oˉêy£»
% z) @9 M- O. c4 Q) [+ b" Qvoid main()
$ m/ W0 @+ h5 k3 ]+ p. F; g. ^+ B{               
, W$ |7 [0 ^2 }6 f: V; n. t        P3 = 0x00;          K! h' I& z( T$ }$ C
        delay_time(1);
( K8 j) y; K; ?  C8 t$ l4 K        P3M0 |= 0x0C;   //sfr P3M0=0xB2;  /0000,0000 ¶Ë¿ú3ģ꽼Ä′æÆ÷0
) Z0 F8 i3 D, m6 ?$ K* v  j4 G        while(1)4 Q" ^6 x) e4 v. w3 }# P
        {  # v" y- s8 h# l1 Z, ?1 m) b
                pos = 1;6 b, S& r: W9 K. [4 c% l
                delay_time(10);
! ], S- q! I1 a, T2 o# V8 K                pos = 0;
  i9 {) w) r& B/ P+ Q! W/ S                delay_time(1);6 B4 ^0 h6 n, L0 N! G- ?
                neg = 1;- p8 L( Y9 P# d$ B% e
                delay_time(10);  O5 {/ }7 j" c+ w
                neg = 0;
/ y, v: Z% V/ R/ x                delay_time(1);+ _' W7 x6 Q( q3 S: Q* B+ i6 {
        }1 y& X" u2 {$ E; X! T( [
}' T, h, O9 d" l/ u2 S1 u
//′ËdelayoˉêyÖDμÄnÎaê±¼äμÄÃëêy£¬¼′n=5ê±£¬±íê¾Ñóê±5s£¬ÆäÖDn2»′óóú65535£»
4 Q# Q0 @1 h' |  d9 qvoid delay_time(unsigned int n )          4 g8 q7 ~# N; x! T" d4 U
{4 W' ~7 \/ [8 S( n# i7 i
        unsigned int x;
7 `' w! S! o: `$ ?: K- l. r        unsigned int y;
# P+ A6 m# a. e' h        unsigned int z;" V! J/ c$ T6 g" c( y$ _) u, \
        for(x=n;x>0;x--)
8 d* D: v' y8 ?# S1 y) l                {  [" B, N% \; Q* @  i
                        for(y=2;y>0;y--)        //′ËÎa1s£¬ê±ÖóÆμÂêÎa11.0592MHZ8 s9 S7 \5 q2 y, d' r8 U; {
                                for(z=57600;z>0;z--);
2 J: z1 N& I% ?; t- I9 ~; h                }7 S# p& P6 y1 m* p( Z# j7 S
}
& K9 B+ J8 M% J6 n( ^' o2 M以上是可以在硬件内出现想要的结果
% J: `* t6 u5 R2 T& ^9 l7 h#include<STC15F10x.h>
4 p1 T6 G. G7 r' v //×ó3ìDòμ÷óÃéùÃ÷
% {9 t  j+ N3 F0 G# s/ @7 G9 I void delay_time(unsigned int n );
, m' ~0 C' e# c( a//¶¨òå1|Äü½Å
; o4 Y9 ~0 v* T0 Q; x  l/ m//sbit D1=P0;7 s0 A" n5 M: W: ~$ L$ K
9 G- {3 d2 P( _' [4 M7 K9 r* x
//¶¨òå×Ö·ûòaò壬àyèçAÎaÕûDíμÄààDí$ c1 s$ j6 F+ O* _0 y
//unsigned int a;
+ n# X/ i: I  K6 C" E$ r2 M
. N- d; E2 ]' C2 X5 G. N//Ö÷oˉêy£»! u5 |; w* i: @/ a
void main()
. d* _3 w: y6 i& J$ i{        ! R, S2 K  e& {+ F
        P3 = 0x00;        ( f% `5 M3 |% H9 ^# R# p
        delay_time(1);
; f! }  r: R& T! ?1 s' l        P3M0=0x01;  //sfr P3M0        =   0xB2;   /0000,0000 ¶Ë¿ú3ģ꽼Ä′æÆ÷0
+ B( ]4 P0 N$ `/ G: A9 a9 l        while(1)2 k& `$ Z5 M1 O9 G9 R; k9 T. e
        {  
1 F- F, _  L& z" ^- f                P3=0x04;
/ d/ p+ V; e* c% X. l                delay_time(10);" z0 M% L, K/ G" Q% J- F9 I
                P3=0x00;
+ K5 y" s) V/ g$ H                delay_time(1);
, e4 l7 T. v7 V. M" j* H                P3=0x08;9 K+ x' S  K& _# \1 m
                delay_time(10);2 ]. I2 {  G+ H( G! M8 Q* n5 d3 u  R
                P3=0x00;
4 c0 r5 |* B5 ?! h4 P                delay_time(1);
* o5 S$ Y; s7 P% e# |8 |2 L        }8 r5 A  G# S/ [- T# R! r( D9 b6 T
}
- j( h# j$ ~. ?3 d( I//′ËdelayoˉêyÖDμÄnÎaê±¼äμÄÃëêy£¬¼′n=5ê±£¬±íê¾Ñóê±5s£¬ÆäÖDn2»′óóú65535£»
' O7 @9 ^9 Y1 i6 z5 |9 ?void delay_time(unsigned int n )          
( @* P+ C) v0 K1 w$ A/ ?{) g' p- E6 a. n( X1 X% ?( Y
        unsigned int x;2 [1 o& f6 ?8 p: p2 g
        unsigned int y;. G, U! p/ g/ r1 k7 |
        unsigned int z;$ u4 ^  g* L: T/ p
        for(x=n;x>0;x--)
' x7 R7 R% Y- Y  X. b- M7 A, D                {: J% m( x5 [& S5 {. r7 g
                        for(y=1000;y>0;y--)        //′ËÎa1s£¬ê±ÖóÆμÂêÎa12Mhz
/ o) f6 m2 b9 B- l                                for(z=1000;z>0;z--);
/ j2 m/ |! n, j                }
9 Z2 z. h2 ]& ^1 m. @. E1 @}
/ Q* _! B  p' `6 g, l' v不能出现结果
, o; @! s3 h6 l. R) f
& }) K5 T# N7 r' i# u! O+ i- a% I# d想说的是  P3M0 |= 0x0C; P3M0=0x01;  两个都是置为推挽模式,有啥不一样,在寄存器的

该用户从未签到

2#
 楼主| 发表于 2020-1-19 09:41 | 只看该作者
这是推挽说明
6 T6 j+ Y! t; k- @8 F) A$ Y! E

123.png (233.39 KB, 下载次数: 6)

123.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-9-4 01:13 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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