第9章+应用设计举例.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章应用设计举例

第9章 应用设计举例 程序示例 例1:电路如下图所示,要求按一下K1键LED全亮,按一下K2键LED全灭。(简单if语句) 程序示例 例2:电路如下图所示,要求按住K1键LED全亮,松开K1键LED全灭。(双分支if语句) 程序示例 例3:电路如下图所示,要求按下K1键点亮LED,按K2键熄灭LED,且K2优先,只要K2被按住LED就不能被点亮。(多分支if语句) 程序示例 例4:电路如下图所示,如果K1键被按住, K2键也被按住,那么LED全亮。松开K2键,LED也不灭,松开K1键,LED全灭。(if语句的嵌套) 程序示例 例5:电路如下图所示,要求按K1键,D1亮;按K2键,D2亮;按K3键,D3亮;按K4键,D4亮;每次按键只有一个LED亮。(switch语句) 程序示例 例6:电路如下图所示,若K1键被按下,流水灯工作;否则LED全部熄灭。(while语句) 程序示例 例7:电路如下图所示,若K1键被按下,流水灯工作;否则LED全部熄灭。(do…while语句) 程序示例 例8:电路如下图所示,要求开机后,全部LED不亮,按K1键则从D1开始依次点亮,至D4后停止并全部熄灭;待再次按K1键,可重复上述过程。如果中间K2键被按下,则LED立即全部熄灭,并返回起始状态。(for语句) 程序示例 例9:电路如下图所示,要求开机后,全部LED不亮,按K1键则从D1开始依次点亮,至D8后停止并全部熄灭;待再次按K1键,可重复上述过程。如果中间K2键被按下,则LED立即全部熄灭,并返回其始状态。 中断编程 例10:编程实现按一下按钮K,则LED亮,再次按一下按钮K, 则LED熄灭 。 中断编程 例11:编程实现按下任何一个开关均可向单片机申请中断,电路如下。 利用指针实现数据传送程序示例 例12:利用C51指针完成以下任务,要求首先将外部RAM 0x2000开始的单元内容初始化为大写字母A-Z,然后将所有A-Z的ASCII码之和存入内部RAM0x40开始的单元中。 定时器/计数器程序示例 例13:设单片机的fosc=12MHz,要求在P1.1引脚上输出周期为2ms的方波。 定时器/计数器程序示例 例14:设单片机的fosc=12MHz,要求用定时器中断方式实现P1.1引脚所接LED每60ms亮灭一次。 定时器/计数器程序示例 例15:设单片机的fosc=12MHz,要求用定时器中断方式实现P1.0引脚所接LED每0.5s亮灭一次, P1.1引脚所接LED每1s亮灭一次。 定时器/计数器程序示例 例16:设单片机的fosc=12MHz,要求用定时器中断方式实现P1.1引脚所接LED每1s亮灭一次。 数码管显示1 例17:电路如下图所示,要求在实验板右边第1位数码管(C4)上循环显示数字0~9。 数码管显示2:计数器 C51程序 #include AT89X52.H #define uchar unsigned char #define uint unsigned int sbit disp4=P1^5; sbit disp3=P1^6; sbit disp2=P1^7; sbit disp1=P3^6; sbit key1=P3^2; sbit key2=P3^3; sbit key3=P3^4; uchar code disp_tab[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e}; uint count=0; 程序 void delay() /*延时2ms函数*/ { uchar i; for(i=0;i250;i++); } void display(uint m) /*动态数码管显示函数*/ { uchar d1,d2,d3,d4; d1=m%10; /*计算个位数字*/ disp1=0;P2=disp_tab[d1];delay();disp1=1; d2=(m/10)%10; /*计算十位数数字*/ disp2=0;P2=disp_tab[d2]; delay();disp2=1; d3=(m/100)%10; /*计算百位数字*/ disp3=0;P2=disp_tab[d3];delay();disp3=1; d4=m/1000; /*计算千位数字*/ disp4=0;P2=disp_tab[d4];delay(); disp4=1; } 程序 void main() { TMOD=0x01; TH0=(65536-50000)/256; /*定时50ms*/ TL0=(65536-50000)%256;EA=1

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档