《单片机应用技术》项目化课件 项目1-3 初识单片机-显示与键盘接口进阶_第1页
《单片机应用技术》项目化课件 项目1-3 初识单片机-显示与键盘接口进阶_第2页
《单片机应用技术》项目化课件 项目1-3 初识单片机-显示与键盘接口进阶_第3页
《单片机应用技术》项目化课件 项目1-3 初识单片机-显示与键盘接口进阶_第4页
《单片机应用技术》项目化课件 项目1-3 初识单片机-显示与键盘接口进阶_第5页
已阅读5页,还剩572页未读 继续免费阅读

下载本文档

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

文档简介

单片机应用技术18物联网核心课程项目化实施课程简约冬奥开幕式头脑风暴1.1.1认识硬件开发板及下载程序1.1.2

Proteus硬件仿真及下载程序任务1.1

让单片机动起来点灯项目1初识单片机1.1.1认识硬件开发板及下载程序案例引入任务1.1.1:让单片机动起来点灯(硬件开发板)LED1、认识硬件开发板我们的实验箱!12345678910111213141516171819204039383736353433323130292827262524232221VCCGNDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0XTAL2XTAL1RSTEAALEPSENRXD/TXD/INT0/INT1/T0/T1/WR/RD/2、任务硬件接口电路图2、任务硬件接口电路图3、硬件开发板连线4、掌握下载程序的方法连接下载线,打开实验板的电源,观察电源灯是否正常步骤1:选择芯片类型步骤2:选择串口号步骤3:选择波特率和“低速下载”步骤4:打开HEX文件D1闪烁

步骤5:下载程序P1D1blink.hex,观察结果1、计算机系统-》嵌入式系统-》嵌入式IC-》单片机MCU-》51单片机-》硬件接口+软件编程的开发方法2、演示任务1-1-1单片机动起来点灯(硬件开发板)使用“普

中ISP”软件下载.hex程序小结与作业作业:1、职教云课前:完成下次课堂的课前预习视频和小测(复习+预习内容)2、附件作业:参考预习视频和pptP19-P33,小组协作探究,个人提交作业,使用Proteus仿真实现任务1.1让单片机动起来(

P1.0控制黄灯闪烁)1.1.2Proteus硬件仿真及下载程序案例引入任务1.1.2:让单片机动起来点灯(Proteus仿真)LED12345678910111213141516171819204039383736353433323130292827262524232221VCCGNDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0XTAL2XTAL1RSTEAALEPSENRXD/TXD/INT0/INT1/T0/T1/WR/RD/1、任务硬件接口电路仿真步骤1:从库中选取需要的元件步骤2:在原理图中放置元件步骤3:连线步骤4:终端命名及修改元件参数1、任务硬件接口电路仿真器件清单序号名称型号/参数数量Proteus软件中对应元件名151单片机STC90516RD+1AT89C512晶振12MHz1CRYSTAL3电容30pF2CAP4电解电容10uF1CAP-ELEC5按键弹性按键1BUTTON6电阻10KΩ1RES7LED发光二极管黄色Ø5LED1LED-YELLOW8电阻510Ω1RES电路器件清单步骤1:从库中选取需要的元件步骤1:从库中选取需要的元件步骤1:从库中选取需要的元件步骤2:在原理图中放置元件选择“终端模式”放置power和ground步骤2:在原理图中放置元件——步骤3:连线步骤4:终端命名及修改元件参数双击左键双击左键1、任务硬件接口电路仿真小结2、配置P1D1blink.hex程序文件,测试运行效果1)单片机双击左键装载.hex程序2)点击运行观察闪灯任务1.1让单片机动起来点灯——嵌入式系统开发方法案例引入任务1.1让单片机动起来点灯外设LED灯的硬件接口电路?D1I。+5V510Ω限流电阻RLED硬件接口电路电流控制型器件LED导通压降UD=1.7VLED工作电流范围ID=3mA~20mA

为何是510Ω?10KΩ可否?R=200Ω-1KΩ案例引入任务1.1让单片机动起来点灯资源分配单片机接口电路P1.01个LED发光二极管闪烁控制:P1.0引脚输出为0,点亮LEDP1.0引脚输出为1,熄灭LED如何编程控制呢?4谢谢单片机应用技术18物联网核心课程项目化实施课程任务1.2

第一个C51程序:信号灯的闪烁1.2.1软件开发集成环境KeilC51(教材P2~11)1.2.2C51程序基本结构(教材P51)1.2.3单片机的内部结构与存储器(教材P13+P29~P34)

项目1初识单片机案例引入任务1.2:第一个C51程序:信号灯的闪烁

