书签 分享 收藏 举报 版权申诉 / 126
上传文档赚钱

类型C51单片机技术应用与实践课件第2章.pptx

  • 上传人(卖家):晟晟文业
  • 文档编号:3622431
  • 上传时间:2022-09-27
  • 格式:PPTX
  • 页数:126
  • 大小:4.67MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《C51单片机技术应用与实践课件第2章.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    C51 单片机 技术 应用 实践 课件
    资源描述:

    1、第二篇 单片机基础篇课程内容理论理论实践任务1 点亮交通灯理论认知1 问题提出:理论认知1十字路口交通灯模型理论认知1任务从简单到复杂,从单一到综合亮单灯、闪烁单灯、跑马灯、数码管动态显示字符、带数码管显示的十字路口交通灯5个小任务。在任务的学习和体验中,体会单片机的编程思路理论认知1【知识目标】(1)学习利用I/O控制等点亮的工作原理;(2)一般单片机C程序的编写结构;(3)学习头文件、宏定义的作用;(4)区分全局变量和局部变量的差异;(5)子函数的使用方法。【能力目标】(1)会根据要求设计灯的控制点亮,并能根据要求设计参数;(2)熟练掌握单片机C程序的结构;(3)正确选用变量并正确设置数据

    2、类型;(4)选择正确的头文件,并正确进行变量申明;(5)正确书写主函数、子函数。总体目标理论认知1学习目标【知识目标】(1)掌握单片机最小系统硬件组成;(2)初步了解程序设计的概念。【能力目标】(1)进行单片机最小系统的硬件搭建;(2)学习并应用相关的单片机开发工具;(3)初步进行软件程序的设计。1.1点亮单灯理论认知1 用单片机来实现对一个发光二极管实现点亮的功能。用单片机的P1.0口来点亮一个发光二极管。理论认知1123456ABCD654321DCBATitleNumberRevisionSizeBDate:2-Feb-2009 Sheet of File:D:新研新建文件夹PCB版.D

    3、DBDrawn By:D1R1+5V 要保证图中二极管点亮,发光二极管需要正向导通,回路中电流310mA,发光二极管导通时电压降以1.7V估算,R1在此电路中的选择范围为3301k,我们在本次任务中取510。用单片机的I/O口控制二极管的亮灭只需由P1端口的P1.0送出低电平,二极管就被点亮,反之就熄灭。理论认知1任务从简单到复杂,从单一到综合亮单灯、闪烁单灯、跑马灯、数码管动态显示字符、带数码管显示的十字路口交通灯5个小任务。在任务的学习和体验中,体会单片机的编程思路实践训练21.硬件设计(1)仿真原理图单片机控制的发光二极管亮灭原理图任务实施实践训练22.软件编程(1)端口分配用单片机的P

    4、1.0口来控制二极管的亮灭,单片机上电时,P0P3端口的每一位都处于高电平状态,P1.0=1,二极管处于熄灭状态,通过软件编程改变P1.0,使之变为0而使二极管被点亮。实践训练2(2)程序流程 程序流程比较简单,此处略。(3)具体程序/-/名称:亮灭单灯/-/说明:light按所给的电平亮灭发光二极管/-#includesbit light=P10;/声明控制发光二极管亮灭端口为port 1的第0位void main()/主函数while(1)/死循环 light=0;/给变量light低电平,就是给P1.0低电平,此时灯处于常亮状态实践训练23.点亮单灯仿真效果实践训练21.21.2单灯闪烁

    5、单灯闪烁目标要求目标要求要求二极管亮灭闪烁的时间为200ms,控制端口仍然采用P1.0口。问题分析问题分析200 ms P1.0时序硬件设计同点亮单灯实践训练2软件编程软件编程端口分配同点亮单灯程序流程程序流程实践训练2具体程序具体程序/-/名称:单灯闪烁/-/说明:light按所给的电平点亮或熄灭二极管/-#include#define uchar unsigned char#define uint unsigned intsbit light=P10;/声明控制二极管闪烁端口为port 1的第0位实践训练2/-/延时子函数,延时单位为xms/-void delayms(uint x)/延时

    6、函数声明和定义,x为形参uint i,j;for(i=0;ix;i+)for(j=0;j120;j+);/注意上个for语句与本句for语句之不同,本句属于for语句嵌套,/省略了括号,所以本节是带分号的实践训练2/-/主函数/-void main()while(1)/为死循环,在这里是反复实现二极管的交替状态 light=light;/二极管的状态改变,原来为1,即可起为0,反之,亦然delayms(100);/二极管状态保持100ms后,由于while(1)语句,返回上一句执行取反 实践训练2单灯闪烁仿真效果单灯闪烁仿真效果实践训练21.31.3跑马灯跑马灯目标要求目标要求 P1口的8位分

    7、别接着二极管,通过编程依次实现P1口8个二极管由低位到高位依次点亮和熄灭,依次点亮的时间为200ms。问题分析问题分析跑马灯要求P1口产生的时序实践训练2硬件设计仿真原理图仿真原理图软件编程端口分配端口分配P1口来控制二极管的轮流点亮程序流程程序流程实践训练2具体程序具体程序(1)采用循环左移的编程#include#include/添加此项头文件,是考虑主程序中用到_crol_循环左移函数,而此函/数包含在此项文件中#define uchar unsigned char#define uint unsigned intvoid delayms(uint x)/实现延时x(单位ms)uchar

    8、t;while(x-)/此处也可以用for(i=0;ix;i+),效果一样,体会不同语句的编法实践训练2for(t=0;t120;t+);void main()P1=0 xfe;/跑马灯初始点亮状态为P1.0点亮while(1)P1=_crol_(P1,1);/循环左移,最高位送至最低位,形成封闭的左循环,每一次/向左移动一位实践训练2delayms(200);/跑马灯过程中每个灯的状态保持200ms(2)采用布尔移位运算的编程#include#define uchar unsigned char#define uint unsigned intuchar aa;/定义全局变量aavoid d

    9、elayms(uint x)/延时x(单位为ms)子函数实践训练2uchar t;while(x-)for(t=0;t120;t+);void main()while(1)实践训练2uchar i;aa=0 xfe;/设置跑马灯初始点亮的灯 for(i=0;i8;i+)/8盏跑马灯 P1=aa;delayms(200);aa=aa1|0 x01;/布尔运算符,每次向左移一位,但不形成封闭的循环,/最高位的1会消失,为弥补这个缺陷,每次移位后在最低位加上1 实践训练2(3)采用一维数组的编程/*跑马灯*/=声明区=#include#defineuchar unsigned char#define

    10、turn P1/用turn变量定义P1口/*声明8盏灯从低到高分别点亮时端口应对应的数据*/char code TAB8=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;/*延迟函数,延迟约x(单位为ms)*/void delay(int x)/延迟函数开始实践训练2int i,j;/声明整数变量i、jfor(i=0;ix;i+)/计数x次,延迟xfor(j=0;j120;j+);/计数120次,延迟1ms/延迟函数结束/=主程序=void main()/主程序开始uchar i;/声明无符号字符型变量iwhile(1)/死循环,程序一直跑for

    11、(i=0;i8;i+)/显示07,共8次实践训练2turn=TABi;/显示数字delay(200);/延迟200ms/for循环结束/主程序结束实践训练2跑马灯仿真效果跑马灯仿真效果实践训练1.41.4数码管动态显示多个不同字符数码管动态显示多个不同字符目标要求目标要求在8位集成式数码管上同时显示多个不同的字符探究学习探究学习1.数码管的种类 a)共阴极 b)共阳极 c)管脚配置图2-14 LED显示器2实践训练22.数码管的段码LED显示器的字段码(七段码)显示字符共阴极字码段共阳极字码段显示字符共阴极字码段共阳极字码段03FHC0H96FH90H106HF9HA77H88H25BHA4H

    12、B7CH83H34FHB0HC39HC6H466H99HD5EHA1H56DH92HE79H86H67DH82HF71H8EH707HF8HP73H8CH87FH80H熄灭00HFFH实践训练2(1)静态显示(2)动态显示实践训练2硬件设计硬件设计 8个数码管共阳动态显示,选用P0口作为段码输出,用8个限流电阻控制数码管的亮度,P2口作为8个数码管的片选,显示最低位至最高位时由P2口依次送出0 x80、0 x40、0 x20、0 x10、0 x08、0 x04、0 x02、0 x01,考虑用三极管驱动来增大片选的驱动能力。1.仿真原理图实践训练2软件编程软件编程1.端口分配 P0口作为段码口,

    13、P2口作为位选口,P2.7对应数码管的高位,P2.0对应低位。8只数码管显示多个不同字符流程图程序流程程序流程8只数码管显示多个不同字符流程图实践训练2具体程序具体程序/*8只数码管显示多个不同字符*/=声明区=/数码管动态扫描显示18#include#include#define uchar unsigned char#define uint unsigned int/各数字的数码管共阳段码uchar code DSY_CODE=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;实践训练2/-/延时x(单位为ms)/-vo

    14、id delayms(uint x)uchar i;while(x-)for(i=0;i120;i+);/-/主程序/-实践训练2void main()uchar k,m=0 x80;P0=0 xff;/数码管处于不显示状态P2=0 x00;/数码管未被选中while(1)for(k=0;k8;k+)m=_crol_(m,1);/从最低位开始选起P2=m;实践训练2P0=DSY_CODEk+1;/从数字1开始显示delayms(2);/延时2ms 数码管动态显示多个不同字符仿真效果图实践训练21.51.5带数码管显示的十字路口交通灯带数码管显示的十字路口交通灯目标要求目标要求 东西方向定义为a

    15、线方向,南北方向定义为b线方向,要求a线方向绿灯亮20s,同时b线方向红灯亮20s,20s时间到,a线方向黄灯闪烁5s,1次/s实践训练2问题分析问题分析十字路口交通灯的时序实践训练2硬件设计硬件设计 对南北和东西向的指示灯进行分配,具体如下:P0.0、P0.1、P0.2分配给东西向的红、黄、绿灯,P0.3、P0.4、P0.5分配给南北向的红、黄、绿灯。由于采用的是数码管共阴动态显示,P2.0、P2.1作为南北向b线数码管高位和低位片选,低电平为选中数码管,P2.2、P2.3作为东西向a线数码管高位和低位片选,低电平为选中数码管。P3口作为段码的输出口。实践训练2 任务实施1.硬件设计 对南北

    16、和东西向的指示灯进行分配,具体如下:P0.0、P0.1、P0.2分配给东西向的红、黄、绿灯,P0.3、P0.4、P0.5分配给南北向的红、黄、绿灯。由于采用的是数码管共阴动态显示,P2.0、P2.1作为南北向b线数码管高位和低位片选,低电平为选中数码管,P2.2、P2.3作为东西向a线数码管高位和低位片选,低电平为选中数码管。P3口作为段码的输出口。实践训练2123456ABCD654321DCBATitleNumberR evisio nSizeBDate:12-Mar-201 4Sh eet of File:F:1-教学教材4-C 51单片机技术应用与实践C 51单片机技术应用与实践(陆旭

    17、明编写部分)万年历+交通灯改+双机通信1.DdbDrawn B y:VCC40GND20R ST9X119X218PSEN29ALE30(AD0)P0.039(AD1)P0.138(AD2)P0.237(AD3)P0.336(AD4)P0.435(AD5)P0.534(AD6)P0.633(AD7)P0.732P1.0/T21P1.1/T2EX2P1.2/R XD13P1.3/TXD14P1.4/INT25P1.5/INT36P1.6/INT47P1.7/INT58(A8)P2.021(A9)P2.122(A1 0)P2.223(A1 1)P2.324(A1 2)P2.425(A1 3)P2.

    18、526(A1 4)P2.627(A1 5)P2.728P3.0/R XD010P3.1/TXD011P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/W R16P3.7/R D17EA31U1AT89S51Y16MHzC315PC215PC110UF16V1122S1SW-SPSTR1310KR10220R12220R11220R9220R8220R7220R6220R5220R4220R1220R2220R3220D10LED-GD11LED-YD12LED-RD7LED-RD8LED-YD9LED-GD3LED-G1A2KD1LED-RD2LED-Y

    19、D6LED-GD5LED-YD4LED-RP0.0P0.1P0.2P0.2P0.1P0.0P0.3P0.4P0.5P0.5P0.4P0.3P0.0P0.1P0.2P0.3P0.4P0.5P2.0P2.1P2.2P2.3X1X2+5 VRSTRSTX1X2+5 V1234567891110JP2R S23 2_TxDR S23 2_R xD1310118129147C 1+1C 2+4GND15C 1-3VCC16R 1T1T2R 2C 2-5V-6V+2U2MAX2 02C PEC 40.1u FC 50.1u FC 80.1u FC 60.1u F+5 VC 70.1u FTx DR S23

    20、 2_TxDR S23 2_R xDR xD123JP1C ON3+5 VabcdefgdpR xDTx DA10B9C1D4E3F6G5DP2abfcgdedpabfcgdedpCS18CS27U4LG56 21DHA10B9C1D4E3F6G5DP2abfcgdedpabfcgdedpCS18CS27U3LG56 21DHR 142KR 1610 0R 155.1KR 172KR 1910 0R 185.1KQ1Q2Q3E2C3B1Q4R 202KR 2210 0R 215.1KR 2510 0R 245.1KR 232KP2.0P2.1P2.2P2.3+5 V+5 V+5 V+5 Vab

    21、cdefgdpabcdefgdp+5 V+5 V带数码管显示的十字路口交通灯原理图实践训练2软件编程软件编程1.程序流程实践训练22.具体程序/*带数码管显示的十字路口交通灯*/=声明区=#include#define uchar unsigned char#define uint unsigned intsbit red_a=P00;sbit yellow_a=P01;sbit green_a=P02;sbit red_b=P03;实践训练2sbit yellow_b=P04;sbit green_b=P05;uchar time;#define SEGP3/定义七段显示器接至Port 3/

    22、*声明七节显示器驱动信号阵列(共阴)*/char code TAB10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,/数字040 x6d,0 x7d,0 x07,0 x7f,0 x6f;/数字59uchar operation_type=1;/*延迟函数,延迟约x(单位为ms)*/void delayms(int x)实践训练2int i;while(x-)for(i=0;i120;i+);/*动数码管态显示*/void display(int x)int i,j;j=x/4;for(i=0;ij;i+)实践训练2uchar shi,ge;shi=time/10;ge=time

    23、%10;P2=0 xfa;/选中a、b线中高位数码管P2.3、P2.1SEG=TABshi;/取十位段码delayms(2);/十位段码亮2msP2=0 xf5;/选中a、b线中低位数码管P2.4、P2.2SEG=TABge;/取个位段码delayms(2);/个位段码亮2ms实践训练2 void traffic_light()/交通灯的一个周期4个状态switch(operation_type)/从第一个状态进入,依次转入下个状态 uchar i;case1:red_a=1;yellow_a=1;green_a=0;/第一个状态下a线各个灯的状态red_b=0;yellow_b=1;gree

    24、n_b=1;/第一个状态下b线各个灯的状态time=21;/第一个状态保持时间while(time-)实践训练2for(i=0;i5;i+)display(200);operation_type=2;/进入第二个状态阶段break;case 2:time=6;while(time-)for(i=0;i10;i+)实践训练2display(100);yellow_a=!yellow_a;green_a=1;/第二个状态下a线黄灯闪烁状态 operation_type=3;/进入第三个状态阶段break;case 3:red_a=0;yellow_a=1;green_a=1;/第三个状态下a线各个

    25、灯的状态red_b=1;yellow_b=1;green_b=0;/第三个状态下b线各个灯的状态 time=21;/第三个状态保持时间while(time-)实践训练2for(i=0;i5;i+)display(200);operation_type=4;/进入第四个状态阶段break;case 4:time=6;while(time-)for(i=0;i10;i+)display(100);实践训练2yellow_b=!yellow_b;green_b=1;/第四个状态下b线黄灯闪烁状态operation_type=1;/返回到第一个状态void main()/交通灯主函数while(1)t

    26、raffic_light();/4个状态为一个周期无限循环 实践训练2实践训练2带带数码管显示的十字路口交通灯安装与调试数码管显示的十字路口交通灯安装与调试带数码管显示的十字路口交通灯装配图实践训练2交通灯电路调试结果总结3 任务小结通过本次任务的学习,初步使用了Keil C软件,应用该软件新建工程项目文件,编写程序、生成单片机可执行的*.hex文件,通过仿真软件Proteus 进行仿真调试,感受单片机程序设计的趣味性,在程序编写过程中应注意变量的正确设置,把握程序流程控制,进行正确的电路安装调试。谢谢!第二篇 单片机基础应用课程内容理论理论实践任务2 设计叮咚门铃理论认知1 问题提出:理论认

    27、知1对于一个单片机初学者要完成这样的一个项目为时太早,为了完成这个项目必须通过循序渐进地完成独立式按键控制、行列式键盘控制、定时器与按键组合应用多个不同字符等任务方能完成,这几个任务从简单到复杂,从单一到综合,在任务的学习和体验中,体会单片机的编程思路,进而在对电子琴音阶时序控制的基础上完成整个项目的设计与程序编写,达到单片机的初步设计与编程的要求。理论认知1【知识目标】(1)掌握独立式键盘和行列式键盘的工作原理;(2)了解定时/计数器的工作原理;(3)了解定时/计数器的控制寄存器定义和使用方法;(4)掌握定时/计数器的控制及应用;【能力目标】(1)能对独立式键盘进行程序编写;(2)能应用行列

    28、式键盘实现不同功能的要求;(3)学会定时/计数器相关寄存器的设置;(4)学会用查询或中断的方式实现单片机对定时/计数器的应用;总体目标理论认知12.2.1 设计独立式按键 搭建独立式按键的硬件电路,能实现按键按下对应指示灯亮的功能。理论认知1用单片机的P1口来设计8个独立式按键,当P1.0对应的按键按下时,对应的P2.0对应的指示灯点亮,当当P1.1对应的按键按下时,对应的P2.1对应的指示灯点亮,依次8个按键按下和其相应的指示灯点亮,松开按钮时对应指示灯熄灭。理论认知1 每个按键按下后,根据其所处的端口位置不同,对应给出不同的键值,根据键值的不同查表对应显示不同的指示灯点亮,每个键值点亮对应

    29、的一盏指示灯。理论认知12.硬件方案用8个独立按钮分别控制8个发光二极管,只需用到单片机的基本I/O口,用单片机最小系统就可以达到要求。实践训练21.硬件设计(1)仿真原理图独立式按键仿真原理图任务实施P20P21P22P23P24P25P26P27P30P31P32P33P34P35P36P17P16P15P14P13P12P11P10P10P11P12P13P14P15P16P17P37P20P21P22P23P24P25P26P27XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/A

    30、D435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C130PFS1S2S3S4S5S6S7S8C310uFR1110kR1210kR1310kR1410kR1510kR16

    31、10kR1710kR1810kC230PFR2010kX1CRYSTALR1220R2220R3220R410kR5220R6220R7220R8220D1LED-YELLOWD2LED-YELLOWD3LED-YELLOWD4LED-YELLOWD5LED-YELLOWD6LED-YELLOWD7LED-YELLOWD8LED-YELLOW实践训练22.软件编程(1)端口分配用单片机的P1口分别作为独立式键盘的扫描端口,P2口作为发光二极管控制口,单片机上电时,P1、P2端口的每一位都处于高电平状态,发光二极管处于熄灭状态,通过软件编程P1口一旦某一位变为低电平,则所对应的P2口的某一位发光

    32、二极管被点亮。实践训练2(2)程序流程 实践训练2(3)具体程序 见书65页68页P20P21P22P23P24P25P26P27P30P31P32P33P34P35P36P17P16P15P14P13P12P11P10P10P11P12P13P14P15P16P17P37P20P21P22P23P24P25P26P27XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P

    33、1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C130PFS1S2S3S4S5S6S7S8C310uFR1110kR1210kR1310kR1410kR1510kR1610kR1710kR1810kC230PFR2010kX1CRYSTALR1220R2220R3220R4220R522

    34、0R6220R7220R8220D1LED-YELLOWD2LED-YELLOWD3LED-YELLOWD5LED-YELLOWD6LED-YELLOWD7LED-YELLOWD8LED-YELLOWD4LED-YELLOW实践训练23.独立式按键扫描仿真效果理论认知12.2.2 设计行列式键盘 将键盘设计成44行列式键盘,从左往右依次为第0列、第1列、第2列、第3列,从上往下依次为第0行、第1行、第2行、第3行,每个按键处于不同的行址和列址,每个按键分别对应于不同的键值,本任务将实现根据按键的不同能显示其对应的键值目标。理论认知1要求设计44行列式键盘,实现按哪个按键就显示其对应的键值的数字

    35、。理论认知1 根据按键按下的位置不同,找出其相应的行和列的地址,根据其行和列的地址计算其相应的键值。理论认知12.硬件方案44行列式键盘扫描实践训练21.硬件设计(1)仿真原理图44行列式键盘扫描电路仿真原理图任务实施实践训练22.软件编程(1)端口分配选择P2口作为44行列式键盘扫描口,P0口作为数码管段码控制端口。实践训练2(2)程序流程 实践训练2(3)具体程序 见书72页74页实践训练23.44行列式键盘扫描仿真效果理论认知12.2.3 用定时器设计叮咚门铃 用单片机来实现叮咚门铃。理论认知1用单片机的P1.7口来实现按钮的触发功能,P3.0实现蜂鸣器的发声。理论认知1叮咚门铃的声音频

    36、率不同,对应的周期参数也不同,采用可编程定时器/计数器设计叮咚门铃声的定时参数不同,需要根据各自的定时周期计算出各自的定时初值,启动定时器/计数器来发出不同的声音,同时,各自的声音需要保留一定的时间。理论认知12.硬件方案用单片机的I/O口驱动蜂鸣器,当启动按键按下,蜂鸣器开始发出叮咚声。实践训练21.硬件设计(1)仿真原理图叮咚门铃仿真原理图任务实施实践训练22.软件编程(1)端口分配用单片机的P1.7口作为门铃的触发控制位,P3.0为蜂鸣器发声电路输出。实践训练2(2)程序流程 实践训练2(3)具体程序 见书80页81页实践训练23.叮咚门铃仿真效果总结3通过本次任务的学习,掌握键盘的使用

    37、方法,在键盘数比较少的情况下,可以选用独立式键盘扫描,键盘数比较多的情况下,选择行列式键盘扫描比较节省单片机的I/O口资源,另外根据键盘的特点选择合适的延时时间来到达有效的消除键的抖动。在可编程定时器/计数器的使用中,要根据设计要求进行工作方式寄存器的正确设置、次数的计算、获得初值、赋值、启动定时器、判断定时器溢出状态。谢谢!第二篇 单片机基础篇应用课程内容理论理论实践任务任务3 直流电机直流电机转速测量仪转速测量仪理论认知1 问题提出:汽车发动机转速指示理论认知1洗衣机中滚筒转速测量理论认知1随着微型计算机的广泛应用,单片机技术的日新月异,特别是高性能价格比的单片机的出现,转速测量普遍采用以

    38、单片机为核心的数字式测量方法,使得许多控制功能及算法可以采用软件技术来完成,智能化微电脑代替了一般机械式或模拟式结构,并使系统能达到更高的性能。采用单片机构成的控制系统,可以节约人力资源和降低系统成本,从而有效的提高工作效率。理论认知1【知识目标】(1)单片机内部定时器/计数器;(2)中断的概念与中断技术的应用;(3)中断的控制寄存器的设置和优先级控制;(4)中断服务子程序的编写结构。【能力目标】(1)掌握定时器的中断法;(2)熟悉单片机中断技术的应用;(3)正确选用变量并正确设置数据类型;(4)正确书写主函数、子函数、中断服务子程序。总体目标理论认知1 通过单片机和传感器对直流电机的转速进行

    39、测量,并通过数码管显示电机转速理论认知1(1)所谓转速是指单位时间1s内转过的圈数,所以真正的转速计数器必须在1s时间背景下测定转速的计数值。(2)直流电机转速的测量主要有以下方法:编码器;霍尔元件;光电传感器。要了解不同测量方法输出的信号形式,以方便在仿真时选用合适的信号进行仿真。理论认知1(3)由于对转速的测量要具有实时性,所以考虑在单片机P3.2(外中断O)输入传感器信号,这样在主程序中要考虑总中断EA、外中断和定时中断的打开,以及对外中断0的检测是下降沿方式还是低电平方式。理论认知13.1 定时中断工作原理定时中断工作原理定时/计数器是单片机系统一个重要的部件,其工作方式灵活、编程简单

    40、、使用方便,可用来实现定时控制、延时、频率测量、脉宽测量、信号发生、信号检测等。此外,定时/计数器还可作为串行通信中波特率发生器。理论认知13.1.1 定时/计数器定时/计数器的结构理论认知1定时/计数器功能(1)计数功能:所谓计数功能是指对外部脉冲进行计数。外部事件的发生以输入脉冲下降沿有效,从单片机芯片T0(P3.4)和T1(P3.5)两个引脚输入,最高计数脉冲频率为晶振频率的1/24。(2)定时功能:定时方式工作时,每个机器周期使自动计数器加1,由于机器周期取决于单片机晶振,晶振一旦选定,机器周期就是固定的,因此通过计一定数量的机器周期,就可以实现定时功能。理论认知1直流电机是一种常用的

    41、机电转换器件,将直流电能变为机械能,常在自动控制系统中用作执行元件。直流电机的内部有一个闭合的主磁路,主磁通在主磁路中流动,同时与两个电路交联,其中一个电路是用以产生磁通的,称为激磁电路;另一个电路是用以传递功率的,称为功率回路或电枢回路。现行的直流电动机都是旋转电枢式,也就是说激磁绕组及其所包围的铁芯组成的磁极为定子,带换向单元的电枢绕组和电枢铁芯结合构成直流电动机的转子。3.2直流电机介绍直流电机介绍实践训练21.硬件设计(1)仿真原理图单片机控制的发光二极管亮灭原理图任务实施1234ABCD4321DCBA1234TCRT50009874HC142005674HC145k+5V+5V10

    42、k+12V321411LM324+12VINT0仿真原理图2D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7P10P11P12P13P14P15P16P17Q0Q1Q2Q3Q4Q5Q6Q7P20SEG0P21SEG1P22SEG2P23SEG3SEG3SEG2SEG1SEG0D0D1D2D3D4D5D6D7Q0Q1Q2Q3Q4Q5Q6Q7P20P21P22P23XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD

    43、732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C52234567891RP110k+5VAMFM+-D02D13D24D35D46D57D68D79Q019Q118Q217Q316Q415Q514Q613Q712LE11

    44、OE1U274HC573+5VQ28550R82kR75kR12100+5VQ18550R12kR25kR3100+5VQ38550R42kR55kR6100+5VQ48550R92kR105kR11100+5V+5V实践训练22.软件编程(1)端口分配在直流电机的转速测量过程中为了适当提高转速测量的精度,设计中电机每转一圈产生4个脉冲信号,此信号输入到单片机的外部中断0口;所测转速通过数码管显示,P1口是数码管的段选输入,P0口进行数码管的位选。实践训练2(2)程序流程(3)具体程序书92页转速测量实践训练23.转速测量仿真效果实践训练24.安装与调试 仿真调试过程将直流电机转速测量得到实现

    45、,但在实际使用时,得具体考虑数码管的驱动问题,在实物安装调试的过程中采用8550三极管对数码管驱动(位选),采用的数码管LG5641BH(四位一体)属于共阳驱动,则片选段必须提供低电平。直流电机转速测量模块的装配图如图所示。各个元器件的型号规格见表2-5,极性元件安装时注意方向,集成块安装注意其缺口方向。实践训练2转速测量装配图实践训练2调试过程中先进行硬件调试,先不要安装集成电路,先测量电路板中的集成电路安装位置的电源是否正常;用万用表测量复位电路(单片机9脚),当按下复位按钮时该引脚电平变化是否正常;用示波器观测电路中的TRCT5000输出信号是否正常,通过上述测试保证硬件电路能正常工作。

    46、将程序下载至单片机芯片,将芯片插入电路板单片机插座,观测电路工作是否正常,如果不正常的话,进行程序的修改,发复调试,直至电路工作正常。直流电机转速测量调试正确后显示效果如图所示。实践训练2直流电机测速模块调试结果总结31)定时/计数器的运用定时/计数器的长短和机器周期(晶振)、工作方式(计数长度)、预置数(TH、TL)有关,大致估算一下采用定时/计数器产生的最大数是多少,但采用定时/计数器无法实现长时间定时时,是否采用以定时器产生的时间为单位,再附加采用计数器来配合完成长时间定时等。总结32)中断系统在实际情况下,采用什么方式进行中断?要看具体中断信号的形式是低电平还是边沿出发,一般情况下,变

    47、化缓慢的中断信号以电平触发为主,变化快的以边沿触发为主,但是在有些情况下的中断信号不是很清晰或者夹杂着干扰信号等,这种情况应对中断信号做适当的信号滤波、处理、提取和整形,否则会产生不必要的中断响应或该响应时不响应。在实际的控制系统中可能需要对多个信号进行中断响应,有的中断比较急,由于在同一时间只能进行一个中断处理,这就需要根据中断的轻重缓急定义好各个中断的优先级,重要的、紧急的为高,其余的平级,在平级中再分时,则用查询的方式依次从高到低排队查询,体现优先级。总结33)C51中断函数格式C51中断函数格式如下:Void 函数名()interrupt 中断号 using 工作组中断服务程序内容总结

    48、3中断函数不能返回任何值,所以最前面用void;后面紧跟函数名,可以任意起名,但是不能用C语言中的保留字;中断函数不带任何参数,所以函数名后的小括号内为空;中断号是指单片机中中断源的序号:0、外部中断0;1、定时器0;2、外部中断1;3、定时器1;4、串行中断。最后的“using 工作组”是指这个中断函数使用单片机内存中4组工作寄存器的哪一组,C51在编译程序时会自动分配工作组,因此可以省略不写。总结3本单元实践练习本单元实践练习1、已知晶振6MHz,要求定时0.5ms,试分别求出T0工作于方式0、方式1、方式2、方式3时的定时初值。2、已知晶振12MHz,使用定时器T1以定时工作方式2从P1

    49、.2端线输出周期为200s,占空比为5:1的矩形脉冲,TR1启动。总结33、设计一个程序测量外部脉冲信号的占空比?4、设计一个波形展宽程序,由P3.4输入一个低频窄脉冲信号,当P3.4波形发生负跳变时,由P3.0口输出一个500s宽的同步脉冲(设系统频率为6MHz)。总结35、参照下图,设计一个直流电机的调速模块,即通过按键设置电机的转速就可以实现电机转速的调整,电机旋转中产生的脉冲信号输入到单片机的外部中断0口;电机的调速是通过P3.4口输出的PWM信号进行调整;转速通过数码管显示,P1口是数码管的段选,P0口进行数码管的位选;启停键、转向键、加速键、减速键分别与单片机P2.0、P2.1、P

    50、2.2、P2.3口相连。总结31234ABCD4321DCBA1234TCRT50009874HC142005674HC144k 710085502k5k 1100+5V+5V+5V1001001005k 1+5VEA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10STC89C52O

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:C51单片机技术应用与实践课件第2章.pptx
    链接地址:https://www.163wenku.com/p-3622431.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库