标题:
单片机按键加减清零仿真电路图与源程序
[打印本页]
作者:
岁月静好lhy
时间:
2018-2-8 17:07
标题:
单片机按键加减清零仿真电路图与源程序
这是一个单片机用按键控制数码管显示数字并且可以通过按键来调节数码管上显示数字的大小
含源码 (keil)和仿真电路(Proteus)
0.png
(21.63 KB, 下载次数: 47)
下载附件
2018-2-8 23:50 上传
单片机源程序如下:
#include<reg51.h>
#include"intrins.h"
#include"delay.h"
/*uchar code DSY[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90,0xff}; //共阴,不显示小数点*/
uchar code DSY[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,
0x7D,0x07,0x7F,0x6F};
uchar buffer[3]={0,0,0};
uchar key_counts=0;
uchar key_CODE;
/* 中断初值 */
void init()
{
TMOD=0x00;
TH0=(8192-1000)/32;
TL0=(8192-1000)%32;
EA=1;
ET0=1;
TR0=1;
}
/*显示函数*/
void display()
{
uchar i,j=0xfe;
buffer[2]=key_counts/100;
buffer[1]=key_counts/10%10;
buffer[0]=key_counts%10;
for(i=0;i<3;i++)
{
P3=0xff;//位选
P2=DSY[buffer[i]];//段选
P3=j;
j=_crol_(j,1);
delay(1);
}
}
/*主函数*/
void main()
{
init();
//uchar i;
P3=0xff;
P1=0xff;
P2=0xff;
key_CODE=0xff;
while(1)
{
display();
key_CODE=P1;
switch(key_CODE)
{
case 0xfe:if(key_counts<255)key_counts++;break;
case 0xfd:if(key_counts>0)key_counts--;break;
case 0xfb:key_counts=0;break;
}
while(P1!=0xff)
display();
}
}
void timer0( ) interrupt 1 using 0
{
uchar flag;
TH0=(8192-1000)/32;
TL0=(8192-1000)%32;
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
0.png
(57.5 KB, 下载次数: 53)
下载附件
2018-2-8 23:51 上传
所有资料51hei提供下载:
按键加减清零.zip
(65.79 KB, 下载次数: 41)
2018-2-8 17:06 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1