LED12345678910111213141516171819204039383736353433323130292827262524232221VCCGNDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0XTAL2XTAL1RSTEAALEPSENRXD/TXD/INT0/INT1/T0/T1/WR/RD/一、任务硬件接口设计二、任务软件编程点亮信号灯C语言程序先来点亮一盏灯吧!1.2.1软件开发集成环境KeilC51uVision是KEIL公司开发的集成开发环境(IDE)实现C51、ARM等MCU的嵌入式软件开发,完成编辑、编译、调试、仿真等流程Keil公司被ARM收购了KeilC51开发环境4种不同的产品STM32开发软件1、建立工程文件选择工程路径名好习惯tips:每个工程一个文件夹,清晰管理工程文件工程名1、建立工程文件——选择器件Keil4Keil5新工程1、建立工程文件2、建立并添加源文件C语言源程序名,必须有.c扩展名1)2)3)2、建立并添加源文件1)2)3)3、配置工程属性默认为工程名4、输入源程序5、工程编译6、编译成功,生成hex文件KeilC51软件开发任务小结步骤1:建立工程文件步骤2:建立并添加源文件1)新建源文件2)添加源文件3)输入源程序步骤3:工程配置:output选择输出hex文件新建工程新建源文件输入源程序添加源文件工程配置工程编译HEX文件步骤4:工程编译链接生成hex文件,有error则修改代码重新编译,直到生成

hex文件即可下载软硬件联调1软件开发集成环境KeilC512C51程序设计--》求同存异(编译预处理与函数结构,

reg51.h与SFR,sbit位端口定义,数据类型尽小选用)阶段小结与作业作业:1、完成下次课课前任务2、讨论区提交作业截图案例实现任务1.2:第一个C51程序:点亮信号灯

请尝试完成以下任务,各步骤名称请自己命名,尽量符合变量命名规则并包含学号信息:1、建立一个项目文件夹;2、在该文件夹中,建立hardware文件夹,保存新的Proteus工程文件,设计电路实现使用并行I/O端口P0~P3的任意一个位端口引脚,连接一个红色的LED;3、在KeilC51中建立工程,.c源文件,编码实现点亮红色LED的功能,配置工程属性(output),编译链接生成.hex文件(如果未生成.hex文件,则需检查.c文件在项目工程中、修改error、warning、配置output等各项常见问题);4、在Proteus硬件平台,下载.hex文件,软硬件联调。5、下次课讨论区,提交两个截图:1)keil工程+.c文件+编译成功的提示窗口整体截图;

2)Proteus运行点灯效果截图✎使用并行I/O口P0~P3的任意一个端口点亮一盏红灯一、硬件接口设计二、软件设计三、下载程序点亮信号灯C语言程序KeilC51编程点亮信号灯小结C51程序结构?1.2.2C51程序基本结构单片机C51语言是由C语言继承而来的。同:C51语言具有C语言结构清晰的优点,便于学习,同时具有汇编语言的硬件操作能力。异:编译器开发软件差异;C51语言运行于单片机平台,而C语言则运行于普通的桌面平台,运行环境CPU和数据存储器结构不同;数据类型存储结构差异。1.2.2C51程序基本结构求同存异点亮信号灯C语言程序编译预处理主函数1.2.2C51程序基本结构1、reg51.h?2、sbit?单片机有哪些资源模块实现控制功能?内部结构1.2.3单片机的内部结构与存储器爸妈一家之主

控制中心家里的行动节拍记忆力很好的大哥没记性反应快的二哥安排日程的二姐外交沟通的大姐孪生四兄弟处理应急事件的三姐51单片机的内部结构——和谐的大家庭存放程序存放数据51单片机的存储器结构了解:不同型号的51内核单片机,片内存储器资源容量有差异,以最基础的8051为例定性学习1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

3130292827262524242221片内RAM256B片内ROM4KB了解:4个物理存储器:片内ROM+RAM;片外ROM+RAM记忆力很好的大哥ROM:Read

Only

Memory,只读存储器用途:存放程序——程序存储器特点:可随机读数据,不能随机写数据掉电不丢失。1、片内ROM程序存储器123456789101112131415161718192040393837363534333231302928272625242422218051片内ROM4KB思考:1、地址编码与字节存储单元(二进制编码)?11H单元存储38H?2、字节Byte与位bit?数制——数值的表现形式:十六进制、二进制、十进制?8051为例:4K字节容量片内ROM1KB=1024字节,4KB=4096字节,从低地址0000H开始存储到?409617 11H16 10H15 FH14 EH13 DH12 CH11 BH10 AH9 9H8 8H7 7H6 6H5 5H4 4H3 3H2 2H1 1H0 0HFFFHFFEHFFDH……

……409540944093控制引脚/EA---VCC使用片内ROM1、片内ROM程序存储器没记性反应快的二哥RAM:

Random

Access Memory

,随机存取存储器特点:可以随机读写数据,掉电内容丢失通用RAM数据存储器容量:128×8bit用途:存放中间结果或临时数据变量2、片内RAM数据存储器00HFFH7FH80H(高128B)(低128B)数据存储器SFR片内RAM总容量?1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

