ICode9

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

3.单片机 数码管显示

2022-05-02 14:35:59  阅读:149  来源: 互联网

标签:case P0 数码管 位选 显示 break 单片机 P27


目录

3.1 静态数码管显示

3.2 动态数码管显示

本专栏所有引脚及端口 代码及注解 选择的是BST-V51 单片机

需结合具体的单片机原理图进行分析

接下来的本专栏都选择该单片机及其原理图分析来进行操作

 

3.1 静态数码管显示

P0 可以定义控制数码管的位选和段选信号所选中的数码管

   while(1){  
        P0 = 0xf3;     //1111 0011; 选中第 3,4 号数码管
        //先传入位选信号 选中其中一个数码管
        P27 = 1;
        P27 = 0;


        P0 = 0x4f;     //01001111 dpGFEDCBA ...3
        //再传入段选信号  显示传入数据,然后上传
        P26 = 1;
        P26 = 0;
        delay_ms(1);
  }

 

P2^7 号引脚控制位选信号,P2^6 控制段选信号

 

3.2 动态数码管显示

 

 1 #include <STC89C5xRC.H>
 2 #include <DELAYMS.H>
 3 char leddate[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F };//定义数组 0-9 的数码管显示
 4 void ShuMaGuan(unsigned int choose,int number){
 5     switch(choose){
 6         case 1:P0 = 0xfe;P27 = 1;P27 = 0;break;
 7         case 2:P0 = 0xfd;P27 = 1;P27 = 0;break;
 8         case 3:P0 = 0xfb;P27 = 1;P27 = 0;break;
 9         case 4:P0 = 0xf7;P27 = 1;P27 = 0;break;
10         case 5:P0 = 0xef;P27 = 1;P27 = 0;break;
11         case 6:P0 = 0xdf;P27 = 1;P27 = 0;break;
12         case 7:P0 = 0xbf;P27 = 1;P27 = 0;break;
13         case 8:P0 = 0x7f;P27 = 1;P27 = 0;break;
14         default: P10 = 0; delay_ms(500);P10 = 1; break;//如果没有选中数码管则点亮红灯 500ms
15     }
16     P0 = leddate[number]; 
17     P26 = 1;    P26 = 0;
18 //数码管实现消影(避免出现错乱) 段码清 0,消影
19 //位选 段选(中间需要将段选清零 P26 = 0) 位选 段选 清零 位选 段选
20 //清零:消除影响
21 }
22 void LiuDong(){
23     unsigned int i;
24     for(i = 8;i>=0;i-- ){
25         ShuMaGuan(i,i);
26         delay_ms(300);
27         if(i == 0){ 
28             i = 9;
29         } 
30     }      
31 }
32 int main(){
33     while(1){
34         LiuDong();  
35     }  
36 }


我目前是一名计算机专业的学生,我会不断地在各大平台分享我的所学,让知识得到共享,希望大家多多关注,一起从学习计算机基础直到计算机的深入式学习,让我们共同进步吧。

转载于: https://zhuanlan.zhihu.com/p/508409286

标签:case,P0,数码管,位选,显示,break,单片机,P27
来源: https://www.cnblogs.com/xiaoxie001/p/16215746.html

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

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

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

ICode9版权所有