C51数码管控制.ppt

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C51数码管控制

实例6-2 数码管静态显示案例 #includereg51.h unsigned char seg[10]={0xc0,0xf9,0xa4, 0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void main() {unsigned int i ,ctr=0xfe; P2=0xff;//4个数码管均可送数 for(i=0;i3;i++) { P0=seg[i];//相应段码被送出到P0 P2=ctr;//ctr中哪一位为0表示相应数码管被锁定 ctr=1;//右移使数码管从第1个到第3个依次被锁 } while(1); } 说明:74LS373的LE端为1表示送数,为0表示锁存,ctr的变化与此相关 * 实例6-3 动态显示案例 利用下图实现从左至右分别显示0~3共4个数字。 * 实例6-3 数码管动态显示 #includereg51.h unsigned char seg[10]={0xc0,0xf9,0xa4, 0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char con[4]={0xfe,0xfd,0xfb,0xf7}; unsigned int i=0; void main() {TMOD=2; TH0=6;TL0=6; EA=1;ET0=1;TR0=1; while(1); } void isr_time0() interrupt 1 { P1=con[i]; P2=seg[i]; i++; if(i==4) i=0; } * 第十一周上机任务: 1、某啤酒自动生产线,每检测一瓶,数码管显示该数字,检测到10瓶后重新计数显示(较易) 课后准备程序,实训课上用proteus演示,检测信号用按钮代替。 要求:电路图自行设计 2、P189 题 6-2(易) 3、P189 题 6-3(难) 自选一题,演示登记。 题目及程序写在作业本上 * 本周四上机题目 设计一个电路,要求: 1)开关1闭合,开关2断开时,数码管显示数字1,3,5 ; 2)开关2闭合,开关1断开时,数码管显示数字2,4,6 ; 3)开关1、开关2均断开时,数码管显示数字0 课下准备程序,上机用proteus仿真显示结果 * 二维数组 * x[0][0] x[0][1] x[0][2] x[1][0] x[1][1] x[1][2] 数据类型 数组名[常量表达式1][常量表达式2]; Example int x[2][3]; 行 列 int a[3,4], b(3,4); int c[ ][ ], d(3)(4); 6.2 数组 2.二维数组的定义和初始化 该数组含有哪些元素? * (1)分行对二维数组初始化 Example int a[2][3]={{1,2,3},{4,5,6}}; 初始化后: 1 2 3 4 5 6 方法直观! 6.2 数组 2.二维数组的定义和初始化 (2)按数组排列的顺序初始化 数据较多时容易遗漏,不易检查! Example int a[2][3]={1,2,3,4,5,6}; 初始化后: 1 2 3 4 5 6 (3)对全部数组元素初始化 可省略行号,列号不能省 Example int a[ ][3]={1,2,3,4,5,6}; 初始化后: 1 2 3 4 5 6 Example int a[ ][3]={1,2,3,4,5,6,7}; 结果: 1 2 3 4 5 6 7 0 0 (4)对部分元素赋初值 Example int a[2][3]={{1,2},{4}}; 等价于? 结果: 1 2 0 4 0 0 * a[3][4]=3; a[1,2]=1; 数组名[行下标][列下标] Example int a[3][4]; a[0][0]=3; a[0][1]=a[0][0]+10; a[2-1][3*1] a[3][4]=3; a[1,2]=1; 引用: /* 下标越界 */ /* a[1][2]=1; */ 6.2 数组 2.二维数组的引用 这两个引用正确? * 用二层循环语句处理数组,通常外循环控制行,内循环控制列。 例如: unsigned char a[2][3]={{1,2,3},{4,5,6}}; 6.2 数组

文档评论(0)

rovend + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档