313029282726252424222180318751805189C51片内RAM256B片内ROM4KBSFR?控制总台?用户变量存储区00HFFH7FH80H(高128B)(低128B)数据存储器SFR2、片内RAM数据存储器控制总台3、SFR特殊功能寄存器00HFFH7FH80H(高128B)(低128B)数据存储器SFRSFR字节地址BF0HACCE0HPSWD0HIPB8HP3B0HIEA8HP2A0HSBUF99HSCON98HP190HTH18DHTH08CHTL18BHTL08AHTMOD89HTCON88HPCON87HDPH83HDPL82HSP81HP080H在这128个字节单元中,SFR定义了与单片机内部结构资源相关的寄存器,而且只占用了21个单元,这21个单元的地址是不连续的没有出现在这里的单元是为单片机硬件升级的时候预留下来的,我们是不能使用的。在单片机的嵌入式开发中,对单片机硬件资源的控制开发,实际上就是对这些SFR寄存器的编程操作,这种开发模式称为“寄存器开发模式”单片机特殊功能寄存器SpecialFunctionRegister(SFR)寄存器开发模式点亮信号灯C语言程序1、reg51.h?2、sbit?SFR定义(reg51.h)单片机的硬件控制配置SFR寄存器*单片机的寄存器开发模式*单片机的寄存器开发模式端口的位操作单片机P1.0低电平发光二级管D1sbitD1=P1^0;D1=0;//位操作编程,端口输出0sbit——定义特殊功能寄存器中的可位寻址的位,即声明特殊功能位

部分可位寻址的SFR对应的地址都能被8整除?位和字节的关系就类似组员和小组的关系配置SFR寄存器实现硬件控制1、reg51.h?2、sbit?爸妈一家之主

控制中心家里的行动节拍记忆力很好的大哥没记性反应快的二哥安排日程的二姐外交沟通的大姐孪生四兄弟处理应急事件的三姐阶段小结与测试AT89C51AT89C521软件开发集成环境KeilC512C51程序设计--》求同存异(编译预处理与函数结构,

reg51.h与SFR,sbit位端口定义,数据类型尽小选用)3单片机的内部结构与存储器结构

--》ROM

--》RAM--》SFR(高128B)4单片机的寄存器开发模式:sfrP1=0x90;sbitD1=P1^0;D1=0;阶段小结与作业作业:1、完成下次课课前任务2、讨论区提交闪烁作业截图:keil工程+.c文件+编译成功窗口案例实现任务1.2:第一个C51程序:信号灯的闪烁

1、请修改代码,实现P1.0控制D1快速闪灯的效果1)主函数main流程图

2)延时子函数delayD1亮

->延时

->D1灭

->延时✎小组实践思考:函数三要素?循环四要素?对比教材16页的delay子函数理解for与while循环结构四要素的共同点Debug调试4谢谢数据类型长度值域unsignedchar无符号字符型1B0~255signedchar有符号字符型-128~+127unsignedint无符号整型2B0~65535signedint有符号整型-32768~+32767unsignedlong无符号长整型4B0~4294967295signedlong有符号长整型-2147483648~+2147483647float浮点型4B±1.175494E-38~±3.402823E+38*指针型1~3B对象的地址sfr特殊功能寄存器1B0~255sfr1616位特殊功能寄存器2B0~65535bit位类型1b0或1sbit可寻址位0或1C51编译器所支持的数据类型00HFFH7FH80H(高128B)(低128B)数据存储器SFR用户RAM资源紧缺——根据需求尽小选用低碳环保节能!返回单片机应用技术18物联网核心课程项目化实施课程任务1.2

第一个C51程序:信号灯的闪烁1.2.1软件开发集成环境KeilC51(教材P2~11)1.2.2C51程序基本结构(教材P51)1.2.3单片机的内部结构与存储器(教材P13+P29~P34)1.2.4

KeilC51Debug调试进阶和变量的存储方式(教材P40~P46+P81)

项目1初识单片机案例引入任务1.2:第一个C51程序:信号灯的闪烁

LED12345678910111213141516171819204039383736353433323130292827262524232221VCCGNDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0XTAL2XTAL1RSTEAALEPSENRXD/TXD/INT0/INT1/T0/T1/WR/RD/一、任务硬件接口设计二、任务软件编程点亮信号灯C语言程序先来点亮一盏灯吧!1.2.1软件开发集成环境KeilC51uVision是KEIL公司开发的集成开发环境(IDE)实现C51、ARM等MCU的嵌入式软件开发,完成编辑、编译、调试、仿真等流程Keil公司被ARM收购了KeilC51开发环境4种不同的产品STM32开发软件1、建立工程文件选择工程路径名好习惯tips:每个工程一个文件夹,清晰管理工程文件工程名1、建立工程文件——选择器件Keil4Keil5新工程1、建立工程文件2、建立并添加源文件C语言源程序名,必须有.c扩展名1)2)3)2、建立并添加源文件1)2)3)3、配置工程属性默认为工程名4、输入源程序5、工程编译6、编译成功,生成hex文件KeilC51软件开发任务小结步骤1:建立工程文件步骤2:建立并添加源文件1)新建源文件2)添加源文件3)输入源程序步骤3:工程配置:output选择输出hex文件新建工程新建源文件输入源程序添加源文件工程配置工程编译HEX文件步骤4:工程编译链接生成hex文件,有error则修改代码重新编译,直到生成

