单片机听课笔记18课金沙滩更新Word下载.docx

上传人:b****6 文档编号:19094000 上传时间:2023-01-03 格式:DOCX 页数:35 大小:35.99KB
下载 相关 举报
单片机听课笔记18课金沙滩更新Word下载.docx_第1页
第1页 / 共35页
单片机听课笔记18课金沙滩更新Word下载.docx_第2页
第2页 / 共35页
单片机听课笔记18课金沙滩更新Word下载.docx_第3页
第3页 / 共35页
单片机听课笔记18课金沙滩更新Word下载.docx_第4页
第4页 / 共35页
单片机听课笔记18课金沙滩更新Word下载.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

单片机听课笔记18课金沙滩更新Word下载.docx

《单片机听课笔记18课金沙滩更新Word下载.docx》由会员分享,可在线阅读,更多相关《单片机听课笔记18课金沙滩更新Word下载.docx(35页珍藏版)》请在冰豆网上搜索。

单片机听课笔记18课金沙滩更新Word下载.docx

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:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电子电路

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1