❶ keil写程序 单片机二位数码管显示倒计时
#include<reg52.h>
#define uchar unsigned char
#define an P0 //共阴数码管的阳极端口
sbit wei1=P2^4; //共阴数码管的阳极端口,我的是四位的,下面语句中把1,2关了,只用到了3,4。
sbit wei2=P2^5;
sbit wei3=P2^6;
sbit wei4=P2^7;
uchar code num[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴数码管0~9的十六进制码
void delay(uchar xms) //软件延时
{
int i,j;
for(i=xms;i>0;i--)
for(j=125;j>0;j--);
}
void display(int tens,ones) //用来显示数字的函数,显示此时的十位,个位。
{
int i,j;
for(i=2;i>0;i--)//通过改变i和j的值,可以改变计时时间。
for(j=50;j>0;j--)
{
wei3=1;//扫描原理。
wei4=0;
an=num[tens];
delay(5);
wei3=0;
wei4=1;
an=num[ones];
delay(5);
}
}
void main()
{
int onesp=0,tensp=0;//定义ones place和tens place。
wei1=0;
wei2=0;
while(1)
{
for(tensp=9;tensp>=0;tensp--)
{
for(onesp=9;onesp>=0;onesp--)
{
display(tensp,onesp);//调用函数显示此时的数字。
}
}
}
}
这个程序测试可用,从99计数到00。只用了比较简单知识,不涉及定时器和系统中断。不懂可以追问。
❷ 单片机程序编程(用C51) 2个按键控制2位七段LED显示,每按下一次“+
main()
{
while(1)
{
key=KEY_Scan(0);
if(key=="+")
{
value++;
}
if(key=="-")
{
value--;
}
}
}
u8 KEY_Scan(char mode)
{
static u8 key_up=1;
if(mode)key_up=1;
if(key_up&&(KEYADD==0||KEYRED==0|))
{
delay_ms(10);//去斗
key_up=0;
if(KEY0==0)return 1;
else if(KEY1==0)return 2;
}else if(KEYADD==1&&KEYRED==1)key_up=1;
return 0;
}
value为显示值,KEYADD、KEYRED为加减的两个键,底层要你自己实现
❸ 单片机中二位数码管的显示,怎样用c语言写一段从0到99的程序啊
公阳,P0.2,P0.3 分别通过PNP管接个位,十位数码管公共端,P1口输出数据,都是低电平有效
#include <reg51.h>
sbit shi=P0^3; //十位公共极
sbit ge=P0^2; //个位公共极
#define Out P1 //数据输出端
unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳
// 实际显示 0 1 2 3 4 5 6 7 8 9
//延时----------------------------
Delay(unsigned int t)
{
while(t--);
}
//主程序--------------------------
main()
{
unsigned char i=j=0;
while(1) //循环显示
{
for(i=0;i<200;i++)
{
Out=tab[j%10];
ge=0;
Delay(1000);
ge=1;
Out=tab[j/10];
shi=0;
Delay(1000);
shi=1;
}
j++;
}
}
❹ 用单片机实现2位静态数码管(共阳)控制,其中系统还包括4个独立按键(中断形式),
2位共阳数码管分别接在P0口和P口。难点是4个按键要采用中断方式,所以,4个按键不但接成独立式按键,还要用一个4输入与门得到一个中断请信号加到P3.2上,用INT0中断。右移,左移指定的位,用小数点显示。仿真图如下。
❺ 51单片机怎么把一个2位十进制整数(00-99之间的任意整数)通过串口发送给另一个单片机程序呢!
2位但十进制数就一个字节的数据,直接发送就可以了。比如X为发送数据那么程序为:
senddat:
mov SBUF,X
jnb TI,$
clr TI
ret
C语言
senddat()
{
SBUF=X;
while(!TI);
TI=0;
}