hex文件即可下载软硬件联调1软件开发集成环境KeilC512C51程序设计--》求同存异(编译预处理与函数结构,

reg51.h与SFR,sbit位端口定义,数据类型尽小选用)阶段小结与作业案例实现任务1.2:第一个C51程序:点亮信号灯

请尝试完成以下任务,各步骤名称请自己命名,尽量符合变量命名规则并包含学号信息:1、建立一个项目文件夹;2、在该文件夹中,建立hardware文件夹,保存新的Proteus工程文件,设计电路实现使用并行I/O端口P0~P3的任意一个位端口引脚,连接一个红色的LED;3、在KeilC51中建立工程,.c源文件,编码实现点亮红色LED的功能,配置工程属性(output),编译链接生成.hex文件(如果未生成.hex文件,则需检查.c文件在项目工程中、修改error、warning、配置output等各项常见问题);4、在Proteus硬件平台,下载.hex文件,软硬件联调。5、下次课讨论区,提交两个截图:1)keil工程+.c文件+编译成功的提示窗口整体截图;

2)Proteus运行点灯效果截图✎使用并行I/O口P0~P3的任意一个端口点亮一盏红灯一、硬件接口设计二、软件设计三、下载程序点亮信号灯C语言程序KeilC51编程点亮信号灯小结C51程序结构?1.2.2C51程序基本结构单片机C51语言是由C语言继承而来的。同:C51语言具有C语言结构清晰的优点,便于学习,同时具有汇编语言的硬件操作能力。异:编译器开发软件差异;C51语言运行于单片机平台,而C语言则运行于普通的桌面平台,运行环境CPU和数据存储器结构不同;数据类型存储结构差异。1.2.2C51程序基本结构求同存异点亮信号灯C语言程序编译预处理主函数1.2.2C51程序基本结构1、reg51.h?2、sbit?单片机有哪些资源模块实现控制功能?内部结构1.2.3单片机的内部结构与存储器爸妈一家之主

控制中心家里的行动节拍记忆力很好的大哥没记性反应快的二哥安排日程的二姐外交沟通的大姐孪生四兄弟处理应急事件的三姐51单片机的内部结构——和谐的大家庭存放程序存放数据51单片机的存储器结构了解:不同型号的51内核单片机,片内存储器资源容量有差异,以最基础的8051为例定性学习1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

3130292827262524242221片内RAM256B片内ROM4KB了解:4个物理存储器:片内ROM+RAM;片外ROM+RAM记忆力很好的大哥ROM:Read

Only

Memory,只读存储器用途:存放程序——程序存储器特点:可随机读数据(半导体结构的ROM),不能随机写数据

掉电不丢失。1、片内ROM程序存储器123456789101112131415161718192040393837363534333231302928272625242422218051片内ROM4KB思考:1、地址编码与字节存储单元(二进制编码)?11H单元存储38H?2、字节Byte与位bit?数制——数值的表现形式:十六进制、二进制、十进制?8051为例:4K字节容量片内ROM1KB=1024字节,4KB=4096字节,从低地址0000H开始存储到?409617 11H16 10H15 FH14 EH13 DH12 CH11 BH10 AH9 9H8 8H7 7H6 6H5 5H4 4H3 3H2 2H1 1H0 0HFFFHFFEHFFDH……

……409540944093控制引脚/EA---VCC使用片内ROM1、片内ROM程序存储器没记性反应快的二哥RAM:

Random

Access Memory

,随机存取存储器特点:可以随机读写数据,掉电内容丢失通用RAM数据存储器容量:128×8bit用途:存放中间结果或临时数据变量2、片内RAM数据存储器00HFFH7FH80H(高128B)(低128B)数据存储器SFR片内RAM总容量?1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

