单片机C语言教案_第1页
单片机C语言教案_第2页
单片机C语言教案_第3页
单片机C语言教案_第4页
单片机C语言教案_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中山市技师学院

中山市高级技工学校

2008-2009学年度第2学期

文化理论课

备课本

班级________07电子52_________

科目单片机C语言应用程序设计

任课教师杜玲安

教研室电子教研室

系(处)电气应用系

学期授课计划说明

本课程教学目标:

本课程采用项目教学法,把整本书类容分为9个模块,每个模块中需要教材的内容

时就穿插教材内容进去,边做边学,边写边做,力图让学生学得更清楚、更明白、更主动、更

有兴趣,让学生通过一学期的学习,能自己设计一些简单的程序。

《单片机C语言应用程序设计》(第4版)

教材名称、版本、编著者

本学期课时分配

本木

已尚

课学总其中

授余

程期课

总课课教

时讲授习题实验测验复习

课时时学

课时课时课时课时课时

时周

136013617136329626

教学进度表

周习题

-Hj,测验

总(作业、

周或教学内容(实验)

课讲授)

次单课时

时课时

(1)51单片机结构(2)数据与数据类型(3)常量

1、LED流与变量(4)数据存储结构与类型(5)keilc和80

18

水灯显示proteaus应用软件使用(6)函数的定义和编写(7)

程序固定格式和编写规范(8)LED流水灯设计指引

1、LED流

(1)LED流水灯程序编写实操

28

水灯显示08

2、静态数(1)静态数码管显示程序设计指引(2)静态数码

3码管显管显示程序程序编写实操826

3、动态数(1)动态数码管显示程序设计指引(2)动态数码

4码管显示管显示程序编写实操826

3、动态数(1)动态数码管显示程序编写实操(2)数组(3)

5码管显示利用数组形式实现的动态数码管显示程序编写实操826

3、动态数(1)指针(2)利用指针形式实现的动态数码管显

6码管显示示程序编写实操(3)结构(4)利用结构形式实现844

的动态数码管显示程序编写实操

4、用延时(1)设计指引(2)用延时的方法做时钟的程序编

7的方法做写实操826

时钟

5、用定时(1)中断原理介绍(2)中断实操(3)定时器

器的方法原理讲解(4)定时器应用实操44

88

做时钟模

5、用定时(1)用定时器的方法做时钟的程序编写实操

器的方法08

98

做时钟模

(1)按键扫描设计指引

106、按键扫(2)按键扫描程序编写实操826

.aie.

周习题

节测验

总(作业、

周或教学内容(实验)

课讲授)

次单课时

时课时

11实习实习

12实习实习

7、按键处(1)按键处理设计指引26

13理(2)按键处理程序编写实操8

7、按键处(1)按键处理程序编写实操08

14理8

8、简单计(1)计算器原理介绍(2)简单计算器程序编写实

15算器操826

8、简单计(1)简单计算器程序编写实操

16算器808

8、简单计(1)简单计算器程序编写实操

17算器808

18实习实习

9、ADC0832(1)ADC0832模块原理介绍(2)ADC0832模块程序

19模块编写实操826

10、复习考

20试复习考试862

审阅签名:年月日

第1周星期・第5/6节200”F2月16日

课题单片机引脚定义、单片机数据与数据类型授课方式

教学

1、熟悉单片机引脚定义及应用

讲授

2、熟悉单片机数据与数据类型

目的

币;用数据与数据类型

难点51单片机结构

教具课时2

一、组织教学:

清点人数。

二、引入新课

(1)介绍市场单片机的应用

(2)介绍上学期毕业设计情况,通过毕业设计,引起学生对单片机的认识,激发学

生的兴趣。

二、讲授新课

1、单片机结构:

1)引脚:

U1

1939

>XTAL1PO.O/ADO

PO.1/AD1

P0.2/AD2

1836

XTAL2P0.3/AD3

35

P0.4/AD4

P0.5/AD5

P0.6/AD6

RSTP0.7/AD7

21

P2.0/A8

P2.1/A9五

