怎样用51单片机P3.3口外部电平变化做一个4位数码管显示的计数器?要求用C语言编写

作者&投稿:伯牙吾台慧 (若有异议请与网页底部的电邮联系)
计数器的显示用四位共阴极数码管怎么实现 和单片机的哪些接口连接? c程序怎么写~

四个数码管的八段连接单片机的8个口,再用四个口进行位扫描 就可以了。

#include#define uchar unsigned charuchar tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //0到9uchar num,dat,time;uchar led[]={1,10,2,6};
void t1isr() interrupt 3{TH1=(65536-10000)/256;TL1=(65536-10000)%256;switch(num){case 0:P2=0x01;break;case 1:P2=0x02;break;case 2:P2=0x04;break;case 3:P2=0x08;break;default:break;}P0=~tab[led[num]];num++;num&=0x03;}
main(){TMOD=0x10;TH1=(65536-10000)/256;TL1=(65536-10000)%256;TR1=1;ET1=1;EA=1;while(1);
}

/*p0口接段选,p1口接位选*/
#include"reg51.h"
#define uchar unsigned char
#define uint unsigned int
uchar qian,bai,shi,ge;
uint num=0;
uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴数码管的编码

void ISR(void)//中断服务程序
{
num++;
qian=num/1000;
bai=num/100%10;
shi=num/10%10;
ge=num%10; //分离数字
}
void delayms(uchar cnt)
{
uchar x,y;
for(x=cnt;x>0;x--)
for(y=121;y>0;y--);
}

void display(uchar qian,uchar bai,uchar shi,uchar ge)
{
p0=tab[ge];
p1=0xfe;
delayms(2);

p0=tab[shi];
p1=0xfd;
delayms(2);

p0=tab[bai];
p1=0xfb;
delayms(2);

p0=tab[qian];
p1=0xf7;
delayms(2);

}
void main()
{
EA=1;//开总中断
EX0=1;//开外部中断
IT0=1;//负跳变有效
while(1)
{
display(qian,bai,shi,ge);
}
}

可能数码管显示或有些跳动,你只要修改delayms中的参数值即可。。大致思想就这样,希望对你有帮助!

分都没的。。不想花时间去给你写这个程序。,。。

我来帮你写啊


怎样使用51单片机p3口的第二功能?
使用51单片机p3口的第二功能,并不需要刻意安排,只要启用了相应功能或执行了相应指令,自然就启用了p3口的第二功能。比如:\\x0d\\x0a1、使用了串行口收发数据通信功能,P3.0、P3.1就是RXD、TXD通信线。\\x0d\\x0a2、允许了外部中断0和1,P3.2、P3.2自然就是外部中断输入管脚。\\x0d\\x0a3...

MCS-51单片机的P0、 P1、 P2、 P3口有哪些功能?如何使用这些功能?
1、扩展外部存储器时,当作地址总线使用 2、做一般I\/O口使用,其内部有上拉电阻;P3口有两个功能 除了作为I\/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。有内部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲和编程电源,...

51单片机P3口的第一第二功能如何同时使用?
这样P3口就可以接2个外部中断,2个io口做I2C接口,2个io口专门做串口通信,还2个io口再做个别的

给51单片机下程序接哪几个引脚
1. 对于STC芯片,程序下载是通过串口进行的,具体连接到51单片机的P3.0和P3.1引脚。2. 对于AT芯片,使用ISP下载方式,连接到单片机的P1.5、P1.6、P1.7引脚以及复位引脚。3. 当使用USB下载器时,连接过程简化。下载器的VCC引脚连接到单片机的VCC,下载器的GND引脚连接到单片机的GND,下载器的RXD...

51单片机 我想让p3口做输入口, 然后用程序读取p3口的数据,应用汇编语言...
先对要读的P3端口置高,再用传送指令。mov p3,#0ff (如P3固定只用作输入这句可不用)mov a,P3

怎样使用51单片机p3口的第二功能?
允许外部中断0和1,P3.2、P3.2即可。当作普通IO口,可以写:P3 = 0x30。当作外部中断时:(我以外部中断的P3^2为例)。sbit Key = P3^2;if(Key == 0){...}\/\/中断函数。

51单片机P3口作为第二功能使用要先写1吗
原理上,51单片机P3口作为第二功能使用前,是要先写1的。但是,既然做第二功能用了,就不会给所用引脚写过0的。而且,单片机开机复位P3口各引脚本就是为1的,所以,在开机后保证没有写过0,就不必写1啦。假如,有指令给引脚写过0(这种可能性不大,因为用第二功能了,就不能做输出脚),那就...

51单片机P3口作用是什么?
单片机P3口第二功能,各位定义如下:P3.0 RXD(串行口输入);P3.1RXD(串行口输出);P3.2 \/INT0(外部中断0输入);P3.3 \/INT1(外部中断1输入);P3.4 T0(定时器\/计数器0的外部输入);P3.5 T1(定时器\/计数器1的外部输入);P3.6 \/WR (片外数据存储器写选通控制输出);...