313029282726252424222180318751805189C51片内RAM256B片内ROM4KBSFR?控制总台?用户变量存储区00HFFH7FH80H(高128B)(低128B)数据存储器SFR2、片内RAM数据存储器控制总台3、SFR特殊功能寄存器00HFFH7FH80H(高128B)(低128B)数据存储器SFRSFR字节地址BF0HACCE0HPSWD0HIPB8HP3B0HIEA8HP2A0HSBUF99HSCON98HP190HTH18DHTH08CHTL18BHTL08AHTMOD89HTCON88HPCON87HDPH83HDPL82HSP81HP080H在这128个字节单元中,SFR定义了与单片机内部结构资源相关的寄存器,而且只占用了21个单元,这21个单元的地址是不连续的没有出现在这里的单元是为单片机硬件升级的时候预留下来的,我们是不能使用的。在单片机的嵌入式开发中,对单片机硬件资源的控制开发,实际上就是对这些SFR寄存器的编程操作,这种开发模式称为“寄存器开发模式”单片机特殊功能寄存器SpecialFunctionRegister(SFR)寄存器开发模式点亮信号灯C语言程序1、reg51.h?2、sbit?SFR定义(reg51.h)单片机的硬件控制配置SFR寄存器*单片机的寄存器开发模式*单片机的寄存器开发模式端口的位操作单片机P1.0低电平发光二级管D1sbitD1=P1^0;D1=0;//位操作编程,端口输出0sbit——定义特殊功能寄存器中的可位寻址的位,即声明特殊功能位

部分可位寻址的SFR对应的地址都能被8整除?位和字节的关系就类似组员和小组的关系配置SFR寄存器实现硬件控制1、reg51.h?2、sbit?爸妈一家之主

控制中心家里的行动节拍记忆力很好的大哥没记性反应快的二哥安排日程的二姐外交沟通的大姐孪生四兄弟处理应急事件的三姐阶段小结与测试AT89C51AT89C521软件开发集成环境KeilC512C51程序设计--》求同存异(编译预处理与函数结构,

reg51.h与SFR,sbit位端口定义,数据类型尽小选用)3单片机的内部结构与存储器结构

--》ROM

--》RAM--》SFR(高128B)4单片机的寄存器开发模式:sfrP1=0x90;sbitD1=P1^0;D1=0;阶段小结与作业案例实现任务1.2:第一个C51程序:信号灯的闪烁

1、请修改代码,实现P1.0控制D1快速闪灯的效果1)主函数main流程图

2)延时子函数delayD1亮

->延时

->D1灭

->延时✎小组实践思考:函数三要素?循环四要素?对比教材16页的delay子函数理解for与while循环结构四要素的共同点Debug调试1软件开发集成环境KeilC512C51程序设计--》求同存异(编译预处理与函数结构,

reg51.h与SFR,sbit位端口定义,数据类型尽小选用)3单片机的内部结构与存储器结构

--》ROM

--》RAM--》SFR(高128B)4单片机的寄存器开发模式:sfrP1=0x90;sbitD1=P1^0;D1=0;5C51程序结构复习:函数三要素(函数名;参数;返回值)

循环四要素(初始化;控制条件;循环体;循环修改)6KeilC51Debug断点、单步调试、端口调试、观察变量阶段小结与作业作业:1、完成下次课课前任务2、附件作业:提交工程文件夹task1_2+学号压缩包✎小组实践一下面来小组协作动手实践一下吧新建工程文件夹task1_2+学号,并在此文件夹内完成如下的硬件工程和软件工程。1、硬件设计:请另存任务1.1“让单片机动起来”闪灯控制的Proteus工程文件,命名为led4.pdsprj,完成P1.0,P1.1,P1.2,P1.3端口分别连接D1、D2、D3、D4共4个灯;2、软件设计1)自行完成新建工程task1_2+学号,新建源程序led4.c,并添加到工程中;2)实现控制4盏灯闪烁的功能,即实现控制P1.0,P1.1,P1.2,P1.3端口分别连接的D1、D2、D3、D4灯4个灯同时亮灭闪烁,编译链接工程,生成该工程的led4.hex文件(需配置工程output参数),下载程序并测试运行。3)拓展:D1D4一组,D2D3一组,交替亮灭闪烁呢?注释已有代码,编写本任务功能注意:延时子函数delay使用while或for均可。位操作✎小组实践二下面来小组协作动手实践一下吧1、硬件设计:请另存可用的Proteus工程文件,命名为led8.pdsprj,完成P1并行端口的8位依次连接D1~D8共8个灯;2、软件设计1)在已建工程task1_2+学号中,新建源程序led8.c,移除led4.c,添加led8.c到工程。2)编写代码实现P1.0~P1.7端口顺次连接的D1~D8共8个灯的整体控制,即D1~D8同时亮然后同时灭的闪烁功能。编译链接工程,生成该工程的led8.hex文件(需配置工程output参数),下载程序并测试运行。3)拓展:如果D1,D3,D5,D7一组,D2,D4,D6,D8一组,循环交替点亮闪烁呢?注释已有代码,编写本任务功能字节操作,如8位全亮:P1=0x00;8个信号灯控制系统C语言程序//程序名:led8.c//功能:8个LED闪烁控制#include<REG51.H>

//包含头文件REG51.H//函数名:delay//函数功能:实现软件延时//形式参数:无符号整型变量i//返回值:无voiddelay(unsignedinti){while(i--);