P2.2/A10至

2924

PSEN-P2.3/A11

3025

37ALEP2.4/A12

EAP2.5/A13

27

P2.6/A14

28

P2.7/A15

P110

P1P3.0/RXD五

P1P3.1/TXD五

P1P3.2旭叵

P3.3/1NT1亘

P114

P1P3.4/T0

P1P3.5/T1运

P1正

P3.7W~

AT89C51

<TEXT>

2)结构:

1)XTAL1,XTAL2:晶振,最大32MHz,接两个电容30P以下

2)RST:高电平复位

3)P0.P1.P2,P3,P4□:P0口没上拉电阻,其他都有

4)Psen:片选

5)Ale:地址信号

6)三、课堂总结:a:外部rom选择

7)VCC,GND:VCC=4~5.5V

3、RAM的划分:

审阅签名:年月日

第1周星期三第1/2节2009年2月18日

课题常量与变量、数据存储结构与类型授课方式

教学

1、掌握常量与变量定义

讲授

2、掌握数据存储结构与类型

目的

币;用常量与变量、数据存储结构与类型

难点数据存储结构与类型

教具课时2

一、组织教学

清点人数。

二、复习旧课,引入新课

(1)复习51单片机结构

(2)复习数据与数据类型

三、讲授新课

1、常量与变量:

(1)常量定义:程序运行过程中不能改变的量就是常量。如:

i.数据常量100、4

ii.字符常量:‘a','A','T

iii.字符串常量:“中山技校”“中国”

(2)变量:程序运行过程中可以改变的量就是变量。

例子:

#defineCONST10

main()

(

unsignedvaries;

var=20;

vai^var+1;

res=var*CONST;

)

2、数据存储结构与类型:

(1)存储结构:P59图3-5

(2)存储类型:

(3)存储结构与存储类型的对应关系:P61表3-2

教4、数据与数据类型:

P59页图3-1C51的数据结构

程三、课堂小结:

(1)51单片机结构(2)数据与数据类型

t\

V

»-

复杂问题简单化,学生会比较容易接受

审阅签名:年月日

第1周星期四第5/6节2009年2月19日

课题Keilc应用软件和proteaus应用软件的使用授课方式

教学

1、掌握keilc和proteaus应用软件使用

讲授

2、掌握keilc和proteaus之间的联调

目的

币;用Keilc应用软件和proteaus应用软件

难点keilc和proteaus之间的联调

教具课时2

一、组织教学

清点人数。

二、复习旧课,引入新课

三、讲授新课

1、Kei1c应用软件的使用:

(1)新建项目

FileEditViewProjectDebugPeripheralsToolsSVCSWindowHelp

NewProject...

ImportBVision】Project...

OpenProject

CloseProject

FileExtensions,BooksandEnvironment

Targets3Groups,Files...

SelectDeviceforTarget,Target1'

RemoveItem

OptionsforTarget'TargetV

ClearGroupandFileOptions

|:X|Buildtarget

[S|Rebuildalltargetfiles

演TranslateD”工作目录\04电子51班毕业论文*马伟强"寻轨

差jStopbuild

1D:\工作目录\04电子51班毕业论文,冯伟强'寻轨车\bus.V

2C:\DocumentsandSettings'Administrator'桌面'寻轨工

(2)project名称:

CreateHevProjectf?|[X|

保存在d):<5=SCj'圈,

文件名®:|二D模块保存⑤)

保存类型①:|?rojectFiles(♦.uv2)二J取消

2、数据存储结构与类型:

(4)存储结构:P59图3-5

(5)存储类型:

(6)存储结构与存储类型的对应关系:P61表3-2

(3)cpu选择:

(4)新建*.C文件:

V

(5)加入C文件:

审阅签名:年月日

第1周星期五第1/2节2009年2月20日

课题函数的定义和编写、程序固定格式和编写规范授课方式

教学1、掌握函数的定义和编写

2、掌握程序固定格式和编写规范讲授

目的

币;用1、代码书写规范、2注释书写规范、3命名规范

难点函数的定义和编写

教具课时2

