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

单片机寄存器赋值问题

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#include<STC15F2K60S2.h>
& i; P& H0 d/ [, p+ q#include<config.h>
3 u" J! D! q) S  n4 O0 r* X# F //×ó3ìDòμ÷óÃéùÃ÷
* S& J% E2 M) P" gextern void delay_time(unsigned int n );
$ I: U( E9 s# A, f, J//¶¨òå1|Äü½Å
/ x$ |4 }' K+ Y//sbit D1=P0;# G+ q) C- m* x

8 @' M% \( {. S  J* C+ ^1 G9 t//¶¨òå×Ö·ûòaò壬àyèçAÎaÕûDíμÄààDí
8 L/ e5 c& e; Q0 \9 e//unsigned int a;
- B' m: Z; Y! E' S$ J+ p& [! E& {; C  }9 f6 o' ^( H9 `, X- R
//Ö÷oˉêy£»; S6 \+ x# v( U* m% O, w
void main()
0 L, L" m4 z' Q" T6 o3 ^1 ]) ]+ o{               
7 m5 d9 }& ]" F3 L- B4 y0 ?" R        P3 = 0x00;        2 P! Q7 Q/ x5 z4 g5 I, T
        delay_time(1);2 g5 _0 \; w3 z, d$ {$ ~+ |% f$ \
        P3M0 |= 0x0C;   //sfr P3M0=0xB2;  /0000,0000 ¶Ë¿ú3ģ꽼Ä′æÆ÷09 @) g7 m: g. ?3 M! I& m
        while(1)( |; _4 u! l1 e6 W! i4 @' ~' M
        {  7 e9 S  i0 o  l  D% z6 l4 g8 n
                pos = 1;
; `; Z1 `. P* x+ p                delay_time(10);6 y: T. ^, w. n/ N$ o  x/ R
                pos = 0;
; s$ D' U& d" w1 w                delay_time(1);
1 ]  k% B$ k7 Y7 ^                neg = 1;) W. q- j! F1 t8 u
                delay_time(10);' v+ @1 w& n8 }* v/ i
                neg = 0;
/ c2 b' t( l# y2 I( d9 h1 x8 k                delay_time(1);* E$ d5 y* J+ o' ]9 n8 `. g! B
        }8 D2 F' z: E! ]% E( z9 N" l
}/ s! G8 A0 L% e" ~% m8 u3 C
//′ËdelayoˉêyÖDμÄnÎaê±¼äμÄÃëêy£¬¼′n=5ê±£¬±íê¾Ñóê±5s£¬ÆäÖDn2»′óóú65535£»
, M7 _) B8 }9 bvoid delay_time(unsigned int n )          8 Q/ X  g. I7 B5 H( \- D
{8 v0 h2 `7 Z0 X- C# K% K' G) {
        unsigned int x;1 P4 v$ k" ~6 }' `! X
        unsigned int y;+ O/ b# v' x& s& q* J" F+ t
        unsigned int z;+ t9 ^0 z: `: E1 G
        for(x=n;x>0;x--); s1 k% K" a+ ?* C6 b- \* T4 ?
                {
! S3 I" e+ l( [  B% u& i                        for(y=2;y>0;y--)        //′ËÎa1s£¬ê±ÖóÆμÂêÎa11.0592MHZ
8 j) a! M" J- Y3 _                                for(z=57600;z>0;z--);
6 H# Q! N. ]5 _3 V" g                }
1 h4 C: M; B, g  n5 ?}
# z" P0 l$ z  k% V! j5 v* Y. p# D以上是可以在硬件内出现想要的结果
3 H# [+ [& @1 ]4 V2 l) J#include<STC15F10x.h>" V6 S# m: N# h8 l* T# Y( T: v
//×ó3ìDòμ÷óÃéùÃ÷8 g1 I" G; I6 I; V
void delay_time(unsigned int n );
: n" i0 d; _+ ]7 p* ?* g//¶¨òå1|Äü½Å
8 w1 g0 o$ f$ r! z% K3 z% [  W3 l# f//sbit D1=P0;
' G. l9 m. ?' X: B" D& C- r9 v
" n' X* s: u& b1 n- o//¶¨òå×Ö·ûòaò壬àyèçAÎaÕûDíμÄààDí8 S$ V; g/ V( r0 F& I" O
//unsigned int a;; {- V! D3 i9 |/ M% H* M& e; u3 v
% [. m" M, o. J$ _1 K- N
//Ö÷oˉêy£»
7 x8 N9 j4 x/ ^5 a$ @; Mvoid main()
6 U* \0 q( M- b+ Y* R{       
% ]( O# C( S, M$ K+ k6 }        P3 = 0x00;        7 o/ M8 Y6 p# ^4 F& ~7 N9 f
        delay_time(1);* s" P0 @& i1 f6 a& ^  }
        P3M0=0x01;  //sfr P3M0        =   0xB2;   /0000,0000 ¶Ë¿ú3ģ꽼Ä′æÆ÷01 w5 w( f: m' [
        while(1)1 @1 o9 ~4 C- g, w
        {  
& |% y$ ?+ L* j                P3=0x04;
) j3 [$ `  Y/ }2 S( e2 ^                delay_time(10);9 }1 r6 O' L, u  ~9 e3 h
                P3=0x00;
# e( p  S( x' {8 e4 i                delay_time(1);
  ^. j3 V) t$ F! X# t9 u5 z0 |# y                P3=0x08;; @& O- ~4 k& N. Y2 E. q
                delay_time(10);2 f  h: R6 I3 T
                P3=0x00;# c9 a2 a3 X3 W0 Q1 x
                delay_time(1);
" W$ i+ ^6 l, I! ?% T3 Y, J8 A) Y. I        }
( @, Q. G* p$ J; k}
, o1 S& z* r8 \, [//′ËdelayoˉêyÖDμÄnÎaê±¼äμÄÃëêy£¬¼′n=5ê±£¬±íê¾Ñóê±5s£¬ÆäÖDn2»′óóú65535£»8 x3 O9 i$ |. n9 ?
void delay_time(unsigned int n )          + C+ F* q9 w, D/ o& P
{
' [3 j2 X4 r4 m# C: g# i        unsigned int x;
) w* ~% ]* T! T0 P, I+ u. l        unsigned int y;
- g' M0 R* s* i3 [        unsigned int z;  |. H; `. o' n* w& ]; `
        for(x=n;x>0;x--)
: S( q3 t) r* k' t  r                {3 E4 Y7 ?* W& V
                        for(y=1000;y>0;y--)        //′ËÎa1s£¬ê±ÖóÆμÂêÎa12Mhz
# m  I: f; V) X0 k1 i                                for(z=1000;z>0;z--);
" ?5 a. f$ E# k! U' t                }
2 U" s5 ^% a( H/ D}3 j/ D+ l5 W, X4 \% N
不能出现结果, z0 {- u8 ]) [. R1 N* ~+ {2 y+ C' d
$ U+ C9 t2 p% u
想说的是  P3M0 |= 0x0C; P3M0=0x01;  两个都是置为推挽模式,有啥不一样,在寄存器的

该用户从未签到

2#
 楼主| 发表于 2020-1-19 09:41 | 只看该作者
这是推挽说明
' y) E' s+ U: z5 D9 l4 O

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

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-13 11:57 , Processed in 0.078125 second(s), 26 queries , Gzip On.

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

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

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