//i次空操作}voidmain()

//主函数{while(1)

//无限循环

{

P1=0x00;

//采用字节操作,点亮8个LED delay(20000);

//延时

P1=0xff;

//采用字节操作,熄灭8个LED delay(20000);//延时

}}预编译延时函数定义主函数开始P10x00延时延时P10xff字节操作(8位并行)1.2.4KeilC51Debug调试进阶和变量的存储方式1、Target——配置软件仿真晶振2、Debug——选择软件仿真Simulator3、编译链接后,可选择Debug运行4、单步调试,观察Register寄存器;Port端口等5、右键添加变量到watch窗口监测了解:选择硬件仿真器了解:堆栈stack变量的存储器类型默认为片内RAM(data)

变量的存储方式静态存储static局部变量全局变量动态存储局部变量(栈区)unsignedinti,count=1000;chardataled=0x7f;

bitflag=0;

voidmain(){…

}仿真调试ram.c,观察两种存储方式存储种类

数据类型存储器类型(片内data片外xdata程序code)变量名4谢谢数据类型长度值域unsignedchar无符号字符型1B0~255signedchar有符号字符型-128~+127unsignedint无符号整型2B0~65535signedint有符号整型-32768~+32767unsignedlong无符号长整型4B0~4294967295signedlong有符号长整型-2147483648~+2147483647float浮点型4B±1.175494E-38~±3.402823E+38*指针型1~3B对象的地址sfr特殊功能寄存器1B0~255sfr1616位特殊功能寄存器2B0~65535bit位类型1b0或1sbit可寻址位0或1C51编译器所支持的数据类型00HFFH7FH80H(高128B)(低128B)数据存储器SFR用户RAM资源紧缺——根据需求尽小选用低碳环保节能!返回了解:堆栈stack返回单片机应用技术18物联网核心课程项目化实施课程任务1.3

8个信号灯流水控制系统1.3.1单片机内部结构与外部引脚(教材P25)1.3.2硬件电路最小系统电路(教材P27)1.3.3单片机的工作过程(教材P33)1.3.4单片机的时序(教材P27)1.3.5巧用#define与typedef优化程序(教材P81)1.3.6使用~

及<<位运算符优化程序(教材P88)项目1初识单片机案例引入任务1.3:8个信号灯流水控制系统

从P1.0到P1.7依次循环点亮一个LED

P1.7P0.6P1.5P1.4P1.3P1.2P1.1P1.0一、任务硬件接口设计二、任务软件设计(功能分析+编程实现)P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.011111110111111011111101111110111111011111101111110111111011111110xfe0xfd0xfb0xf70xef0xdf0xbf0x7f二、任务软件设计(功能分析+编程实现)P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.011111110111111011111101111110111111011111101111110111111011111110xfe0xfb0xf70xef0xdf0xbf0x7f开始P1=0xfe;点亮LED1P1=0xfd;点亮LED2延时延时延时P1=0x7f;点亮LED8……0xfd开始P1=0xfe;点亮LED1P1=0xfd;点亮LED2延时延时延时P1=0x7f;点亮LED8……二、任务软件设计(编程实现)8个信号灯流水控制C51程序一、硬件设计二、软件设计三、下载程序✎思考下面来小组协作动手实践一下吧实现流水灯从高位到低位依次点亮1个LED

P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0作业:1、完成下次课课前任务2、附件作业:顺序结构实现8个信号灯的流水控制系统(从低到高),选作从高到低一、任务硬件接口设计单片机电路的最小系统1.3.1单片机的内部结构与外部引脚爸妈一家之主控制核心家里的行动节拍记忆力很好的大哥没记性反应快的二哥安排日程的二姐外交沟通的大姐孪生四兄弟处理应急事件的三姐控制总台51单片机的内部结构12345678910111213141516171819204039383736353433323130292827262524232221VCCGNDXTAL2XTAL1RSTRST(9):Reset,复位信号XTAL1(19):片内振荡器的反相放大器和外部时钟发生器的输入端XTAL2(18):片内振荡器的反相放大器和外部时钟发生器的输出端电源引脚接入单片机的工作电源VCC(40):接+5V电源GND(20):接地爸妈一家之主控制核心家里的行动节拍/PSEN(29):外部程序存储器读选通信号,低电平有效。ALE(30):地址锁存控制信号/EA(31):访问程序存储控制信号,通常接高电平。EAALEPSEN51单片机的外部引脚4039383736353433323130292827262524232221孪生四兄弟P0口(39~32):P0.0~P0.7引脚P1口(1~8):P1.0~P1.7引脚P2口(21~28):P2.0~P2.7引脚P3口(10~17):P3.0~P3.7引脚12345678910111213141516171819204039383736353433323130292827262524232221VCCGNDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0XTAL2XTAL1RSTEAALEPSEN其它资源的控制信号线复用P3引脚51单片机的外部引脚51单片机的外部引脚——I/O端口找一找:接口信号线大致分几类呢?51单片机的外部引脚——应用举例1.3.2单片机硬件电路最小系统1、时钟电路人的脉搏波振荡信号心脏时钟电路振荡信号fosc:6MHz,