一、组织教学

清点人数。

二、复习旧课,引入新课

三、讲授新课

1代码书写规范

1.1缩进的设置

代码书写应该遵从结构化的要求,采用缩进的格式。最小缩进量为4个空格,

整个文件内部应该统一,不要混用Tab键和4个空格这两种情况,因为不同的编辑器对

Tab键的处理方法不同。

1.2嵌套语句(语句块)的格式

对于嵌套式的语句--即语句块(如,if、while、switch等)应该包括在花

括号中。花括号的左括号应该单独占一行,并与关键字对齐。建议即使语句块中只有一

条语句,也应该使用花括号包括,这样可以使程序结构更清晰,也可以避免出错。建议

对比较长的块,在末尾的花括号后加上注释以表明该语言块结束。

范例1:嵌套语句格式

if(value<max)

(

if(value!=0)

(

func(value);

)

}

else

{

error(nThevalueistoobig.n);

}/*if(value<max)*/

2注释书写规范

注释必须做到清晰,准确地描述内容。对于程序中复杂的部分必须有注释加以说明。

注释量要适中,过多或过少都易导致阅读困难。

2.1注释风格

・C语言中使用一组(/*…*/)作为注释界定符。

・注释内容尽量用英语方式表述。

・注释的基本样式参考范例4。

・注释应该出现在要说明的内容之前,而不应该出现在其后。

・除了说明变量的用途和语言块末尾使用的注释,尽量不使用行末的注释方

式。

范例4:几种注释样式

/*

*强调注释

教*/

学/*

*块注释

过*/

程/*单行注释*/

inti;/*行末注释*/

2.2何时需要注释

•如果变量的名字不能完全说明其用途,应该使用注释加以说明。

由・如果为了提高性能而使某些代码变得难懂,应该使用注释加以说明。

收・对于一个比较长的程序段落,应该加注释予以说明。如果设计文档中有流

彳程图,则程序中对应的位置应该加注释予以说明。

苗•如果程序中使用了某个复杂的算法,建议注明其出处。

・如果在调试中发现某段落容易出现错误,应该注明。

V

3命名规范

3.1常量、变量命名

用#define定义的符号常量全部采用大写。

变量命名的基本原则:

・可以选择有意义的英文(小写字母)组成变量名,使人看到该变量就能大

致清楚其含义。

•不要使用人名、地名和汉语拼音。

・如果使用缩写,应该使用那些约定俗成的,而不是自己编造的。

4函数:

4.1函数的定义:为了实现某一功能的小模块,或小程序。函数也叫子程序。

任何一个程序必须有main()函数。

4.2函数分类:

1)标准库函数:用#include包含进去,在C:\Keil\C51\INC里面

2)用户自定义函数:

A.无参数函数:

例:

voidDisplayLed()

{

Pl=0x01;

}

B.有参数函数:

a)有参数入,无参数出:

如:voidDisplayLed(unsignedcharn)

(

Pl=n;

)

/*调用时*/

DisplayLed(OxOl);

b)无参数入,有参数出:

如:unsignedcharadd()

(

unsignedcharres;

res=100+50;

returnres;

)

c)有参数入,有参数出:

如:unsignedcharadd(unsignedcharx,unsignedchary)

{

unsignedcharres;

res=x+y;

returnres;

)

tt=add(100,50);

4.3函数命名方法:动名式,如DisplayLed。,或下划线式display_1ed()

四、课堂小结:

1、代码书写规范、

2、注释书写规范、

3、命名规范

4、函数的定义和编写

C语言常用英文注解

编程规范较多,学生不太愿意记,只能通过以后多练才行

审阅签名:年月日

第2周星期共8节2009年2月23-27日

课题LED流水灯程序编写实操授课方式

教学1、学会画proteaus图

2、掌握程序的固定格式实操

目的3、学会编程控制LED

重点掌握程序的固定格式

难点学会编程控制LED

教具课时8

一组织教学(2分钟)

1.清点人数,稳定学生情绪

2.提出上课要求

二实验设计

1、画电路图:

U1「

19

