欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    51单片机的C语言应用基础程序设计ppt课件.ppt

    • 资源ID:70264463       资源大小:1.53MB        全文页数:54页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    51单片机的C语言应用基础程序设计ppt课件.ppt

    单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 单片机的C语言应用程序设计 1 C51数据类型及在数据类型及在51中的存储方式中的存储方式2 C51数据的存储类型与数据的存储类型与51存储结构存储结构3 51特殊功能寄存器特殊功能寄存器(SFR)的的C51定义定义4 51并行接口的并行接口的C51定义定义5 位变量的位变量的C51定义定义1.6 中断应用的中断应用的C语言编程语言编程2.7 定时器定时器/计数器的应用编程计数器的应用编程8 51片外扩展的片外扩展的C语言编程语言编程9 51机串行通信的机串行通信的C语言编程语言编程10 键盘和数码显示人机交互的键盘和数码显示人机交互的C语言编程语言编程 单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能1.C51数据类型及在数据类型及在51中的存储方式中的存储方式1.1 C51的数据类型的数据类型 C51编译器具体支持的数据类型有:位型(bit)、无符号字符(unsigned char)、有符号字符(singed char)、无符号整型(unsigned int)、有符号整型(signed int)、无符号长整型(unsigned long)、有符号长整型(signed long)、浮点型(float)和指针类型等。单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能C51的数据类型的数据类型数据类型长度(bit)长度(byte)值域bit110,1unsigned char810255signed char81128127unsigned int 162065535signed int 1623276832767unsigned long32404294967295signed long 32421474836482147483647float 3241.176E383.40E+38(6位数字)double6481.176E383.40E+38(10位数字)一般指针243存储空间065535 单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能1.2 C51数据的存储类型与数据的存储类型与51存储结构存储结构C51存储类型与存储类型与MCS-51存储空间的对应关系存储空间的对应关系存储类型与存储空间的对应关系 data 直接寻址片内数据存储区,访问速度快(128字节)bdata 可位寻址片内数据存储区,允许位与字节混合访问(16字节)idata 间接寻址片内数据存储区,可访问片内全部RAM地址空间(256字节)pdata 分页寻址片外数据存储区(256字节)由MOV Ri访问(i=0,1)xdata 片外数据存储区(64 KB)由MOVX DPTR访问 code 程序存储器64 KB空间,由MOVC DPTR访问 单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能C51存储类型及其数据长度和值域存储类型及其数据长度和值域存储类型长度(bit)长度(byte)值域范围data810255idata810255pdata810255xdata162065 535code162065 535 单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能带存储类型的变量的定义的一般格式为 数据类型 存储类型 变量名带存储类型的变量定义举例:char data var1;bit bdata flags;float idata x,y,z;unsigned int pdata var2;unsigned char vector34;单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能1.3 51特殊功能寄存器特殊功能寄存器(SFR)的的C51定义定义 MCS-51单片机中,除了程序计数器PC和4组工作寄存器组外,其它所有的寄存器均为特殊功能寄存器(SFR),分散在片内RAM区的高128字节中,地址范围为80H0FFH。SFR中有11个寄存器具有位寻址能力,它们的字节地址都能被8整除,即字节地址是以8或0为尾数的。为了能直接访问这些SFR,C51提供了一种自主形式的定义方法,这种定义方法与标准C语言不兼容,只适用于对MCS-51系列单片机进行C语言编程。特殊功能寄存器C51定义的一般语法格式如下:sfr sfr-name=int constant;单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 sfr是定义语句的关键字,其后必须跟一个MSC-51单片机真实存在的特殊功能寄存器名,=后面必须是一个整型常数,不允许带有运算符的表达式,是特殊功能寄存器sfr-name的字节地址,这个常数值的范围必须在SFR地址范围内,位于0 x800 xFF。例如:sfr SCON=0 x98;/*串口控制寄存器地址98H*/sfr TMOD=0 x89;/*定时器/计数器方式控制寄存器地址89H*/单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 对于位寻址的SFR中的位,C51的扩充功能支持特殊位的定义,像SFR一样不与标准C兼容,使用“sbit”来定义位寻址单元。有三种表达方式 单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 第一种格式:sbit bit-name=sfr-nameint constant;sbit是定义语句的关键字,后跟一个寻址位符号名(该位符号名必须是MCS-51单片机中规定的位名称),=后的sfr-name必须是已定义过的SFR的名字,后的整常数是寻址位在特殊功能寄存器sfr-name中的位号,必须是07范围中的数。例如:sfr PSW=0 xD0;/*定义PSW寄存器地址为D0H*/sbit OV=PSW2;/*定义OV位为PSW.2,地址为D2H*/sbit CY=PSW7;/*定义CY位为PSW.7,地址为D7H*/单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 第二种格式:sbit bit-name=int constantint constant;=后的int constant为寻址地址位所在的特殊功能寄存器的字节地址,符号后的int constant为寻址位在特殊功能寄存器中的位号。例如:sbit OV=0XD02;/*定义OV位地址是D0H字节中的第2位*/sbit CY=0XD07;/*定义CY位地址是D0H字节中的第7位*/单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 第三种格式:sbit bit-name=int constant;=后的int constant为寻址位的绝对位地址。例如:sbit OV=0XD2;/*定义OV位地址为D2H*/sbit CY=0XD7;/*定义CY位地址为D7H*/特殊功能位代表了一个独立的定义类,不能与其它位定义和位域互换。单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能1.4 51并行接口的并行接口的C51定义定义 MCS-51系列单片机并行I/O接口除了芯片上的4个I/O口(P0 P3)外,还可以在片外扩展I/O口。MCS-51单片机I/O口与数据存储器统一编址,即把一个I/O口当作数据存储器中的一个单元来看待。对于MCS-51片内I/O口按特殊功能寄存器方法定义。例如:sfr P0=0 x80;/*定义P0口,地址为80H*/sfr P1=0 x90;/*定义P1口,地址为90H*/单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 对于片外扩展I/O口,则根据硬件译码地址,将其视作为片外数据存储器的一个单元,使用#define语句进行定义。例如#include#define PORTA XBYTE 0 xFFC0 absacc.h是C51中绝对地址访问函数的头文件,将PORTA定义为外部I/O口,地址为 FFC0H,长度为8位。一旦在头文件或程序中对这些片外I/O口进行定义后,在程序中就可以自由使用变量名与其实际地址的联系,以便使程序员能用软件模拟51的硬件操作。单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能1.5 51内部资源使用的内部资源使用的C语言编程语言编程 (1)中断应用的中断应用的C语言编程语言编程 C51编译器支持在C源程序中直接开发中断程序。中断服务程序是通过按规定语法格式定义的一个函数。中断服务程序的函数定义的语法格式如下:返回值 函数名(参数)interrupt m using n 单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能MCS-51中断源编号中断源编号编 号中 断 源入 口 地 址0外部中断00003H1定时器/计数器0000BH2外部中断10013H3定时器/计数器1001BH4串行口中断0023H 单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 using n 选项用于实现工作寄存器组的切换,n是中断服务子程序中选用的工作寄存器组号(0 3)。在许多情况下,响应中断时需保护有关现场信息,以便中断返回后,能使中断前的源程序从断点处继续正确地执行下去。这在MCS-51单片机中,能很方便地利用工作寄存器组的切换来实现。即在进入中断服务程序前的程序中使用一组工作寄存器,进入中断服务程序后,由using n切换到另一组寄存器,中断返回后又恢复到原寄存器组。这样互相切换的两组寄存器中的内容彼此都没有被破坏。单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能扩展多个中断源扩展多个中断源 例例 下图示是利用优先权解码芯片,在单片机8031的一个外部中断INT1上扩展多个中断源的原理电路图。图中是以开关闭合来模拟中断请求信号。当有任一中断源产生中断请求,能给8031的INT1引脚送一个有效中断信号,由P1的低3位可得对应中断源的中断号。单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 在中断服务程序中仅设置标志,并保存I/O口输入状态。C51编译器提供定义特定MCS-51系列成员的寄存器头文件。MCS-51头文件为reg51.h。C51程序如下:#include unsigned char status;bit flag;void service_int1()interrupt 2 using 2 /*INT1中断服务程序,使用第2组工作寄存器*/flag=1;/*设置标志*/status=p1;/*存输入口状态*/void main(void)IP=0 x04;/*置INT1为高优先级中断 */IE=0 x84;/*INT1开中断,CPU开中断*/单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能for(;)if(flag)/*有中断*/switch(status)/*根据中断源分支*/case 0:break;/*处理IN0*/case 1:break;/*处理IN1*/case 2:break;/*处理IN2*/case 3:break;/*处理IN3*/default:;flag=0;/*处理完成清标志*/单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 1.6 定时器定时器/计数器计数器(T/C)应用的应用的C语言编程语言编程 例例 设单片机的fosc=12 MHz晶振,要求在P1.0脚上输出周期为2 ms的方波。周期为2 ms的方波要求定时时间隔1 ms,每次时间到P1.0取反。机器周期=12/fosc=1 s 需计数次数=1000/(12/fosc)=1000/1=1000 由于计数器是加1计数,为得到1000个计数之后的定时器溢出,必须给定时器置初值为-1000(即1000的补数)。单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能(1)用定时器0的方式1编程,采用查询方式,程序如下:#include sbit P1_0=P10;void main(void)TMOD=0 x01;/*设置定时器1为非门控制方式1*/TR0=1 ;/*启动 T/C0*/for(;)TH0=-(1000/256);/*装载计数器初值*/TL0=-(1000%256);while(!TF0);/*查询等待TF0置位*/P1_0=!P1_0;/*定时时间到P1.0反相*/TF0=0;/*软件清 TF0*/单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能(2)用定时器0的方式1编程,采用中断方式。程序如下:#include sbit P1_0=P10;void time(void)interrupt 1 using 1 /*T/C0中断服务程序入口*/P1_0=!P1_0;/*P1.0取反*/TH0=-(1000/256);TL0=-(1000%256);/*重新装载计数初值*/void main(void)TMOD=0 x01;/*T/C0工作在定时器非门控制方式1*/P1_0=0;TH0=-(1000/256);/*预置计数初值*/TL0=-(1000%256);EA=1;/*CPU中断开放*/ET0=1;/*T/C0中断开放*/TR0=1;/*启动T/C0开始定时*/do while(1);/*等待中断*/单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 例例 采用10 MHz晶振,在P1.0脚上输出周期为2.5 s,占空比20%的脉冲信号。10 MHz晶振,使用定时器最大定时几十毫秒。取10 ms定时,周期2.5 s需250次中断,占空比20%,高电平应为50次中断。10 ms定时,晶振fosc=10 MHz。#include#define uchar unsigned charuchar period=250;uchar high=50;单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能timer0()interrupt 1 using 1 /*T/C0中断服务程序*/TH0=-8333/256;/*重置计数值*/TL0=-8333%256;if(+time=high)P1=0;/*高电平时间到变低*/else if(time=period)/*周期时间到变高*/time=0;P1=1;单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能main()TMOD=0 x01 ;/*定时器0方式1*/TH0=-8333/256;/*预置计数初值*/TL0=-8333%256;EA=1;/*开CPU中断*/ET0=1;/*开T/C0中断*/TR0=1;/*启动T/C0*/P1=1;do while(1);单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能中断服务程序流程图 单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 1.7 51数据采集的数据采集的C语言编程语言编程例例 ADC0809与8031接口的数据采集程序举例。单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能程序如下:#include#include#define uchar unsigned char#define IN0 XBYTE 0 x7ff8 /*设置AD0809的通道0地址*/sbit ad_busy=P33;/*即EOC状态*/void ad0809(uchar idata*x)/*采样结果放指针中的A/D采集函数*/uchar i;uchar xdata *ad_adr;ad_adr=&IN0;for(i=0;i8;i+)/*处理8通道*/*ad_adr=0;/*启动转换*/单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 i=i;/*延时等待EOC变低*/i=i;while(ad_busy=0);/*查询等待转换结束*/xi=*ad_adr;/*存转换结果*/ad_adr+;/*下一通道*/void main(void)static uchar idata ad 10 ;ad0809(ad);/*采样AD0809通道的值*/单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能1.8 51输出控制的输出控制的C语言编程语言编程例例 8031与DAC0832双缓冲接口的数据转换程序举例。单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能将data1和data2数据同时转换为模拟量的C51程序如下:#include#include#define INPUTR1 XBYTE 0 x8fff#define INPUTR2 XBYTE 0 xa7ff#define DACR XBYTE 0 x2fff#define uchar unsigned char void dac2b(data1,data2)uchar data1,data2;INPUTR1=data1;/*送数据到一片0832*/INPUTR2=data2;/*送数据到另一片0832*/DACR=0;/*启动两路D/A 同时转换*/单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能例例 8031与DAC0832单缓冲区接口的数据转换举例。单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 按片选线确定FFFEH为DAC0832的端口地址。使运行输出端输出一个锯齿波电压信号的C51程序如下:#include#define DA0832 XBYTE 0 xfffe#define uchar unsigned char#define uint unsigned int void main(void)uchar i;while(1)for(i=0;i=255;i+)/*形成锯齿波输出值,最大值为255*/DA0832=i;/*D/A转换输出*/单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能1.9 51机间通信的机间通信的C语言编程语言编程点对点的串行异步通信点对点的串行异步通信1通信双方的硬件连接通信双方的硬件连接 图 7.17 8031间RS232C电平信号的传 单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能2通信双方的约定通信双方的约定 单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 3.点对点通信编程点对点通信编程 点对点通信双方基本等同,只是人为规定一个为发送,一个为接收。要求两机串行口的波特率相同,因而发送和接收方串行口的初始化相同。可编制含有初始化函数、发送函数接收函数的程序,在主函数中根据程序的发送、接收设置TR,采用条件判别决定使用发送函数还是接收函数。这样点对点通信的双方都可运行此程序,只需在程序运行之前人为设置选择TR,一个令TR=0,一个令TR=1,然后分别编译,在两机上分别装入,同时运行。单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能点对点通信的程序如下:#include#define uchar unsigned char#define TR 1 /*发送接收差别值TR=0发送*/uchar idata buf10;uchar pf;void init(void)/*串行口初始化*/TMOD=0 x20;/*设T/C1为定时方式2*/TH1=0 xe8;/*设定波特率*/单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 TL1=0 xe8;PCON=0 x00;TR1=1;/*启动T/C1*/SCON=0 x50;/*串行口工作在方式1*/void send(uchar idata*d)uchar i;do SBUF=0 xaa;/*发送联络信号*/while(TI=0);/*等待发送出去*/TI=0;单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 while(RI=0);/*等待B机回答*/RI=0;while(SBUF0 xbb)!=0);/*B机未准备好,继续联络*/do pf=0;/*清校验和*/for(i=0;i16;i+)SBUF=di;/*发送一个数据*/pf+=di;/*求校验和*/while(TI=0);TI=0;SBUF=pf;/*发送校验和*/单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 while(TI=0);TI=0;while(RI=0);RI=0;/*等待B机回答*/while(SBUF!=0);/*回答出错,则重发*/void receive(uchar idata*d)uchar i;do while(RI=0);RI=0;while(SBUF0 xaa)!=0);/*判A机请求否*/SBUF=0 xbb;/*发应答信号*/单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能while(TI=0);TI=0;while(1)pf=0;/*清校验和*/for(i=0;i16;i+)while(RI=0);RI=0;d i=SBUF;/*接收一个数据*/pf+=di;/*求校验和*/while(RI=0);RI=0;/*接收A机校验和*/if(SBUF pf)=0)/*比较校验和*/SBUF=0 x00;break;/*校验和相同发00*/else SBUF=0 xff;/*出错发FF,重新接收*/单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 while(TI=0);TI=0;void main(void)init();if(TR=0)send(buf);else receive(buf);单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能1.10 键盘和数码显示人机交互的键盘和数码显示人机交互的C语言编程语言编程1 行列式键盘与行列式键盘与8031的接口的接口 键盘输入信息的主要过程是:(1)单片机判断是否有键按下。(2)确定按下的是哪一个键。(3)把此步骤代表的信息翻译成计算机所能识别的代码,如ASCII或其它特征码。单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能8031与行列式键盘的接口 单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 例例17 44键盘的扫描程序。扫描程序查询的内容为:(1)查询是否有键按下。首先单片机向行扫描P1.0 P1.3输出全为0扫描码F0H,然后从列检查口P1.4 P1.7输入列扫描信号,只要有一列信号不为1,即P1口不为F0H,则表示有键按下。接着要查出按下键所在的行、列位置。单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 (2)查询按下键所在的行列位置。单片机将得到的信号取反,P1.4P1.7中的为1的位便是键所在的列。接下来要确定键所在的行,需要进行逐行扫描。单片机首先使P1.0为0,P1.1P1.7为1,即向P1口发送扫描码FEH,接着输入列检查信号,若全为1,表示不在第一行。接着使P1.1接地,其余为1,再读入列信号这样逐行发0扫描码,直到找到按下键所在的行,将该行扫描码取反保留。当各行都扫描以后仍没有找到,则放弃扫描,认为是键的误动作。单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 (3)对得到的行号和列号译码,得到键值。(4)键的抖动处理。当用手按下一个键时,往往会出现所按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况。在释放一个键时,也会出现类似的情况,这就是键抖动,抖动的持续时间不一,通常不会大于10 ms,若抖动问题不解决,就会引起对闭合键的多次读入,对于键抖动最方便的解决方法就是当发现有键按下后,不是立即进行逐行扫描,而是延时10 ms后再进行。由于键按下的时间持续上百毫秒,延时后再也不迟。单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能扫描函数的返回值为键特征码,若无键按下,返回值为0。程序如下:#include#define uchar unsigned char#define uint unsigned int void dlms(void)void kbscan(void);void main(void)uchar key;while(1)key=kbscan();dlms();单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能void dlms(void)uchar i;for(i=200;i0;i-)uchar kbscan(void)/*键扫描函数*/uchar scode,recode;P1=oxf0;if(P1&0 xf0)!=0 xf0)/*若有键按下*/dlms();/*延时去抖动*/if(P1&0 xf0)!=0 xf0)scode=0 xfe;/*逐行扫描初值*/while(scode&0 x10)!=0)P1=scode;/*输出扫描码*/单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能if(P1&0 xf0)!=0 xf0)/*本行有键按下*/recode=(P1&0 xf0)|0 x0f;return(scode)+(recode);/*返回特征字节码*/else scode=(scode 1)|0 x01;/*行扫描左移一位*/return(0);单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能例例 串行口控制的静态LCD显示。串行口连接的静态LCD显示电路 单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能输出两位显示,即一字节的程序如下:#include#define uchar unsigned char void display(uchar x)SBUF=x;/*由串口输出*/while(TI=0);/*等待8位发送结束*/TI=0;单片机的C语言应用程序设计 为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能输出两位显示,即一字节的程序如下:void main(void)uchar byte;while(1)display(byte)

    注意事项

    本文(51单片机的C语言应用基础程序设计ppt课件.ppt)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开