12MHz,11.0592MHz起振电容C1和C2:30pf左右输入端输出端1、时钟电路1、时钟电路2、复位电路——死机死机是一种什么情况?——单片机的工作过程复位:恢复初始状态让单片机恢复到确定的初始状态让单片机从初始状态开始工作2、复位电路——复位状态Debug:Reset2、复位电路——复位条件2个机器周期以上fosc=12MHzT机器=1us2us8051复位条件?如何计算呢?——单片机的时序2、复位电路上电复位。。+5VGND10kΩ10μF按键复位电路.RESET高电平10kΩ10μF2、复位电路2、复位电路电源单片机ISP程序下载电路时钟电路复位电路单片机最小系统3、单片机应用系统的最小系统控制引脚/EA---VCC使用片内ROMISP程序下载电路ISP程序下载电路1.3.3单片机的工作过程程序存储器ROM0000H0001H0002H0003H0000H1.3.3单片机的工作过程——PC程序计数器PC(16位)ProgramCounterPC的内容为下一条要执行指令的地址有自动加1功能,从而控制程序的顺序执行取指-》译指-》执行-》PC+1…运算器ALUarithmeticandlogicunit+控制器ACC?SFR字节地址BF0HACCE0HPSWD0HIPB8HP3B0HIEA8HP2A0HSBUF99HSCON98HP190HTH18DHTH08CHTL18BHTL08AHTMOD89HTCON88HPCON87HDPH83HDPL82HSP81HP080H在SFR中,寄存器B、累加器ACC,程序状态字PSW、数据指针DPH和DPL、堆栈指针SP都属于单片机的系统SFR寄存器,系统运行的时候默认使用它们,在程序中基本上是不会出现的。1.3.4单片机的时序小明同学的一天1、单片机时序单片机操作的时间次序1、单片机时序单位汇总晶振频率振荡信号频率fosc振荡信号周期Tosc(节拍P)状态时钟S机器周期(最基本时序单位)2分频6分频单周期指令双周期指令四周期指令foscToscTosc=1/foscT机器与Tosc关系?T机器=12*Tosc=12

/fosc

例如:fosc=6MHzT机器=12

/(6*106)=2us如果fosc=12MHz?

2、机器周期与指令周期机器周期:是单片机中最基本的时间单位,其频率是晶振频率的12分频。8个信号灯闪烁控制C语言程序延时时间=?把执行指令的时间累加起来2、机器周期与指令周期机器周期:单片机中最基本的时间单位指令周期:一条指令执行的时间单周期指令:执行时间1个机器周期双周期指令:执行时间2个机器周期四周期指令:执行时间4个机器周期操作码70数据或寻址方式70双字节指令:标号:操作码操作数或操作数地址;注释单字节指令:操作码70三字节指令:操作码70数据或寻址方式70数据或寻址方式708051汇编指令按字节长度可以分为三种:指令的格式:例如:MOVA,R0;1指令周期例如:MOVA,30H;1指令周期例如:MOVDPTR,#2010H;2指令周期2、机器周期与指令周期R0工作寄存器;ACC累加器,DPTR数据指针80FF专用寄存器区SFR7F第0组工作寄存器第3组001F2F2030位寻址区(位地址00H~7FH)用户RAM区(堆栈、数据缓冲)第1组第2组R0R7R0R7R0R7R0R7

MCS-51内部RAM数据存储器分配系统SFR寄存器,无需编程8个信号灯流水控制C语言程序2、机器周期与指令周期开发tips:高级语言C51无需关注以上这些汇编指令周期和工作寄存器Rn等细节,由编译器完成此项分配工作!程序员仅需要定义变量,编写语句,实现功能即可!1单片机外部引脚及硬件电路最小系统2单片机的工作过程(PC)3单片机的时序(机器周期)阶段小结4谢谢单片机应用技术18物联网核心课程项目化实施课程任务1.3

8个信号灯流水控制系统1.3.1单片机内部结构与外部引脚(教材P25)1.3.2硬件电路最小系统电路(教材P27)1.3.3单片机的工作过程(教材P33)1.3.4单片机的时序(教材P27)1.3.5巧用#define与typedef优化程序(教材P81)1.3.6使用~

及<<位运算符优化程序(教材P88)项目1初识单片机案例引入任务1.3:8个信号灯流水控制系统

从P1.0到P1.7依次循环点亮一个LED