P0.1/AD1bfT

P0.2/AD2

18XTAL2P0.3/AD3

P0.4/AM

P0.6/AD5

P0.6/AC6FIB

RSTP0.7/AD7

P2.0//«a

P2.W阳

P2.2/A10

丸浸

PSENP2.3/A11

30

ALEP2.4/A1225

31EA26

P2.5/A1327

P2.6/A1428

P2.7/A15

,

1L1O令

P1.0P3.0/RXD

P1.1P3.1/TXDL1T1.

3.

P1.2P3.2ZINTO.

P1.3P3.3/INT1B.

P1.4P3.4ZT0.

6

P1.5P3.57T1.

7__

P1.6P3.6/WRH!.

_8_P1.7P3.7/RD

AT89C51

<TEXT>

2、程序编写:

#include”reg51.h”

#include<intrins.h>

#defineucharunsignedchar

#defineuintunsignedint

#defineulongunsignedlong

voiddelayMs(uintx);

voidsxLed(void);

voidmain()

(

while(l)

(

sxLed();

}

审阅签名:年月日

/*voidsxLed(void)

(

P2=0x01;//00000001

delayMs(200);

P2=0x02;//00000010

教delayMs(200);

P2=0x04;//00000100

学delayMs(200);

P2=0x08;//00001000

过delayMs(200);

P2=0xl0;//00010000

程delayMs(200);

P2=0x20;//00100000

delayMs(200);

P2=0x40;//01000000

delayMs(200);

由P2=0x80;//10000000

叔delayMs(200);

P2=0x80;//00000001

delayMs(200);

P2=0x40;//00000010

delayMs(200);

,P2=0x20;//00000100

delayMs(200);

P2=0xl0;//00001000

delayMs(200);

P2=0x08;//00010000

delayMs(200);

P2=0x04;//00100000

delayMs(200);

P2=0x02;//01000000

delayMs(200);

P2=0x01;//l0000000

delayMs(200);

}*/

voidsxled(void)

uchari,buf;

buf=OxO1;

for(i=0;i<8;i++)

(

P2=buf;

delayMs(200);

buf=buf«l;

)

buf=0x80;

for(i=0;i<8;i++)

{

P2=buf;

buf=buf»l;

delayMs(200);

)

}

voiddelayMs(uintx)

(

uchari;

while(x-)

(

for(i=0;i<250;i++)

(

_nop_();//4us*250=lms

_nop_();

_nop_();

_nop_();

)

)

}

C语言编程规范

刚开始写程序,学生无从下手,并且英文基础太差

审阅签名:年月日

第3周星期共8节2009年3月2-6日

课题静态数码管显示授课方式

静态数码管显示程序设计指引

教学(1)

(2)静态数码管显示程序编写实操

目的

讲授、实操

重点静态数码管显示程序设计

难点静态数码管显示程序程序编写实操

教具课时8

一组织教学(2分钟)

3.清点人数,稳定学生情绪

4.提出上课要求

二实验设计

1、画电路图:

2、程序编写:

#includenreg5l.h"

#include<intrins.h>

#defineucharunsignedchar

#defineuintunsignedint

#defineulongunsignedlong

voiddelayMs(uintx);

voidsxLed(void);

voidmain()

(

while(l)

(

xianshi_shumaguan();

)

)

〃静态显示数码管

voidxianshi_shumaguan()//4*5=20

(

ucharI;

教for(I=0;I<10;I++)

(

学P2=shuzi[i];

P3=Oxff;

过)

)

I

编写一个计算器的程序

¥

LEDTABLE的表有点难度,但同学们基本上都能理解,所以这个程序写起来比较容易

审阅签名:年月日

第4周星期共8节2009年3月8-13日

课题动态数码管显示授课方式

动态数码管显示程序设计指引

教学(1)

(2)动态数码管显示程序程序编写实操讲授、实操

目的

重点动态数码管显示程序设计

难点动态数码管显示程序程序编写实操

教具课时8

一组织教学(2分钟)

5.清点人数,稳定学生情绪

6.提出上课要求

