您好,欢迎来到华拓网。
搜索
您的当前位置:首页单片机控制数码管

单片机控制数码管

来源:华拓网


一、任务说明

利用51单片机、1个按键及1位7段数码管等器件,设计一个单片机输入显示系统,要求每按一下按键数码管显示数据加1(数码管初始值设为0,计到9后再加1 ,则数码管显示0)。

本次设计采用12MHz的晶体振荡器为单片机提供振荡周期,外加按键、复位电路和显示电路组成。

二、原理图

本次设计主要用到单片机ATC51、晶振时序电路。ATC51是一种带4KB闪烁可编程可擦出只读存储器的低电压、高性能CMOS微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的ATC51是一种高效微处理器,为很多嵌入式控制系统提供了一种灵活性高且廉价的方案,ATC51的管脚分配。ATC51单片机主要由4个输入输出端口(P0口、P1口、P2口、P3口)及个控制引脚组成的,本次设计用到P1、P2的部分引脚,及18、19脚外接晶振电容为单片机提供时钟,9管脚为复位引脚,外接复位电路。晶振时序电路:XTAL1和XTAL2分别为片内反相放大器的输入和输出端,当单片机采用外部时钟信号时,前者接地,后者引入外部输入信号,本次设计采用12M的石英晶体振荡器为单片机提供时钟。

三、流程图绘制以及说明

主程序设计说明

主程序主要分为四部分,包括复位电路部分、按键的判别部分、单片机控制主程序部分和译码显示部分,模块流程图如图6所示:

开始 是否按键? Y N 向单片机申请显示0 计数加1,向单片机申 请显示该数值。 单片机主控制电路 将单片机处理的数据进行显示 返回重新检测按键 结束

图6 主程序流程图

附录II 源程序清单 #include

#define uchar unsigned char

sbit key=P1^0; //按键的位定义

uchar code duan[]={~0x3F,~0x06,~0x5b,~0x4f,~0x66,~0x6d,~0x7d,~0x07,~0x7f,~0x6f};

//此数组为 !!! 0~9 !!! uchar num; //记录按键的次数 void display(uchar); //显示函数声明 void delay(uchar); //延时函数声明 void main() {

uchar num=0;

while(1) {

if(key==0) { delay(80); if(key==0) { if(num==9) num=0; else num++; while(!key); } } display(num); } }

void display(uchar x) {

P2=duan[x];

delay(1); }

void delay(uchar a) {

uchar y,z;

for(y=a;y>0;y--) for(z=150;z>0;z--); }

附录III 元器件清单

//while大循环 //按键消抖 //重新检测 //等待松手,松手后才能送去显示 //在1位数码管上显示

元件标号 ATC51 74HC245 7SEG RES BUTTON CAP CRYSTAL

元件名称 51单片机 数据缓冲器 7段数码管 电阻 按键 电容 晶振 所在库 MCS8051 74HC DISPLAY DEVICE ACTIVE DEVICE DEVICE

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo3.cn 版权所有 湘ICP备2023017654号-3

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务