P1.7P0.6P1.5P1.4P1.3P1.2P1.1P1.0一、任务硬件接口设计二、任务软件设计(功能分析+编程实现)P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.011111110111111011111101111110111111011111101111110111111011111110xfe0xfb0xf70xef0xdf0xbf0x7f开始P1=0xfe;点亮LED1P1=0xfd;点亮LED2延时延时延时P1=0x7f;点亮LED8……0xfd开始P1=0xfe;点亮LED1P1=0xfd;点亮LED2延时延时延时P1=0x7f;点亮LED8……二、任务软件设计(编程实现)8个信号灯流水控制C51程序一、硬件设计二、软件设计三、下载程序1.3.4巧用#define和tyepdef优化程序有没有规律可寻呢?1.3.5使用~及<<位运算符优化程序1、使用~位运算符优化程序按位取反~:将一个二进制数的所有位都取反1、使用~位运算符优化程序按位取反~:将一个二进制数的所有位都取反0xfe->~0x010xfd->~0x02…左移运算:<<运算法则:操作数左移若干位后,高位丢弃,低位补0。右移运算:>>运算法则:操作数右移若干位后,低位丢弃,高位补0。2、使用<<位运算符优化程序左移运算:<<例如:m<<n,高位丢弃,低位补0例:m=182;转换成二进制形式,n=42、使用<<位运算符优化程序01100000a<<b=01100000D7D6D5D4D3D2D1D01111100000001011丢掉注意变量数据类型的适用!案例实现任务1.3:8个信号灯流水控制系统

从P1.0到P1.7依次循环点亮一个LED

P1.7P0.6P1.5P1.4P1.3P1.2P1.1P1.01、采用顺序结构的流水灯:**依次输出状态码2、采用移位+循环的流水灯(P51):**循环四要素:配置状态码初值;反码输出,每次状态码移一位✎小组实践实践1、请尝试使用<<运算符和循环结构编码实现8个信号灯流水控制系统(低位到高位)。提示(流程图):循环初始化:状态码ledCode初值0x01;循环变量i=0;

循环控制:8次,即i<8;

循环体:ledCode取反后控制P1端口输出;延时;

循环修改:修改下一次状态码为ledCode左移1位;

循环从哪里开始:循环初始化重复做的事情:循环体下次循环的状态:修改循环变量

和状态控制循环的结束:循环条件ledCode<<=1;//状态码移位修改i++;ledCode=0x01;//0xfe;状态码初始值i=0;//for循环参数P1=~ledCode;

//用状态码点灯

delay(20000);//延时i<8;实践1、使用<<运算符和循环结构编码实现8个信号灯流水控制系统(低位到高位)。

采用移位运算实现流水灯控制系统C语言程序✎小组实践下面来小组协作动手实践一下吧

拓展1、用>>运算符和循环结构优化实现流水灯从高位到低位依次点亮1个LED

P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0✎小组实践下面来小组协作动手实践一下吧

拓展2、实现流水灯从高位到低位依次点亮1个,2个,…….直到8个LED全亮。

P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.00

000

00

000

0000001000000

110

000

01

11

0000

11

11

0001

11

11

0011

11

1101

11

11

1

11单片机硬件电路最小系统2单片机的工作过程(PC)3单片机的时序4、#define和typedef作用5位运算符~<<>>小结4谢谢单片机应用技术18物联网核心课程项目化实施课程任务1.4

让蜂鸣器发声1.4.1认识蜂鸣器1.4.2单片机的并行I/O口项目1初识单片机案例引入任务1.4:让蜂鸣器发声

一、任务硬件接口设计认识蜂鸣器四个并行I/O?1.4.1认识蜂鸣器

?在计算机中,简单的提示音,是什么器件发出来的呢?蜂鸣器实物电路符号1.4.1认识蜂鸣器+

-有源蜂鸣器V不能超过标注的额定值+

-无源蜂鸣器频率一般在2kHz~5kHz,频率越高,音调也就越高9mm8mm+

-

?蜂鸣器的分类震荡源1.4.1认识蜂鸣器1、蜂鸣器电路模块1、蜂鸣器电路模块如何接入单片机呢?1.4.2单片机的并行I/O口并行I/O接口CPU并行I/O接口外部设备01001100一排横队并排走1.4.2单片机的并行I/O口P1P0P2P38位双向8位双向8位双向8位双向单片机通用并行I/O接口P0、P1、P2和P31.4.2单片机的并行I/O口P1P0P2P3单片机并行I/O口的兼职8位双向8位双向8位双向8位双向一专多能P0口简单专职P1口专兼皆备P2口第二功能身兼两职P3口1.4.2单片机的并行I/O口复习思考:接口信号线大致分几类呢?P1P0P2P3+5V。4.7K×8输出操作P0口需外接上拉电阻才能有高电平输出P1、P2和P3口作为输出端口使用时,外接可以不接上拉电阻。低电平灌电流输出(大

温馨提示

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

最新文档

评论

0/150

提交评论