第五讲 独立式按键
《单片机技术及应用项目教程》教学课件—5-2独立式按键设计
![《单片机技术及应用项目教程》教学课件—5-2独立式按键设计](https://img.taocdn.com/s3/m/c9d30b32aa00b52acec7ca17.png)
计时计数小于10? N
Y 处于前一个100ms 数码管显示正常时间
数码管正常显示,不闪烁
处于后一个100ms,根据不同的 时间位,屏蔽相应的数码管位
结束
图5-20 数码管闪烁逻辑流程图
开始
按键S0(已消抖)按下? N
Y 开始计时Biblioteka 按键S1(已消抖)按下? NY
停止计时
按键S2(已消抖)按下? N
Y
计时归0 停止计时
结束
图5-16 控制定时器启动/继续、暂停和复位的程序流程图
3 设计具有倒计时功能 的多功能秒表器
图5-18 蜂鸣器
开始
u8g_BlinkPoint不为0? N
第6位 第7位
显示0.1 显示
秒
0.01秒
表5-2 数码管的位与计时的对应关系
开始
变量“1/100秒”自加1
变量“1/100秒”大于99? N
Y 变量“1/100秒”归0
变量“秒”自加1
变量“秒”大于59? N
Y 变量“秒”归0 变量“分”自加1
变量“分”大于59? N
Y
停止计时
结束
图5-15 定时器1中断服务处理函数流程图
2 独立式按键设计
图5-12 独立式按键
图5-13 教学开发板上使用的独立式按键
开始
按键是否按下 N
Y 延时20ms
按键是否按下 N
Y 完成按键处理逻辑
结束
图5-14 按键软件消抖处理流程图
第0位 空
第1位 空
第2位 显示分 的十位
第3位 显示分 的个位
第4位 显示秒 的十位
第5位 显示秒 的个位
第五章 独立式键盘与LED数码管显示器(本科)
![第五章 独立式键盘与LED数码管显示器(本科)](https://img.taocdn.com/s3/m/efd380ef6bec0975f565e209.png)
按下。
80C51
VCC
KEYA ห้องสมุดไป่ตู้1.0
KEYB P1.1
KEYC P1.2
KEYD P1.3
(2)独立式键盘的程序设计 一般把键盘扫描程序设计成子程序,以便其它各程序调用。
程序设计通常采用查询法。假设键盘扫描子程序的名称为KEY, 则键盘扫描子程序KEY应具有以下功能:
(a)判定有无按键动作; (b)去抖动; (c)确认是否真正有闭合键; (d)计算并保存闭合键键码(键号); (e)判定闭合键是否释放; (f)恢复闭合键键码(键号)。
械触点式开关按键。 (b)机械触点式开关按键的功能及特点; 1)机械触点式开关按键的功能: 把开关按键机械上的通断关系转换成为电气上的逻辑关系。
也就是说,它能提供标准的TTL逻辑电平,以便与通用数字系统 的逻辑电平相兼容。
2)机械触点式开关按键的特点: 机械触点式开关按键的理想波形:见图 机械触点式开关按键的实际波形:见图 机械开关特点:闭合时,不会马上稳定地接通。
矩阵式键盘主要用于按键较多的场合,也称行列式键盘。 (3)MCS-51单片机键盘接口方法及接口芯片:
(a)利用单片机芯片本身的并行口; (b)利用单片机芯片本身的串行口; (c)利用通用接口芯片(8255、8155等); (d)利用专用接口芯片8279。 (4)单片机键盘接口电路应完成的操作功能: (a)判定是否有闭合键; (b)确定闭合键的位置; (c)形成闭合键的键码; (d)排除多键、串键及去抖动。
但如果在触点抖动期间检测按键的通与断状态,可能导致判 断出错,即按键一次按下或释放被错误地认为是多次操作,这种 情况是不允许出现的。为了克服按键触点机械抖动所致的检测误 判,确保CPU对一次按键动作只确认一次按键,必须采取去抖动 措施。 (7)消除按键抖动的措施:
5 独立按键指导书
![5 独立按键指导书](https://img.taocdn.com/s3/m/13cfa73531126edb6f1a10cb.png)
keyHandle()
{
switch(keyValue)
{ case 0x78:
//如果 S17 按键按下
{ Dataport=~0x01;
//点亮一个发光二极管
break;
} case 0xb8:
//如果 S18 按键按下
{ Dataport=~0x02;
//点亮一个发光二极管
break;
} case 0xd8:
//如果 S19 按键按下
{ Dataport=~0x04;
//点亮一个发光二极管
break;
} case 0xe8:
//如果 S20 按键按下
{ Dataport=~0x08;
//点亮一个发光二极管
break;
} case 0xf0:
//如果 S21 按键按下
{ Dataport=~0x10;
//点亮一个发光二极管
IO 接口 J11 J9_3 J9_4 J9_5 J9_6 J9_7
模块接口 J13
J7_S21 J7_S20 J7_S19 J7_S18 J7_S17
位数
8位 1位 1位 1位 1位 1位
实验现象:当按下 S17~S21 中的任一个按键,有对应的 LED 被点亮。 扩展实验:自己动手实现 S17-S21 任意按键控制数码管显示相应的键值。
keyScan()
{ if((P2IN&0xf8)!=0xf8)
//判断是否有按键按下
{
delay(20);
/8)!=0xf8)
//再次判断是否有按键按下
keyValue=(P2IN&0xf8); //读取扫描结果
while((P2IN&0xf8)!=0xf8); //等待按键松开
独立键盘课件
![独立键盘课件](https://img.taocdn.com/s3/m/d95a28767c1cfad6185fa736.png)
设第2行第 4列键按下
89C51 P1.0 P1.1 P1.2 P1.3 P1.4 11 11 11 1011 P1.5 P1.6 P1.7
一、 键盘的介绍
键盘是单片机应用系统中使用最广泛的一种数据输入设备。键盘 是一组按键的组合。键通常是一种常开型按钮开关,常态下键的两个 触点处于断开状态,按下键时它们才闭合(短路)。
按键按照结构原理可分为两类,一类是触点式开关按键,如机械式 开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按 键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最 常见的是触点式开关按键。
P 1.0 P 1.1 P 1.2 P 1.3 80 31 P 1.4 P 1.5 P 1.6 P 1.7
图4
VCC
1.4 键输入程序的设计方法
(1)判断键盘上是否有键闭合; (2)消除键的机械抖动; (3)确定闭合键的物理位置; (4)得到闭合键的编号; (5)确保CPU对键的一次闭合只做一次处
图2 矩阵式键盘接口 特点:电路连接复杂,但提 高了I/O口利用率,软件编程 较复杂。适用于需使用大量 按键的场合。
键盘输入的主要对象:各种按键或开关。
1.1 独立连接式键盘
每键相互独立,各自与一条I/O线相连,CPU直接读 取该I/O线的高/低电平状态。其优点是硬件、软件结 构简单,判键速度快,使用方便;缺点是占I/O口线 多。
理
1.5 键盘控制流程
单片机对键盘接 口处理的一般过程 如图5所示。
单片机独立式按键、矩形按键的应用-PPT精品文档
![单片机独立式按键、矩形按键的应用-PPT精品文档](https://img.taocdn.com/s3/m/f286a0fa33d4b14e85246833.png)
8
8.1.3.独立按键流程图与软件实现
开始 否
ORG LJMP ORG MAIN: MOV MOV CJNE LJMP L_PRESS:
0000H MAIN 0030H P1,#0FFH A,P1 A,#0FFH,L_PRESS MAIN DELAY20MS ;消抖 P1,#0FFH A,P1 A,#0FFH,L_TUREPRESS MAIN A,#11111110B KEY0 L_EXIT A,#11111101B KEY1 L_EXIT A,#11111110B KEY7 MAIN
计算行: 计算列:
行全部输出高电平,列全部输出低电平,读回数据,如果P1.0P1.3某行变为低电平就知道该行上面有按键。代码如左下: 行全部输出低电平,列全部输出高电平,然后读回来判断。如果 P1.4-P1.7某列变为低电平就知道该列上面有按键。代码如右下:
第八章
常规按键的应用
硅谷芯微 技术贡献 网址:threeway
键盘的分类
键盘分编码键盘和非编码键盘。键盘上闭合键的 识别由专用硬件编码器实现,并产生键编码号或 键值的称为编码键盘,如BCD码键盘、ASCLL码 键盘等;而靠软件来识别的称为非编码键盘;在 单片机组成的测控系统及智能化仪器中,用的最 多的是非编码键盘。 非编码键盘有分为:独立式非编码键盘和行列式 非编码键盘(矩阵键盘)。无论是何种按键,其 功能实现都是分为三个步骤:
有按键? 是 消抖
有按键? 是 按键1? 是 处理按键1
否
否
按键n? 是 按键n服务程序
否
LCALL MOV MOV CJNE LJMP L_TUREPRESS: CJNE LCALL LJMP CJNE LCALL LJMP ……….. CJNE LCALL L_EXIT: LJMP
(完整版)十天学会单片机C语言_郭天祥---课后习题答案
![(完整版)十天学会单片机C语言_郭天祥---课后习题答案](https://img.taocdn.com/s3/m/5992258ee45c3b3566ec8bc7.png)
郭天祥十天学通单片机TX-1C单片机实验板所有课作业+答案,特别整理,供单片机爱好与学习者使用讲次内容细节第一讲学单片机预备知识、如何点亮一个发光管单片机能做什么,基本电子知识,如何用TX-1C单片机学习板学习单片机,C51 知识简介,如何申请免费芯片样品。
点亮一个发光管,第二讲流水灯设计、蜂鸣器发声、继电器控制简单延时程序、子程序调用、带参数子程序设计、流水灯同时蜂鸣器响、如何驱动蜂鸣器,及如何驱动继电器,集电极开路的概念及应用。
第三讲数码管显示的原理、数码管的静态显示共阳、共阴数码管显示原理、定时器工作方式介绍、重点讲述工作方式2、中断概念及中断函数写法、外部中断试验、定时器中断应用第四讲数码管的动态显示原理及应用实现动态扫描概念、定时器、中断加深用单片机的定时器及中断设计一个60 秒定时器第五讲独立键盘、矩阵键盘的检测原理及实现键盘用来做什么、如何键盘检测、消抖、键盘编码、带返回值函数写法及应用第六讲AD、DA 的工作原理及实现、运放电路模拟电压与数字电压的关系、为什么要使用AD 及DA、ADC0804 的操作方法、DAC0832 的操作方法第七讲串口通讯原理及操作流程串口通讯工作方式、10 位数据通讯、波特率概念、如何根据波特率计算定时器初值、串口打印在调试程序中的应用。
第八讲 1 602液晶、12864 液晶显示原理及实现最简单液晶工作原理、如何开始对一个没有任何概念的芯片开始单片机的操作第九讲IIC总线AT24C02芯片工作原理IIC总线工作原理、目前非常通用的一种通信机制第十讲利用51 单片机的定时器设计一个时钟综合运用51 单片机知识设计一个可以随意调节时间、带整点闹铃的时钟。
(其中用到定时器、中断、按键、蜂鸣器、数码管或串口通信)第^一讲用DS12C887时钟芯片设计一个高精度时钟DS12C887内部带有锂电池,系统掉电情况下可自行精确走10 年,并带有闹钟功能、年、月、日、时、分、秒等。
单片机:按键
![单片机:按键](https://img.taocdn.com/s3/m/0a2b557f02768e9951e73837.png)
独立式按键和矩阵式按键的工作原理1.独立式按键:一键一线,各键相互独立连接图如下1.单片机P1,P2口分别接数码管控制其要显示数字。
2.按键KEYI,KET2分别接单片机P3.0,P3.1口,实现按键对数码管的控制3.按键连接是要并联一个电容,防止按键抖动。
相应的控制程序如下ORG 0000HSJMP MAINMAIN: MOV SP,#60H 由于后面的延时程序用到了寄存器R7,所以要将SP的值赋为60H,防止R7的地址被占用。
LCALL DISP 调用子程序DISP,使数码管显是00按键1的作用是计数1-----100,按下一次数码管显示数字加1LOOP: JB P3.0,NK1 判断按键1是否被按下LCALL DL 延时程序看是否为误按JB P3.0,NK1 判断按键1是否仍处于被按下状态,确定按键确实被按下,未被按下跳转到NK1JNB P3.0,$ 判断按键是否被松开,完成了一次按键INC 40H 40H单元地址加1MOV A,#100 100付给A,设置显示数字1---100CJNE A,40H,NN 判断40H单元内容与A相等为100,不想等则转移到NNMOV 40H,#0 当40H内容为100是,从新开始计数,将40H 内容赋为0NN: LCALL DISP 调用子程序DISP按键2的作用是清零.无论之前的数字是几。
NK1: JB P3.1,NK2 判断按键2是否被按下LCALL DL 延时程序看是否为误按JB P3.1,NK2 判断按键2是否仍处于被按下状态,确定按键确实被按下,未被按下则跳转到NK2JNB P3.1,$ 判断按键是否被松开,完成了一次按键MOV 40H,#0 40H内容为0LCALL DISP 调用子程序DISP实现清零NK2: SJMP LOOP 跳转到LOOP按键1被按下要显示的数字计算程序DISP: MOV DPTR,#TAB 将数表首地址送到DPTRMOV A,40H 40H内容送到AMOV B,#10 #10送到BDIV AB A的内容除B的内容,余数存到B里,商存到A 里。
独立按键及矩阵键盘控制LED灯课件
![独立按键及矩阵键盘控制LED灯课件](https://img.taocdn.com/s3/m/f4711e65443610661ed9ad51f01dc281e53a56cf.png)
THANKS
电路。
当按键被按下时,按键的两个触 点之间会短路,从而接通电路; 当按键释放时,触点断开,电路
断开。
独立按键通常用于简单的输入控 制,如开关一个LED灯。
独立按键控制LED灯的电路连接
01
将LED的正极连接到按键的常闭 触点上,LED的负极连接到地线 。
02
当按键没有被按下时,LED灯不 亮;当按键被按下时,LED灯亮 起。
控制家电设备
独立按键和矩阵键盘可以用于控制各种家电设备,如灯光、空调、电视等,实现一键控制和智能 化管理。
实现人机交互
通过独立按键和矩阵键盘,用户可以方便地与智能家居系统进行交互,实现语音控制、手势控制 等多种交互方式。
实现家庭安全
独立按键和矩阵键盘可以用于设置安全报警系统,如门窗报警、烟雾报警等,提高家庭安全防范 能力。
应用场景的比较
独立按键
适用于按键数量较少,布局较为分散 的场合,如遥控器、计算器等。
矩阵键盘
适用于按键数量较多,布局较为紧凑 的场合,如电脑键盘、游戏机手柄等 。
优缺点的比较
独立按键
01
缺点:占用引脚多,不适合大量按键的应 用场景。
03
02
优点:每个按键独立控制,电路简单,易于 实现。
04
矩阵键盘
优点:可节省引脚数量,适用于大量按键 的应用场景。
05
06
缺点:电路较为复杂,需要行列扫描或解 码电路才能实现。
04
独立按键及矩阵键盘在智能 家居中的应用
智能家居概述
1 2
3
智能家居定义
智能家居是指通过互联网、物联网等技术,将家庭中的各种 设备连接到一起,实现智能化控制和管理,提高生活便利性 和舒适度。
郭天祥单片机C语言---课后答案
![郭天祥单片机C语言---课后答案](https://img.taocdn.com/s3/m/d288f75f3b3567ec102d8ac0.png)
郭天祥十天学通单片机TX-1C单片机实验板所有课作业+答案,特别整理,供单片机爱好与学习者使用讲次内容细节第一讲学单片机预备知识、如何点亮一个发光管单片机能做什么,基本电子知识,如何用TX-1C单片机学习板学习单片机,C51知识简介,如何申请免费芯片样品。
点亮一个发光管,第二讲流水灯设计、蜂鸣器发声、继电器控制简单延时程序、子程序调用、带参数子程序设计、流水灯同时蜂鸣器响、如何驱动蜂鸣器,及如何驱动继电器,集电极开路的概念及应用。
第三讲数码管显示的原理、数码管的静态显示共阳、共阴数码管显示原理、定时器工作方式介绍、重点讲述工作方式2、中断概念及中断函数写法、外部中断试验、定时器中断应用第四讲数码管的动态显示原理及应用实现动态扫描概念、定时器、中断加深用单片机的定时器及中断设计一个60秒定时器第五讲独立键盘、矩阵键盘的检测原理及实现键盘用来做什么、如何键盘检测、消抖、键盘编码、带返回值函数写法及应用第六讲AD、DA的工作原理及实现、运放电路模拟电压与数字电压的关系、为什么要使用AD及DA、ADC0804的操作方法、DAC0832的操作方法第七讲串口通讯原理及操作流程串口通讯工作方式、10位数据通讯、波特率概念、如何根据波特率计算定时器初值、串口打印在调试程序中的应用。
第八讲1602液晶、12864液晶显示原理及实现最简单液晶工作原理、如何开始对一个没有任何概念的芯片开始单片机的操作第九讲IIC总线AT24C02芯片工作原理IIC总线工作原理、目前非常通用的一种通信机制第十讲利用51单片机的定时器设计一个时钟综合运用51单片机知识设计一个可以随意调节时间、带整点闹铃的时钟。
(其中用到定时器、中断、按键、蜂鸣器、数码管或串口通信)第十一讲用DS12C887时钟芯片设计一个高精度时钟DS12C887内部带有锂电池,系统掉电情况下可自行精确走10年,并带有闹钟功能、年、月、日、时、分、秒等。
(本节由学生自己设计电路)第十二讲使用Protell99绘制电路图全过程Protell99软件使用、元件库、封装库设计、绘制原理图、错误检查、生成PCB、手动、自动布线、送去加工第十三讲Altium designer 6.5绘制电路图全过程最顶级电路板设计软件Altium Designer使用、元件库、封装库设计、绘制原理图、错误检查、生成PCB、手动、自动布线、送去加工lesson1对照TX-1C单片机学习板原理图写程序用位操作和总线操作两种方法完成以下题目1.熟练建立KEIL工程2.点亮第一个发光管.3.点亮最后一个发光管4.点亮1、3、5、75.点亮二、四、五、六6.尝试让第一个发光管闪烁7.尝试设计出流水灯程序=========================================================== ===========================================================lesson2第一个发光管以间隔200ms闪烁8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去。
51单片机学习之5独立按键和矩阵键盘
![51单片机学习之5独立按键和矩阵键盘](https://img.taocdn.com/s3/m/c368150ecd7931b765ce0508763231126edb7761.png)
51单片机学习之5独立按键和矩阵键盘51单片机学习之5-独立按键和矩阵键盘第14集键盘的原理键盘分编码键盘(例如电脑键盘)和非编码键盘(自己用程序去识别)。
非编码键盘分:独立式非编码键盘(独立按键)、行列式非编码键盘(4*4阵列键盘)独立键盘的电路图。
因为51单片机的IO口不是双向口而是准双向口,要让IO口具备输入功能,必须将IO口置1,置1之后当按键按下时IO口的电平会被拉低,即被置0。
当检测到IO 口为0时即可判断该按键已经按下。
按键按下时会有一个抖动的过程(弹片会抖动),由于单片机检测IO口速度非常快,超过弹片抖动的频率,所以当单片机检测到IO口为0时需延时一小段时间再检测IO是否为0,如果仍为0就确认该按钮被按下。
因为IO口里面有上拉电阻,所以当松开按钮时,IO口又被拉高。
例程:#include;#defineuintunsignedint#defineucharunsignedcharsbitKey=P3^4;//按键sbitLed=P1^0; //Led灯voiddelay(uintz);/********主函数********/voidmain(){while(1){if(!Key){delay(10);//消抖操作if(!Key)Led=0; //按下时Led亮elseLed=1;}}}voiddelay(uintz){uintx,y;for(x=z;x>;0;x--)for(y=110;y>;0;y--);}第15集4*4矩阵键盘上图中,1个按键占用一个IO口,如果有16个按键就占用了16个IO口。
为了减少IO口的使用,就需要用矩阵的方式连线。
如下图矩阵扫描原理从图可以看出P30、P31、P32、P33为行(低四位),P34、P35、P36、P37为列(高四位)。
假设我们按下的是S6按钮。
第一步,我们先确定列,给P3口赋值0xF0=11110000,那么P37、P36、P35、P34都被置1,P33、P32、P31、P30都被置0,当S6被按下时,由于S6按钮的一边P31为0,所以跟S6另一边相连的P35被拉低,即等于0。
独立式按键_单片机原理与接口技术(第2版)_[共2页]
![独立式按键_单片机原理与接口技术(第2版)_[共2页]](https://img.taocdn.com/s3/m/d961d2e10b4c2e3f56276350.png)
8.1 键盘接口技术 211图8-4 独立式按键原理图 图8-5 矩阵式键盘原理图 8.1.3 键盘扫描控制方式在单片机应用系统中,对键盘的处理工作仅是CPU 工作内容的一部分,CPU 还要进行数据处理、显示和其他输入/输出操作,因此键盘处理工作既不能占用CPU 太多时间,又需要对键盘操作能及时做出响应。
CPU 对键盘处理控制的工作方式有以下几种。
1.程序控制扫描方式程序控制扫描方式是在CPU 工作空余调用键盘扫描子程序,响应按键输入信号要求。
程序控制扫描方式的按键处理程序固定在主程序的某个程序段。
当主程序运行到该程序段时,依次扫描键盘,判断有否按键输入。
若有,则计算按键编号,执行相应按键功能子程序。
这种工作方式,对CPU 工作影响小,但应考虑键盘处理程序的运行间隔周期不能太长,否则会影响对按键输入响应的及时性。
2.定时控制扫描方式定时控制扫描方式是利用定时/计数器每隔一段时间产生定时中断,CPU 响应中断后对键盘进行扫描,并在有按键闭合时转入该按键的功能子程序。
程序控制扫描方式与定时控制扫描方式的区别是,在扫描间隔时间内,前者用CPU 工作程序填充,后者用定时/计数器定时控制。
定时控制扫描方式也应考虑定时时间不能太长,否则会影响对按键输入响应的及时性。
3.中断控制方式中断控制方式是利用外部中断源响应按键输入信号。
当无按键按下时,CPU 执行正常工作程序。
当有按键按下时,CPU 中断。
在中断服务子程序中扫描键盘,判断是哪一个按键被按下,然后执行该按键的功能子程序。
这种控制方式克服了前两种控制方式可能产生的空扫描和不能及时响应按键输入的缺点,能及时处理按键输入,提高CPU 运行效率,但要占用一个中断资源。
8.1.4 独立式按键单片机控制系统中,如果只需要几个按键,可采用独立式按键结构,图8-6(a )所示为低电平。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if-else形式: if (表达式) 语句1; else 语句2;
Slide 5
if语句嵌套 语句嵌套 if Sentence Nesting 在一个if语句中又包含了另 一个if语句,称为if语句的 嵌套。 一般形式为: if ( ) if ( ) 语句1 语句4;
Slide 8
独立式键盘电路
Slide 9
键盘程序的编写
• 端口方向DDRX,(X=A、B、C、D) • 端口寄存器:PINX,(X=A、B、C、D) • 键盘防抖 • 判断按键释放
Slide 10
综合实训: 综合实训:简单交通灯系统的设计
• PA.1代表红灯,PA.4代表绿灯,PA.7代表黄灯。 • 交通灯的正常亮灭规律是: 红灯6s 绿灯4s 黄灯2s • PA.0上的K1键为人工控制键,任何时候按下该键 ,立即进入绿灯长亮状态,直至松开。松开后接 着中断前的状态继续运行。
lcd_init(8);
Slide 3
if语句 语句 if Sentence
1.if语句的一般格式
if(表达式 表达式) 表达式 {语句组 语句组1;} 语句组 [else {语句组 语句组2;} ] 语句组 (1)if语句中的“表达式”必须用“(”和“)”括起来。 (2)else子句(可选)是if语句的一部分,必须与if配对使用,不能单独使 用。 (3)当if和else下面的语句组,仅由一条语句构成时,也可不使用复合语 句形式(即去掉花括号)。
Slide 11
上机练习 Practice 采用软件延时设计一个电子跑表。 采用软件延时设计一个电子跑表。 要求显示在分钟、秒钟和100ms钟。 要求显示在分钟、秒钟和 钟 软件延时采用delay_ms(100)函数。 函数。 软件延时采用 函数 1000ms=1秒,60秒=1分 = 秒 秒 分
Slide 12
2.if语句的执行过程 (1)缺省else子句时 当“表达式”的值不等于0(即判定为“逻辑真”)时,则执 行语句组1,否则直接转向执行下一条。
Slide 4
if语句形式 语句形式 if Sentence Form
if形式: if (表达式) 语句; else-if形式 if (表达式1) 语句1; else if (表达式2) 语句2; …… else 语句n;
switch语句的 基本格式
Slide 7
switch语句形式 语句形式 switch Sentence Form
常量表达式, 常量表达式, 值必须互不相同 语句标号作用,必须用break break跳出 语句标号作用,必须用break跳出 case后可包含多个可执行语句 且不必加{ 后可包含多个可执行语句, case后可包含多个可执行语句,且不必加{ } switch可嵌套 switch可嵌套 多个case case可共用一组执行语句 多个case可共用一组执行语句
C语言规定, else总是和它 上面离它最近 的if配对。
Slide 6
switch语句 语句 switch Sentence
switch语句是实现多分支 选择结构的另一个语句。 switch (表达式) { case 常量表达式1:语句1;[break;] … case 常量表达式n:语句n;[break;] default :语句n+1; }
AVR单片机技术(四) 单片机技术( 单片机技术 AVR Microcontroller
主讲教师:肖迎春
Email: ShortNum: QQ: Office:
xiaoyc@ 635553 787522366 行政楼509,二工业中心418
课件原创 李正中
Slide 1
AVR单片机嵌入式C AVR单片机嵌入式C编程 单片机嵌入式 Embedded C Programming 1.选择结构程序设计 1.选择结构程序设计 2.循环结构程序设计 2.循环结构程序设计 3.独立式键盘识别 3.独立式键盘识别
switch(score) 例 如: …… { case 5: case ‘A’: printf(“Very good!”);break; case 4: case ‘B’: printf(“Good!”);break; case 3: case ‘C’: printf(“Pass!”);break; case 2: printf(“score>60\n”); printf(“Fail!”);break; default :break; printf(“data error!”); } ……..
Slide 2
选择结构程序设计 Selectable Structure Programming
main( ) 任务1 任务1: #include <mega16.h> {PORTA=0xFE; /O按键 KEY1 按键KEY PA口 PA4~PA7 对应数字键1 1/O 按键 KEY ~KEY4 接在PA DDRA=0x01; 1~KEY4 接在 PA 口 , 的 PA4~PA7 对应数字键 1 ~ 4 。 配置PA 为输出,输出0 初始化液晶 PA4~PA7为输入,上拉, 配置PA0为输出, 输出0,PA4~PA7为输入 ,上拉 ,判断按键 While(PA0{ (1) ) if(是否按下,并在液晶上显示相应的按键值。 PINA&0x10)!=0x10) (是否按下,并在液晶上显示相应的按键值。 #asm {lcd_gotoxy(0,0); lcd_putsf(“K DWN!); .equ __lcd_port=0x18 lcd_gotoxy(1,0); ;PORTB lcd_putchar(‘1’);} else #endasm {lcd_gotoxy(0,0); Lcd_putsf(“K UP!); #include <lcd.h> lcd_gotoxy(1,0); lcd_putchar(‘1’);}}}