TA的每日心情 | 开心 2023-6-1 15:13 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
N- K! c2 d, j+ |8 q. @$ S
+ M7 d, j1 E( R! D. c单片机内部资源/ j' F5 G4 }/ g5 H
STC89C52:8KFLASH、512字节RAM、32个IO口、3个定时器、1个UART、8个中断源
* _* X# o6 U6 x* a |8 i* F% a& y0 g) L6 t& c5 f T5 D7 D) f) j* k
: U. g- w9 [4 e; C. R* q
- Flash(硬盘)——程序存储空间 —— 擦写10万次,断电数据不丢失,读写速度慢
- RAM(内存)——数据存储空间 —— 断电数据丢失,读写速度快,无限次使用
- SFR —— 特殊功能寄存器
0 [ F1 `/ }1 U* ]" ~, { * ^( H0 m3 O# t `3 |" r+ n, `+ [& z5 d0 u5 F
6 j) k4 @0 K* N2 k8 ~$ G- [4 B$ U9 J/ h5 h' ~- A! p
单片机最小系统
* V }: }0 ~# S# ?% U6 t9 j7 L最小系统:最少组件组成单片机可以工作的系统。
' x6 p7 d1 `+ h- L, e/ r8 L2 i3 y- e4 Z' [" D" X, ? s# T6 F* P, V* u9 e
0 b5 [/ |! u( U& g' U; B: f/ e) Y! u
' N: D) a: p0 s4 s9 r6 P$ |" X) J3 H, L3 i- x' s+ Q
三要素; ?# ?2 ~6 w. V5 c m' y9 D
- 电源电路:5V
- 晶振电路:11.0592MHZ、两个30PF
- 复位电路:如上图中所示
, q+ K' q! m3 J5 J3 o3 t3 p 3 o) H9 M0 ]: M8 ~4 c$ `9 U5 F" m2 y0 K! Z; n4 W
- P0:开漏输出,必须加上拉电阻
- 强推挽输出:电流驱动能力强
- 上下拉电阻:上拉电路就是将不确定的信号通过一个电阻拉到高电平,同时限流作用,下拉电阻就是下拉到低电平。
- 上下拉电阻选取:从降低功耗方面考虑应该足够大,因为电阻越大,电流越小,驱动能力来看,小电阻
+ ~- P" d8 v! [0 Z; l ( H1 G2 ~5 H# a* z8 g2 A5 X" g: m
. H7 ]* R; f0 v( a# D6 h$ I) l0 i: m2 z0 \) \
硬件基础知识0 ]* i+ T1 r2 z- L1 e0 x1 Z/ N1 S j- E& j5 L7 B) W9 x& c
- 电磁干扰(EMI)——静电放电(ESD)、快速瞬间脉冲群(EFT)、浪涌(Surge)
- 去耦电容的使用:低频滤波电容,平常应用最多的事钽电容,电解电容,陶瓷电容,起到去除电源低频纹波,稳定电源的作用;高频滤波电容,电容附近,通常用104电容来进行去除高频干扰
- 三极管(PNP,NPN) b,c,e:电压驱动、控制应、驱动应用
" E" b+ O9 N+ U" ^5 x 5 k4 F! Y( ~: J0 Y
2 X0 h. y. v; m5 \% w* R! `( S4 \/ j1 _# {7 Z* m1 o
7 Z! c8 Q* n! J1 k* P6 iLED发光二极管 —— 电流驱动, X$ ]& G; z6 C; e
通常红色贴片LED, 靠电流驱动,电压1.8V~2.2V,电流1~20mA,在1~5mA亮度有所变化,5mA以上亮度基本不变。9 K( X t) Q) e1 ] d4 A- X# c \" r6 l9 U5 B/ s
/ \- p" P+ z% g9 r' W* I( P
' P) M) S, K' h1 K& oVCC 电压是 5V,发光二极管自身压降大概是 2V,那么在右边 R34 这个电阻上承受的电压就是 3V。# T8 s: M0 Q0 M4 o; l
, k/ {6 X# p) n1 v( T; t6 Z; p u
& n" q- e( h- M' z' k+ LR = U/I —— 1~20mA —— R:150~3K0 b6 w5 i5 |8 B/ Q5 O
! O0 d! P. T$ G% C, [5 @" YC语言基础/ s$ s7 P d7 D7 r& r# q( e1 H- D. I* c2 u( @; J/ p
基本运算符+ - * / % ++ -- = == != += -= 《《 》》 && “| ! & | ~ ^7 _& @6 I3 p4 o3 M7 S; g
/ G: D1 O8 ]+ o: X3 g$ q. \
0 [2 I* j+ z1 ~. t* U. J
2 x8 }/ H' |% x0 \; W循环(c语言以表示一条语句)
" g% b5 l4 z6 V9 ]% gfor/while/do.。.while0 n! b" P$ Z/ P& T
. }2 f% Z ]- {! m p; ^8 w3 _" ]3 N+ i; [& K3 m9 Y* `0 I) v" c @
for(表达式1;表达式2;表达式3){语句;//可以为空}while(表达式)//表达式为真,执行语句{语句;//可以为空}do{语句;//可以为空}while(表达式); ; L0 B3 A2 o% `: p% J; J# p7 c
函数 (模块化的思想)- x. D1 l; P: X8 l4 r
类型 函数名(参数类型 参数){函数体;}& q# N: B8 T* v6 j9 }
) P6 q; T: ?0 Z. H* x ^* q+ A; T) ?' A8 B3 q3 f6 S. f ~$ f8 E8 |: c2 X7 Z7 a. D
数组( d0 B- A& J) [* `: G% E
' U T& S8 O# ?5 j t具有相同数据类型 d! J% v# [1 C7 D
; N. ` p8 [' M7 F P# i具有相同的类型在存储器中连续存储8 {/ a, Z- x9 D1 m* a" y
) f, {0 Y3 ^* F1 @3 L m9 [0 O; l- k/ t3 Y1 j9 f6 W2 f
51单片机常用延时办法2 Y: U6 C1 J0 M$ n/ r4 t8 K
循环、定时器: y& n- B% ?) W8 e% V' w C0 p& i: e# V D* Q
% A8 a5 ?$ T& Z0 t(P0 = ~(1 《《 i++);)1 v5 h% C, f0 |% f9 q b0 o3 o* X2 b% e5 n/ _
% @. u6 T, O& _5 q/ `
流水灯给IO口一个低电平即可点亮LED灯。(注:单片机对外设的操作其实就是对IO口电平的控制); X6 ^4 l# [7 Q5 U& b/ F' {6 v; N2 v- `4 l5 l* y$ \+ g6 u% _
/ d; R$ Y/ N0 Z' L2 E v
/ B8 m9 f+ v) x( t! X- V#include//包含特殊功能寄存器定义的头文件typedefunsignedintuint;typedefunsignedcharuchar;intmain(void)
: a! H9 P3 J1 A" N7 m{uinti=0;//定义循环变量i,用于软件延时
# X3 c" p7 c8 o" E8 Pucharj=0;//定义计数变量j,用于移位控制! @: w! S9 y0 G+ G- y( \
while(1)//主循环,程序无限循环执行该循环体语句 n. h- k. P I! i
{P0=~(1《for(i=0;i《20000;++i);//软件延时! d: c% x9 U d% v
if(j》=8)//移位计数超过7后,再重新从0开始
8 M" `5 ~, h0 j- \% B! m{j=0;}}return0;}
/ `6 T1 ~( e z$ K: V4 c7 W! g# R( J. Z
|
|