找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6728|回复: 2
收起左侧

单片机数码管程序 实现按下按键1从0到9逐一增加和按下按键2从9到0逐一减小

[复制链接]
ID:624047 发表于 2019-10-14 19:54 | 显示全部楼层 |阅读模式
单片机控制P0口上8段数码管和P2.0,P2.1口上的两个按键,实现按下按键1从0到9逐一增加和按下按键2从9到0逐一减小。

以下为实际效果的截图,如图所示:
0.png

二.实验过程
(一)实验项目的方案分析
1.设计原理
STC12C5A60S2单片机内部包括微处理器、存储器(存放程序指令或数据的ROM、RAM等)、输入/输出口(I/O口)及其他功能部件如定时/计数器、中断系统等。它们通过地址总线、数据总线和控制总线连接起来。
本实验是利用改变P0口的高低电平,来实现8段数码管从0到9显示,并且利用STC12C5A60S2单片机芯片内部的计算能力,执行没有实质性影响的所谓无意义的指令来达到延时效果,进一步通过P0各口的延时来制造数码管效果,实现数码管的显示和循环。

(四)实验项目的虚拟仿真
打开Keil软件将上面程序输入,调试无误后编译输出".hex"文件,打开Proteus软件,将之前编译好的".hex"文件加入到芯片中,开始运行仿真,如下图所示。


通过Keil软件进行C51控制程序的编写,通过不断调试修改,最终的调试好的Keil
程序截图如下图所示
0.png

(五)实验项目的实际验证电路及验证结果
    将单片机C51程序编译无误后,生成HEX文件,通过STC-ISP下载到单片机中,下载的软件界面下图所示。


单片机源程序如下:
  1. #include<reg51.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char         
  4. #define SEG  P0
  5. sbit key1=P2^0 ;
  6. sbit key2=P2^1 ;
  7. uchar code Tab[ ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98};
  8. void delay_1ms(uint t)
  9. {        
  10.         uint i;
  11.         while(--t)
  12.         for(i=0;i<600;i++);
  13. }
  14. main()
  15. {
  16.         uchar i;
  17.         i=0;
  18.         while(1)
  19.         {
  20.                 P0=Tab[i];
  21.                 if(key1==0)        
  22.                 {
  23.                 delay_1ms(10);
  24.                 if(key1==0)
  25.                         {
  26.                         if(i<9)
  27.                         i++;
  28.                         while(key1==0);
  29.                         }
  30.                 }
  31.                         if(key2==0)
  32.                         {
  33.                         delay_1ms(10);
  34.                         if(key2==0)
  35.                                 {
  36.                                         if(i>0)
  37.                                         i--;
  38.                                         while(key2==0);
  39.                                 }
  40.                          }
  41.         }
  42. }
复制代码

所有资料51hei提供下载(Proteus仿真程序):
数码管.rar (605.44 KB, 下载次数: 24)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:509174 发表于 2019-10-15 11:02 来自触屏版 | 显示全部楼层
一位的,也不错
回复

使用道具 举报

ID:763144 发表于 2020-6-1 07:36 | 显示全部楼层
能不能做个自动的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表