C51用P3口做输入时,一定需要先对该口置1吗? 我P3每个引脚都上拉了一个...
没必要置1的,如果IO口驱动能力不足的时候才会用到上拉,一般也不需要上拉的,只有P0口没有上拉电阻,其他几个IO口内部都自带上拉电阻了。51单片机上电默认IO口就是高电平,用软件来完成最简单了,直接写1就行了。单片机引脚作为输入和输出是由程序来决定的,与外围电路无关。比如你想做输出,就...

典型51单片机的P0,P1,P2,P3口都有哪些功能?
2、P1口:最简单的口,输入也要先置1,无高阻态,只能是输出或者输入。能驱动4个TTL负载。 3、P2口:I\/O(输入\/输出)与P1口一样,当有片外存储器时,作地址线使用,寻址64K片外数据存储器。能驱动4个TTL负载。 4、P3口:I\/O(输入\/输出)与P1口一样,但无论输入输出都要...

齐河县13440522900: 怎样用51单片机P3.3口外部电平变化做一个4位数码管显示的计数器?要求用C语言编写 -
郟残雌莫: /*p0口接段选,p1口接位选*/#include"reg51.h"#define uchar unsigned char#define uint unsigned int uchar qian,bai,shi,ge; uint num=0; uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴数码管的编码 void ISR(void)//中断...

齐河县13440522900: 51单片机怎样读P3.3口的电平, 不影响其他P3口的前提下 -
郟残雌莫: P3口是可以位寻址的.P3.3的位地址是:0xB3.如果用C语言,可在C语言中加入以下语句:sbit P3.3, 0xB3; 然后即可在你的程序中应用P3.3来读写P3.3口的电平而不影响其它P3口 比如: P3.3=0; if(P3.3) 语句;

齐河县13440522900: 51单片机如何检测外部电压 -
郟残雌莫: 51单片机的I/O口只能检测数字量即高电平1或低电平0,无法直接检测外部模拟电压,必须通过A/D转换器才行.

齐河县13440522900: 急求用51单片机P3.3口电平负跳变方式在4位数码管显示的计数器,要求C程序 -
郟残雌莫: void main {unsigned char count=0;P3|=0x08;while(1){if(P3^3==0){count++;while(P3^3==0);}disp_count(count); //数码管显示次数} }

齐河县13440522900: 外部输入电压3.3v能把51单片机io口拉高吗 -
郟残雌莫: 51单片机为标准TTL电平,高电平输入最低2伏,所以3.3伏能把51单片机I/O口拉高.

齐河县13440522900: 51单片机P3.2口无法触发外部中断. -
郟残雌莫: 你以P3.3口为低电平时触发中断,那是INT1,中断号是2,中断子程序应该这么写 void exter1() interrupt 2 //这是2 { d1 = 0; //P1^0为低电平 } 不过,你的P1^0外部接LED了吗,否则你怎么知道变成低电平了. 还有,虽然在中断子程序中,P1^0变成了低电平,你也能知道,可是回到主程序后, for(num = 0;num < 16;num++) { d1 = 1; //这里马上又变成了高电平,那个低电平是看不到的,不能这么写呀!!!!! DUAN = 1; P0 = table[num]; DUAN = 0; delay(100); }

齐河县13440522900: 单片机引脚电平 -
郟残雌莫: 不会.首先,你的接法错了 正确的接法应该是:光敏二极管的负极接地,正极通过一只电阻R接到VCC;而单片机P3.3脚接到光敏二极管正极.当没有光照时,光敏二极管呈截止状态,此时P3.3为高电平; 有光照时,光敏二极管导通,P3.3为低电平.不知你听明白了没有

齐河县13440522900: 51单片机p0口检测高电平 -
郟残雌莫: 原理图可以改为下图:并且在程序,单片机P0.0端口 要 初始化为低电平;仿真时,R5可以选择1K左右,实际电路中应选择4.7K~10K,不然太让费电了.

齐河县13440522900: 51(stc89C52)单片机,用io口判断外部高低电平时io口在软件、硬件上应该如何设置?谢谢! -
郟残雌莫: 先从软件上讲,要判断IO口高低电平,这对于单片机来说是输入状态,所以要将IO口设置为输入状态;再从硬件上讲,电路有很多种,比较保险的作法是采用三级管方式,IO口接到三极管集电极并上拉电压,外部电平就通过电阻搭配接到三极管的基极

齐河县13440522900: 单片机端口检测电平 -
郟残雌莫: 用外部中断就可以了.如果单片机是低电平有效的,那就中间加一个反相器,然后每当仪器输出高电平,经过反相器变为低电平,就引发单片机中断,这样就检测到了. 如果单片机可以是高电平中断,那么就不需要反相器了.还有,单片机与仪器不是可以直接共地么?是一定必须要共地! 否则二者电平没有同一的参考标准,可能会误判.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网