汽车单片机技术 课件 2.2 两位数码管循环显示0~99_第1页
汽车单片机技术 课件 2.2 两位数码管循环显示0~99_第2页
汽车单片机技术 课件 2.2 两位数码管循环显示0~99_第3页
汽车单片机技术 课件 2.2 两位数码管循环显示0~99_第4页
汽车单片机技术 课件 2.2 两位数码管循环显示0~99_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

两位数码管循环显示0~99本次课内容:基本任务(1)用两位数码管显示一个两位数,例如12.编程,自行设计proteus仿真图,实现功能;编程,使用mini51开发板,实现功能。(2)两位数码管循环显示0-99,编程,自行设计proteus仿真图,实现功能。2.进阶任务(1)设计一个0~99的秒表,包括电路设计和程序设计,按下按键开关,从0开始计时,最大计到99秒,之后一直在0-99秒之间循环计时。按键开关断开,停止计时。用proteus仿真图实现功能。(2)设计一个0~99的计数器,手动计数按钮按一下,计一个数,即对按下按键的次数进行计数,并通过两个数码管显示计数结果,最大计到99。画Proteus仿真图,关键词如下:加运算符“+”,减运算符“-”,乘运算符“*”与一般算数运算规则相同。除运算符“/”,分两种情况:(1)整除:两个整数相除,所得商舍去尾数,仅到整数部分。例如,3/6等于0,而不是0.5;(2)实除:参加运算的两个数中有一个数为实数,所得的商为实数,如3.0/6=0.5,3/6.0=0.5,3.0/6.0=0.5等。求余运算符“%”,要求两个对象均为整数,所得结果为两个操作对象整除后,取其余数,如3%6等于3,而6%3等于0.proteus仿真图实现显示一个两位数-程序proteus仿真图见该PPT第3页#include<AT89X52.H>sbitWE1=P2^0;sbitWE2=P2^1;sbitWE3=P2^2;sbitWE4=P2^3;unsignedcharnum;unsignedcharcodetable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //定义0-9十个数字的字形编码表共阳极数码管voiddelay() //延时10ms{ unsignedchari,j; for(i=20;i>0;i--) for(j=248;j>0;j--); } voidmain(){ num=79;while(1) { WE1=0;//开数码管1 P0=table[num/10]; //显示十位数

delay(); WE1=1;//关数码管1 delay();

WE2=0;//开数码管2 P0=table[num%10]; //显示个位数

delay(); WE2=1;//关数码管2 delay(); }

} MINI51开发板实现显示一个两位数-程序proteus仿真图实现循环显示0-99-程序proteus仿真图见该PPT第3页#include<AT89X52.H>unsignedcharnum;unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //定义0-9十个数字的字形编码表共阴极数码管voiddelay10ms(void) //10ms延时函数 {unsignedchari,j;for(i=20;i>0;i--)for(j=248;j>0;j--); } voidmain(){ num=0; P0=table[num/10]; //十位数码管显示0 P2=table[num%10]; //个位数码管显示0while(1) { if(P1_0==0) //判断按键是否按下

{ delay10ms(); //延时10ms,延时去抖

if(P1_0==0) //确定按键按下

{ num++; if(num==100) {num=0;} P0=table[num/10]; //显示十位

P2=table[num%10];//显示个位

while(P1_0==0); //等待按键释放

} } }}

计数器0-99-程序#include<AT89X52.H>sbitSW=P1^0;unsignedcharnum;unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //定义0-9十个数字的字形编码表共阴极数码管voiddelay() //延时1s{ unsignedinti; unsignedcharj; for(i=0;i<1326;i++) for(j=0;j<249;j++); } voidmain(){ num=0; P0=0x00; //关闭十位数码管

P2=0x00; //关闭个位数码管

while(1) { if(SW==0) { P0=table[num/10]; //显示十位

P2=table[num%10];//显示个位

delay(); num++; if(num==100) {num=0;}

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论