二实验设计

1、画电路图:

2^程序编写:

#include"reg52.hH

#include<intrins.h>

#defineucharunsignedchar

#defineuintunsignedint

#defineShiJian5

〃用于控制数码管

ucharnum1,num2,num3,num4;

ucharsystime;

voiddelaylms(ucharshijian);

voidxianshi_shumaguan();

voidmain(void)

(

num1=num2=num3=num4=0;

while(l)

t

教//1000/20=50

xianshi_shumaguan();〃调用显示程序用时20ms

学systime++;

i

)

过)

程//显示数码管(动态扫描)50hz

voidxianshi_shumaguan()//4*5=20

(

P3=~0x01;//0xfe;〃打通第1只数码管

P2=0x3f;〃显示数码管(numl为捽制显示什么数子)

由delayIms(ShiJian);

彳P3=~0x02;〃打通第2只数码管

苗P2=0x06;〃显示数码管(num2为控制显示什么数子)

delaylms(ShiJian);

V

P3=~0x04;〃打通第3只数码管

P2=0x5b;〃显示数码管(num3为控制显示什么数子)

delaylms(ShiJian);

P3=~0x08;〃打通第4只数码管

P2=0x4f;〃显示数码管(num4为控制显示什么数子)

delayIms(ShiJian);

}

//延迟

voiddelaylms(ucharshijian)

{

uchari;

while(shijian—)

(

for(i=0;i<80;i++)

(

_nop_();

_nop_();

_nop_();

_nop_();

)

)

)

画led电路图

同学们对动态扫描的原理不太好理解,需要加强

审阅签名:年月日

第5周星期共8节2009年3月16-20日

课题动态数码管显示授课方式

动态数码管显示程序编写实操

教学(1)

(2)数组学习讲授、实操

(3)利用数组形式实现的动态数码管显示程序编写实操

目的

重点数组

难点利用数组形式实现的动态数码管显示程序编写实操

教具课时8

一组织教学(2分钟)

1、点人数,稳定学生情绪

2、提出上课要求

二实验设计:

1、数组原理讲解:

数组定义格式:ucharcodeTABLE[]={0x10,0x20};

2、程序编写:

b)回电路图:

•ABCDEFGDP

m

n

n

m

n

「X

.■10

-1PZ

c)程序编写:

#includeureg52.h"

#include<intrins.h>

#defineucharunsignedchar

#defineuintunsignedint

#defineShiJian5

codeucharshuzi[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};

//用于控制数码管

ucharnuml,num2,num3,num4;

ucharsystime;

voiddelaylms(ucharshijian);

voidxianshi_shumaguan();

voidmain(void)

(

num1=num2=num3=num4=0;

while(l)

{

//1000/20=50

xianshi_shumaguan();〃调用显示程序用时20ms

systime++;

)

}

〃显示数码管(动态扫描)50hz

voidxianshi_shumaguan()//4*5=20

(

P3=~0x01;〃0xfe;〃打通第1只数码管

P2=suzi[numl];〃显示数码管(numl为控制显示什么数子)

delayIms(ShiJian);

P3=~0x02;〃打通第2只数码管

P2=suzi[num2];〃显示数码管(num2为控制显示什么数子)

delayIms(ShiJian);

P3=~0x04;〃打通第3只数码管

P2=suzi[num3];〃显示数码管(num3为控制显示什么数子)

delay1ms(ShiJian);

P3=~0x08;〃打通第4只数码管

P2=suzi|num4|;〃显示数码管(num4为控制显示什么数子)

delayIms(ShiJian);

)

//延迟

voiddelaylms(ucharshijian)

(

uchari;

while(shijian")

教{

for(i=0;i<80;i++)

学(

_nop_();

过_nop_();

_nop_();

程_nop_();

)

)

)

t\

V

»-

编写一个delay100ms的子程序

同学们对动态扫描的原理不太好理解,需要加强

审阅签名:年月日

第5周星期共8节2009年3月16-20日

课题动态数码管显示授课方式

、态数码管显示程序编写实操

教学1

2、组学习

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论