ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

蓝桥杯——数码管

2020-01-28 12:40:32  阅读:391  来源: 互联网

标签:P2 delay P0 数字 原理图 蓝桥 数码管


1.数码管原理图说明

        首先从官方原理图中找到DS1和DS2数码管原理图,如下:

从原理图上可以看出,二极管显示和具体位置都受到P0端口的控制;在数码管初始化时,可以通过改变P0具体数值来进行具体位置数字显示,如:P0=0X01时,对应与DS1第一位置上显示数字;对于单个二极管当值为0时亮。

注释:单个二极管数字0—9显示表:0—0XC0;1—0XF9;2—0XA4;3—0XB0;4—0X99;5—0X92;6—0X82;7—0XF8;

8—0X80;9—0X90;

2.按键对于二极管控制原理图

        如果要用按键P30—P36时,J5要接2和3,要用P37时,J5要接1和2;对于P30对应于S7,当S7按下去时,P30=0;

同理可知:P31与S6、P32与S5、P33与S4;

3.实现功能的具体例子

3.1 实现具体位置数字显示

#include<stc15f2k60s2.h>
void main(){
P2=0XA0;P0=0X00;P2=0X80;P0=0XFF; //初始化
P2=0XC0;P0=0X01;P2=0XFF;P0=0XFF; //初始化,第一个P0=0X01对应DS1第一个位置显示数字;
while(1){
P0=0xA4; //	显示数字2;
}
}

3.2 通过按键控制数码管

#include<stc15f2k60s2.h>
void keycan();//按键函数声明;
void delay();  //延迟函数声明;
void main(){
P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;
P2=0XC0;P0=0X01;P2=0XFF;P0=0XFF;	// 初始化,DS1第一个位置显示数字;
while(1){
keycan();
}
}
 //通过按键控制显示的数字
void keycan(){
if(P30==0){
     delay();
	 if(P30==0){
	 P0=0XF8;  //数字7
	 }
   while(!P30);
}
else if(P31==0){
     delay();
	 if(P31==0){
	 P0=0X82;	//数字6;
	 }
	 while(!P31);
	 }
else if(P32==0){
     delay();
	 if(P32==0){
	 P0=0X92;	//数字5;
	 }
	 while(!P32);
	 }
else if(P33==0){
     delay();
	 if(P33==0){
	 P0=0X99;	 //数字4;
	 }
	 while(!P33);
	 }
}
//定义延时函数delay
void delay(){
unsigned int i,j;
for(i=0;i<80;i++)
for(j=0;j<600;j++);
}


也可以通过数组的方式实现按键控制数码管,此处省略。

4.结论与要求

        1、数码管部分也比较简单,熟练掌握原理图,知道每个接口的用处;

        2、实现数码管在具体位置显示具体数字的例子(如;在DS2第三个数码管显示9);

        

范飓飞 发布了14 篇原创文章 · 获赞 11 · 访问量 3024 私信 关注

标签:P2,delay,P0,数字,原理图,蓝桥,数码管
来源: https://blog.csdn.net/fanjufei123456/article/details/104098193

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有