找回密码
 注册
查看: 619|回复: 1
打印 上一主题 下一主题

单片机寄存器赋值问题

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#include<STC15F2K60S2.h>
; U  @  O" |! M4 [#include<config.h>
/ J8 U/ w3 o) |6 H2 b //×ó3ìDòμ÷óÃéùÃ÷/ `+ h8 k6 I* c, l8 q3 `
extern void delay_time(unsigned int n );
' M0 m! [1 f4 I/ K( i8 X9 \//¶¨òå1|Äü½Å
+ [/ k- f) e( T) c//sbit D1=P0;
4 I! G4 X, t3 {8 q4 }: `7 t9 ^
% E% j7 m8 S$ z//¶¨òå×Ö·ûòaò壬àyèçAÎaÕûDíμÄààDí$ |. }% X7 Q6 ^* d0 }
//unsigned int a;
3 }" d( a- c) D3 d6 r
9 l) }# ?0 h% K3 U/ P//Ö÷oˉêy£»* Y2 K( k  X& w. p) O' P) N; P% y
void main()
) _& @  Z$ m' h& D1 s5 I/ z* O$ |{                " x* `* L. p  A2 d, D" M% G
        P3 = 0x00;          I) y6 k4 x% G
        delay_time(1);0 C# }% ^: W" |, b: a
        P3M0 |= 0x0C;   //sfr P3M0=0xB2;  /0000,0000 ¶Ë¿ú3ģ꽼Ä′æÆ÷0! y6 K+ M6 }5 t' p  a6 y3 h! D& u6 L
        while(1)
: ?% z' Z, }$ F. s        {  
! H$ u, Q. I% X                pos = 1;
* c* \1 }" b' d3 A/ s- m+ g                delay_time(10);
% v" W* ?& T! ~$ k1 f/ B                pos = 0;2 [0 ^+ I1 v( W  \; h% y% M
                delay_time(1);- {) j( ?" {. l! \0 C) b9 O1 j
                neg = 1;. c" ?# {) C0 O+ W' p
                delay_time(10);; _7 P. f2 a5 c( t8 Z; G: l$ G' T3 s: S
                neg = 0;
! C8 l+ E% r, y. H$ p2 l                delay_time(1);
5 U+ }1 A5 w' e9 O8 J6 G; p        }
2 u+ S5 ]* `- Q}& r5 \! w. o/ T8 [1 j9 I
//′ËdelayoˉêyÖDμÄnÎaê±¼äμÄÃëêy£¬¼′n=5ê±£¬±íê¾Ñóê±5s£¬ÆäÖDn2»′óóú65535£». d9 M, m- _3 d/ A
void delay_time(unsigned int n )          ! R& a- A# T" d9 x# [: G. J
{
3 P) i8 F( g6 ?7 _  {3 T: }        unsigned int x;
9 D% `4 J$ i3 c2 [# j        unsigned int y;
" _& x6 B5 T# I' I  i        unsigned int z;
/ x, u. j  q* @. Y  j        for(x=n;x>0;x--)
% K" d: @6 G1 K                {
8 Z- @' L1 s5 g  l                        for(y=2;y>0;y--)        //′ËÎa1s£¬ê±ÖóÆμÂêÎa11.0592MHZ1 y8 r- g  a' E% |
                                for(z=57600;z>0;z--); 2 _1 t/ G9 K$ ?8 i3 R3 S% r8 p4 b
                }
1 w8 l: U) K. I1 ]}4 s/ r5 ?7 q+ L
以上是可以在硬件内出现想要的结果2 I; h8 L% E' D8 X% b/ Z- s* C
#include<STC15F10x.h>
/ m' }3 \: L- w0 _! y- _$ l //×ó3ìDòμ÷óÃéùÃ÷
$ T, j6 g9 X7 Y  a2 u0 Q void delay_time(unsigned int n );2 B  V0 J, x% E" G! w$ |* [
//¶¨òå1|Äü½Å
2 L1 L+ h( N6 }% n+ d6 ]//sbit D1=P0;0 L& M+ B/ S/ h6 {/ H
/ C1 K# E: C( p2 _% F# Y
//¶¨òå×Ö·ûòaò壬àyèçAÎaÕûDíμÄààDí! E" v0 C, k: I" ^* o
//unsigned int a;0 y. \2 k6 v. b9 t; X* b
  w* u! ^# C" |7 P" Z
//Ö÷oˉêy£»
+ ]" C5 g3 @/ {: ~2 ]4 z7 yvoid main()
5 l2 o: }+ D2 r) t{       
/ v8 g  s* t& H$ ?        P3 = 0x00;       
* I1 H# t$ ~* ]  Z& l; F        delay_time(1);
2 j1 l  @8 @' ]' X5 ~$ B$ b& D        P3M0=0x01;  //sfr P3M0        =   0xB2;   /0000,0000 ¶Ë¿ú3ģ꽼Ä′æÆ÷0
/ u. c' C2 D4 O/ u- Q9 D' I        while(1)! `! j- v0 E" t+ o2 {, [
        {  
1 o9 M9 O" v0 b* j4 c$ f                P3=0x04;
" U" u) I! j7 b                delay_time(10);. |8 m6 L+ ~- t$ x  `
                P3=0x00;! [- y* |. j5 m4 L. Z4 w7 h# D; G
                delay_time(1);3 i0 B9 t' _: M% y
                P3=0x08;: J  U6 L+ J3 O9 P- L$ I' C
                delay_time(10);
) w* K' R- o9 [7 M                P3=0x00;
' j) U5 S/ l( e3 N( A" H( @  T+ v                delay_time(1);6 a* ^" q% \% h' [
        }; U) ?2 ]" {- v; z" U. ^3 I
}7 W! l$ d  j( |- H/ E8 {
//′ËdelayoˉêyÖDμÄnÎaê±¼äμÄÃëêy£¬¼′n=5ê±£¬±íê¾Ñóê±5s£¬ÆäÖDn2»′óóú65535£»
3 _* u1 i0 K: ]6 U" @8 x, Jvoid delay_time(unsigned int n )          # Y* T: j3 d' H* t+ I. O5 J
{$ e+ Z7 f% E7 x
        unsigned int x;$ p+ ?; N1 ~3 Z$ E) ]5 V# }
        unsigned int y;
. R5 F: |$ h% c8 |  A: |2 |        unsigned int z;! Z2 U+ i! e8 y) C( G- E) o
        for(x=n;x>0;x--)& b8 e8 Q7 R. R  ]% H: {
                {% t" O" P9 R4 u" ]5 K0 f
                        for(y=1000;y>0;y--)        //′ËÎa1s£¬ê±ÖóÆμÂêÎa12Mhz
1 J4 R& o2 s2 U+ \; l                                for(z=1000;z>0;z--); ( @* e- d  [' J% z/ y0 a$ x
                }/ v( `. N4 f9 D! i! C8 b
}8 l. `5 \( h( ^: F
不能出现结果0 k$ X3 K; L; ]8 S$ p
* A, T2 Z" E1 ~, F; p. o
想说的是  P3M0 |= 0x0C; P3M0=0x01;  两个都是置为推挽模式,有啥不一样,在寄存器的

该用户从未签到

2#
 楼主| 发表于 2020-1-19 09:41 | 只看该作者
这是推挽说明
$ b' p4 Q0 r) n% f+ R7 W1 d

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

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-2 03:31 , Processed in 0.078125 second(s), 26 queries , Gzip On.

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

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

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