找回密码
 注册
关于网站域名变更的通知
楼主: ArthurGXH
打印 上一主题 下一主题

针对初学51单片机的资料,想少走弯路就看看 , 有问有答啊

  [复制链接]

该用户从未签到

16#
发表于 2012-6-23 19:21 | 只看该作者
谢谢分享

该用户从未签到

17#
发表于 2012-6-26 19:27 | 只看该作者
刚买了开发板,正准备学,多谢

该用户从未签到

18#
 楼主| 发表于 2012-6-27 21:28 | 只看该作者
hxs_ui 发表于 2012-6-26 19:27
( J" Y) [# M' f5 P" O6 M刚买了开发板,正准备学,多谢
8 [# K- }1 g+ @. Q# {3 S* v
不用客气,尽量把pdf中的程序都调试一遍。遇到问题,可以直接问我。

该用户从未签到

19#
发表于 2012-7-14 23:22 | 只看该作者
真的非常感谢楼主!1我回认真学好的,

该用户从未签到

20#
 楼主| 发表于 2012-7-14 23:48 | 只看该作者
刘芸 发表于 2012-7-14 23:22 6 e: w" N& v+ ]6 \
真的非常感谢楼主!1我回认真学好的,

& A# o4 ?; x+ z" F不用客气,只要用心学,你会发现51并不难。不懂就问啊。

该用户从未签到

21#
发表于 2012-7-16 14:13 | 只看该作者
太棒了 谢谢楼主  

该用户从未签到

22#
发表于 2012-7-17 16:04 | 只看该作者
谢谢分享

该用户从未签到

23#
发表于 2012-7-21 23:07 | 只看该作者

该用户从未签到

24#
发表于 2012-7-23 15:41 | 只看该作者
楼主,没有C基础的如何去学,是不是还要去买开发板之类的是吧
" T5 A$ {" j+ Z1 w& N
9 L* t. `0 N/ _  关键是如何去学,先入门

该用户从未签到

25#
发表于 2012-7-25 14:14 | 只看该作者
下来看看

该用户从未签到

26#
发表于 2012-7-25 16:38 | 只看该作者
我晕,这个不就是STC官网的资料嘛  拿到这来干嘛- K2 Q  [$ s3 R$ v

% x  U3 F: i/ T" l. m/ x8 s学单片机不看手册是瞎学,手册看懂了单片机也就会了

点评

我认为这个资料还不错,就拿出来给新手看看,再者说并不是每个新手都能找到合适的资料的。如果你是老手,请绕一绕。  发表于 2012-7-25 22:06

该用户从未签到

27#
发表于 2012-7-26 08:24 | 只看该作者
手册当然是好资料,不是说我是不是老手的问题,单片机老手编程照样需要对应的手册,毕竟单片机编程是基于硬件的

该用户从未签到

28#
发表于 2012-7-26 09:57 | 只看该作者
谢谢楼主.顺便请教个程序.我想用定时器中段实现两个数码管显示00--59;结果数码管一直显示00;不知道问题出在哪,7 |3 Q$ w- W  o
程序如下:
: m1 R7 V% w0 {0 R# d#include<reg52.h>
  n" [( V# f% X6 y' L4 `$ a$ y#define uchar unsigned char         //定义uchar uint& a" R3 z% j  e2 v
#define uint unsigned int) t/ u( {4 p! B$ K- ?
sbit dula=P2^2;                         //定义数码管段显示' ^/ ^0 b' `5 q' _- @; y9 s
sbit weila=P2^3;                //定义数码管位显示
2 X$ t( J# w, J( P8 Kuchar code table[]={                //定义数码管显示从0--9. `  g0 G& P! h. i) |- v
0x3f,0x06,0x5b,( O4 l8 `! ^# D! m  L! s
0x4f,0x66,0x6d,8 j8 i* H7 E! t
0x7d,0x07,0x7f,0x6f};
% h$ t) ^2 s' g3 H+ u7 z$ y( G8 j% V8 M1 \7 ^
void display(uchar,uchar);        //声明数码管显示函数
: t! f9 s0 t7 j0 J5 [  I0 A2 Svoid delay(uint);                //申明延时函数  O: W1 P, U0 V; y& b" E% @+ _
uchar num,num1,shi,ge;
) r$ N; J3 M- ~( yvoid main()                        //主函数. J+ c1 x8 U$ ~
{) U8 H* Z8 h( ~
  TMOD=0X01;                        //定时方式选择9 I+ i% W! T0 [
  TH0=(65536-45872)/256;        //写定时初值
& N7 w* H3 X8 ]3 V0 F# D: w! H  TL0=(65536-45872)%256;
. S9 B) I$ F3 }  EA=1;        //开启总中断
# w9 h$ j7 I" m$ K4 H  ET0=1;        //开定时器0中断6 [$ ^3 m9 L8 n' n; O! C( |
  TR0=1;        //启动定时器0
: B1 D4 j5 ~# h  B/ O$ ?  while(1)
9 Y& n  P$ U7 R1 e! |  {& G8 l3 V( d; o+ o& ~  N; z4 R7 I
    display(shi,ge);                //数码管显示函数  |# w3 b$ b% n0 \+ C6 O5 d
  }  N# T5 s* J5 l, W$ V
}
# C! z! K' x. M* K, a7 ?
+ P0 K7 y/ w% `" h* [5 \: jvoid display(uchar shi,uchar ge)        //显示函数+ ?: Z# |, S6 P' q
{& L7 q" F& x& U) Z  ^
   dula=1;                        //打开段选
3 v4 N& b8 o! k1 {# ]   P0=table[shi];
0 F! ~# j; S, j1 y5 _   dula=0;: l- i7 A  j8 V$ I
   P0=0xff;                        //重置P0 防止数码管乱码' E9 Z( M. ?3 P! _/ ]& x' H- k# S
   weila=1;
! Z  F4 @1 b) }   P0=0xfe;
" I/ \0 W+ P- \& ]   weila=0;' g  B! w1 I* j5 I* K+ g
   delay(5);
8 l1 L/ _/ k8 t# C  J5 o6 k  
4 `! I& |6 ]/ k. |$ s- a$ P   dula=1;( V  j+ o) L4 q1 p
   P0=table[ge];
. r" j. t) n9 @8 B$ C" K   dula=0;  ?! ]4 W# Q  W$ N4 x" ]' d
   P0=0xff;
; K1 v5 K& K9 k  `& j: o   weila=1;, v* f' H. a8 o: U- A
   P0=0xfd;
8 ^; {4 A4 q  m7 e' P9 `9 u   weila=0;: ?/ P! ]6 g; ~8 }' c: p/ A
   delay(5);
; _$ H7 \; q- t5 d* d0 [$ N}. ?+ ?5 M- R1 M: |: w% l) w, G

' Y! W% w0 f. j% }0 Bvoid delay(uint xms)    //延时函数 延时xms ms/ d  l) U. w( n  n7 o( Y) i
{
/ y# e6 @8 t+ K  L% `" f   uint i,j;$ O. a6 I2 I2 v" r& r& f1 U5 Q
   for(i=xms;i>0;i--)( p( }  l  T( D) b) S4 t' k
    for(j=110;j>0;j--);. z0 @! J- w. p6 a8 M& T' k& w
}
, z( o# N5 Q- q& v( Y2 y* d7 v3 D4 |' B
void T0_Time() interrupt 3   //定时器0中断 定时方式1
$ k5 g3 U. V/ v* P2 y* O2 z# y{
# `1 }8 w5 Q3 x5 B TH0=(65536-45872)/256;
+ M) v" M5 z4 s! f: {+ `1 Q  R; p TL0=(65536-45872)%256;  D* Y3 W  E& r
num1++;
/ {. i; Z) s! ^: T3 B- j if(num1==20)      //检测到1s了没有 ) }$ Q, J$ z/ x2 Q8 R
   {
) B% L- S, d+ L5 c/ p    num1=0;) ?/ l+ C& h# n. Q. }1 B
    num++;
  z1 O+ H6 J* W+ Q$ ~+ M3 q    if(num==60)   //实现两个数码管从00--596 l, n0 }8 d' b5 K: r
    num=0;
5 H/ N, Y+ L& {3 T4 U    shi=num/10;* Q  d( F8 b+ w- T" \2 `8 X
    ge=num%10;- u  o3 A5 f* |; B
    }
! a5 l! X# p- ^3 {, x0 Y1 @6 u}

该用户从未签到

29#
发表于 2012-7-26 09:59 | 只看该作者
黑驴蹄子 发表于 2012-7-26 08:24 0 o% A" m( r1 l' E/ c
手册当然是好资料,不是说我是不是老手的问题,单片机老手编程照样需要对应的手册,毕竟单片机编程是基于硬 ...

, ~/ P0 R- x* A1 @8 u+ @呵呵  有道理  有空来帮我看看下面那个问题啊
  • TA的每日心情
    开心
    2020-5-24 15:59
  • 签到天数: 1 天

    [LV.1]初来乍到

    30#
    发表于 2012-7-26 15:54 | 只看该作者
    说实在的,如果工作中用STC的,还是要慎重,谁用过谁知道,学习之用还行!
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-9-6 13:17 , Processed in 0.109375 second(s), 22 queries , Gzip On.

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

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

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