单片机听课笔记18课金沙滩更新Word下载.docx
- 文档编号:19094000
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:35
- 大小:35.99KB
单片机听课笔记18课金沙滩更新Word下载.docx
《单片机听课笔记18课金沙滩更新Word下载.docx》由会员分享,可在线阅读,更多相关《单片机听课笔记18课金沙滩更新Word下载.docx(35页珍藏版)》请在冰豆网上搜索。
reg52.h>
及函数名后不需要加分号。
10、单片机编程是根据硬件编程,不同的板子,程序可能不一样。
11、target1右边的targetoptions→target→11.0592M,output→creathex选项框选中,点击ok,编译,连接就可生成hex文件。
12、hex文件大小的看法:
在编译连接之后,buildoutput对话框里看。
Programsize:
data=9.0xdata=0code=29表示:
其中data,xdata指RAM,两项加起来就是内存的值:
0+9=9字节。
code指占程序存储空间的值:
29个字节。
13、点亮小灯的程序
#include<
sbitLED=P0^0;
sbitADDR0=P1^0;
sbitADDR1=P1^1;
sbitADDR2=P1^2;
sbitADDR3=P1^3;
sbitENLED=P1^4;
voidmain()
{
ENLED=0;
ADDR3=1;
ADDR2=1;
ADDR1=1;
ADDR0=0;
LED=0;
while
(1);
}
14、安装usb-串口的驱动;
查找COM口。
我的电脑→设备管理器。
选择单片机型号→打开hex文件→选择使用的COM口→波特率默认→下次冷启动选择:
与下载无关→(STC89C52RC冷启动单片机)先点下载后上电。
作业:
3.了解KEIL软件的基本用法和单片机编程流程,能够独立完成编程下载等基本操作。
Lesson3:
硬件基础学习
1、电磁干扰EMI,电磁兼容EMC
2、低频滤波电容:
去除电源低频纹波,稳定电源作用。
铝电解电容、钽电容(有色标的一端为正极,性能好)、陶瓷电容。
3、高频滤波电容:
对高频短路,可滤去高频干扰。
(104=0.1uF)
4、电容选取两个主要参数:
耐压值、容值。
5、三极管的功能:
开关控制(100Ib>
Ie,则工作在饱和状态)、信号放大、电平转换。
6、三八译码器:
74HC138地址输入端c/b/a及E3使能端接4.7K电阻上拉。
7、
双向缓冲器:
74HC245DIR为高,A→B;
输入端接4.7K上拉电阻。
8、保存过后的c文件,文件名旁边没有※。
4、能够独立点亮开发板上的每一个小灯,并且可以实现小灯亮和灭以及闪烁。
Lesson4C语言基础以及流水灯实现
1、进制
2、C语言变量类型及范围
Unsignedchar0-255signedchar-128—127
Unsignedint0-65535signedint-32768---32767
Unsignedlong0-4294967275signedlong-2147483648---2147483647
Float-3.4×
10-38—3.4×
10-38double:
C51里等同于float
能用一个字节的变量能完成的工作,不要用两个字节变量。
3、C语言基本运算符
+-*/%(取余)++--===!
=
4、for语句的用法(作延时,作循环运算)
一、for(表达式1;
表达式2;
表达式3)
{
(需要执行的语句)
}执行顺序:
1,2,4,3,2,4,3,2,4,3
二、for(i=0;
i<
30000;
i++);
是用法一的特殊情况,相当于执行语句为不执行。
三、for(;
;
)相当于while
(1)
5、while语句的用法
一、while(条件表达式)
循环语句;
6、函数名的类型,就是return值的类型。
Voidmain()void表示函数名,无返回值,intmain(),返回值为整型。
7、变量在使用之前,先定义。
8、51单片机延时常用方法:
非精确延时:
for(I=0;
100;
i++);
I=100;
while(i--);
精确延时:
用定时器定时
利用库函数-nop-();
9、肉眼分辨率:
20ms一下看不到闪烁;
50ms间隔能清楚看见亮灭。
10、软件仿真:
先设置targetoptions→target→11.0592M,debug→选中usesimulator→ok
点击startdebugsession图标,进入仿真界面。
设置断点:
双击,若设置不了targetoptions→C51→level,设置优化登记一般选8。
RST复位run全速运行。
然后看时间情况。
(50分钟附近)
11、程序一:
小灯的闪烁(视频位置与笔记顺序不一致)
unsignedinti=0;
for(;
)//while
(1)
LED=0;
for(i=0;
20000;
LED=1;
}
12、程序二:
流水灯程序(法一)
while
(1)
P0=0XFE;
P0=0XFD;
P0=0XFB;
P0=0XF7;
P0=0XEF;
P0=0XDF;
P0=0XBF;
P0=0X7F;
13、移位指令(<
<
>
>
)、取反指令(~)。
14、程序二:
流水灯程序(法二)
{unsignedcharcnt=0;
P0=~(0x01<
cnt++);
if(cnt>
=8)
{
cnt=0;
}
4、独立完成流水灯右移操作。
5、独立完成左移到头,接着右移,右移到头,接着左移的程序。
Lesson5定时器和数码管基础
1、逻辑运算逻辑与:
&
逻辑或:
||逻辑非:
!
按位与:
按位或:
|按位取反:
~按位异或:
^
0b11001100|0b11110000等于0b11111100
2、数字电路常用符号
3、机器周期是定时器的计数周期,打开定时器后,每经过一个机器周期,定时器“存储寄存器”的值加1。
8位定时器存储的值的范围:
0-22516位定时器0-65535
4、标准51里有两个定时器:
T0和T1。
5、定时器/计数器模式示意图。
5、使用定时器的方法
一、设置TMOD(模式寄存器M1、M0位,常用模式1、模式2自动重装),配置好工作模式例如:
TMOD=1;
二、设计数寄存器TH0、TL0的初值。
例如:
TH0=0XB8;
TL0=0X00;
定时20msTH0=0XB8;
定时1ms
三、设TCON(控制寄存器TF位,TR位),通过TR0置1来让定时器开始计数例如:
TR0=1;
四、判断TCON寄存器的TF0位,检测定时器的溢出情况。
计算计数寄存器初值的方法:
12*(65536-X)/11059200=20ms
6、1s闪烁一次的小灯程序
#include<
{
unsignedcharcnt=0;
TMOD=0x01;
TH0=0XB8;
TR0=1;
if(TF0==1)
TF0=0;
TH0=0XB8;
TL0=0X00;
//定时20ms
cnt++;
if(cnt>
=50)
{
cnt=0;
LED=~LED;
}
7、数码管分:
位、段(A/B/C/D/E/F/G/DOP)两个概念
8、第一个数码管显示“1”的程序
ADDR2=0;
ADDR1=0;
P0=0XF9;
9、1位数码管从1-F(每隔1秒加1)
unsignedcharcodeledchar[]={0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
unsignedcharsec=0;
TMOD=1;
if(cnt>
P0=ledchar[sec];
sec++;
if(sec>
=16)
{
sec=0;
}
1、熟练掌握单片机定时器的原理和应用方法
2、通过研究定时器模式1的示意图,自己打开STC89C52RC手册的定时器部分,独立研究模式0,模式1,模式2,和模式3的示意图,锻炼研究示意图的能力。
3、使用定时器实现延时,完成左右移动的流水灯程序。
4、了解数码管的原理,掌握数码管的真值表计算方法。
5、编程实现数码管静态显示秒表的倒计时。
Lesson6中断与数码管动态显示
1、if语句的用法
(1)if(条件表达式)
语句1;
}只判断一次,只执行一次,然后执行下面的程序。
(2)if(条件表达式)
else
语句2;
(3)if(表达式1){语句1;
elseif(表达式1){语句1;
elseif(表达式1){语句1;
else{语句n}一旦有一个为真,执行完相应语句后,跳出if语句。
2、switch语句的用法
法一:
Switch(表达式)
Case常量表达式1:
语句1;
Case常量表达式2:
语句2;
Case常量表达式n:
语句n;
Default:
语句n+1;
法二:
Switch(表达式)
break;
break;
break;
}
3、动态显示利用人肉眼的视觉暂留现象(余晖效应)
10ms以内必须重新刷新同一个数码管。
ENLEDADDR3选中ADDR2ADDR1ADDR0切换
4、6位显示的秒表程序(if语句)
unsignedcharledbuff[6]={0xff,0xff,0xff,0xff,0xff,0xff};
//初始值0XFF
unsignedintcnt=0;
unsignedlongsec=0;
unsignedchari=0;
TMOD=0X01;
TH0=0XFC;
TL0=0X67;
TH0=0XFC;
TL0=0X67;
=1000)
ledbuff[0]=ledchar[sec%10];
ledbuff[1]=ledchar[sec/10%10];
ledbuff[2]=ledchar[sec/100%10];
ledbuff[3]=ledchar[sec/1000%10];
ledbuff[4]=ledchar[sec/10000%10];
ledbuff[5]=ledchar[sec/100000%10];
//
if(i==0)
ADDR2=0;
i++;
P0=ledbuff[0];
elseif(i==1)
ADDR0=1;
P0=ledbuff[1];
elseif(i==2)
P0=ledbuff[2];
elseif(i==3)
P0=ledbuff[3];
elseif(i==4)
ADDR2=1;
P0=ledbuff[4];
elseif(i==5)
i=0;
P0=ledbuff[5];
5、6位显示的秒表程序(switch语句)
P0=0XFF;
//消除鬼影操作。
switch(i)
case0:
ADDR2=0;
case1:
case2:
case3:
case4:
ADDR2=1;
case5:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 听课 笔记 18 金沙 更新