51单片机4位数码管做秒表,C语言编程含有控制开关开始停止清零。
我可以帮你做。很简单哦。需要联系。
~~~~~代写收费
#include <REG52.H>#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define ulint unsigned long int
#define y4c P2&=0x1f;P2|=0X80
#define y5c P2&=0x1f;P2|=0Xa0
#define y6c P2&=0x1f;P2|=0Xc0
#define y7c P2&=0x1f;P2|=0Xe0
#define rst P2&=0x1f
sbit key1=P3^5;
sbit key2=P3^6;
sbit key3=P3^7;
uchar table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uint time,x;
void yan(uint t)
{
uint j;
for(;t>0;t--)
for(j=110;j>0;j--);
}
void anjian()//按键
{
if(key1==0)
{
yan(5);
if(key1==0)
{
x=0;
}
}
if(key2==0)
{
yan(5);
if(key2==0)
{
TR0=1;
}
}
if(key3==0)
{
yan(5);
if(key3==0)
{
TR0=0;
}
}
}
void display(uchar a,uchar b,uchar c,uchar d)
{
y6c;
P0=0x10;
rst;
P0=table[a];
y7c;
rst;
yan(5);
y6c;
P0=0x20;
rst;
P0=table[b];
y7c;
rst;
yan(5);
P0=0x7f;
y7c;
rst;
yan(5);
y6c;
P0=0x40;
rst;
P0=table[c];
y7c;
rst;
yan(5);
y6c;
P0=0x80;
rst;
P0=table[d];
y7c;
rst;
yan(5);
}
void main()
{
TMOD=0x01;//0000 0get位中断0定时01方式
TH0=(65536-5000)/256;//
TL0=(65536-5000)%256;
EA=1;//总终端开关
ET0=1;//打开定时器中断
TR0=1;//启动定时器
P3=0xff;
while(1)
{
anjian();
time=x/2;
display(time/1000,time/100%10,time/10%10,time%10);
}
}
void xx () interrupt 1
{
TH0=(65536-5000)/256;//设置初值
TL0=(65536-5000)%256;
x++;
if(x==20000)
{
x=0;
}
}
晶振频率,没有限定?
你好!秒表的计数最大值是多少?精度是多少
单片机控制四位数码管显示0000-9999
首先告诉你,AT89C51已基本上没人用了,代替它的是AT89S51。共阳数码管,OK,单片机设计多数使用共阳数码管。单片机控制四位数码管显示0000-9999 我给你提供一个每秒自动加1的四位数码管循环显示0000~9999的程序。D0equ0c0h;11000000B D1equ0F9h;11111001B D2equ0A4h;10100100B D3equ0B0h;10110000B...
用单片机的IO口接四位数码管,需要多大的排阻。
用单片机的IO口接四位数码管,需要多大的排阻。这看似简单的问题,还真需要啰嗦几句才行。1、LED数码管有普通亮度和高亮度之分,简单说就是发光效率不同。2、出于成本和实用性考虑,单片机驱动LED数码管没有采用恒流驱动。3、单片机驱动LED数码管有静态和动态之分。4、电源电压不同,同样的排阻阻值,...
单片机实现4位一体数码管显示0000—FFFF的16进制(C语言编程)怎么编程...
\/\/ D\\x0d\\x0a0x79,\/\/ E\\x0d\\x0a0x71\/\/ F\\x0d\\x0a};\\x0d\\x0avoid Delay(void)\\x0d\\x0a{\\x0d\\x0au16 i;\\x0d\\x0afor(i = 0;i > (i * 4)) & 0x000f];\\x0d\\x0aP2 = k | 0xf0;\\x0d\\x0ak <<= 1;\\x0d\\x0aDelay();\\x0d\\x0aP0 = 0xff;...
单片机做四位数码管静态显示实验时要不要锁存器呀,最好发一张电路图解 ...
驱动4位数码管时,这4个数码管可以共用单片机的一个端口,如P0,4个锁存器的D0-D7都接单片机的P0.0至P0,7,Q0-Q7分别接4个数码管的8个阳极(称为段,共阴极),P0口先输出数据给第一个数码管的锁存器,经锁存后,再用P0口给第二个数码管送数据,不影响第一个数码管的状态,再锁存后,P0...
我是单片机初学者,自学到四位数码管的动态显示时发现数码管亮度奇低...
加上三极管就会好的,或者使用锁存器,直接接上,单片机引脚驱动力不够,是会不太亮
用51单片机控制4位一体数码管实现1234轮流显示的程序代码是什么,求!pro...
下面是使用AT89S51单片机控制4位一体数码管轮流显示1234的程序代码:```c include <reg51.h> \/\/ 数码管显示字型码表 unsigned char code LEDDisplay[] = { 0x3F, \/\/ 0 0x06, \/\/ 1 0x5B, \/\/ 2 0x4F \/\/ 3 };sbit DIO = P1^0; \/\/ 串行数据输入 sbit RCLK = P1^1; \/...
单片机控制一个4位的共阴数码管通电的状态下显示时间的程序
TR0=1;ET0=1;EA=1;TH0=0x3c;TL0=0xb0;} void delay(x)\/\/延时函数。{ uint i,j;for(i=x;i>0;i--)for(j=120;j>0;j--);} void xian()\/\/把时分秒送到数码管显示。{ uint i;miaog=miao%10;miaos=miao\/10;feng=fen%10;fens=fen\/10;shig=shi%10;shis=shi\/10;for(i=0...
请问四位共阳数码管的流程图最好带流程图的解释,我做的是关于51单片机的...
可以选择2个4位的数码管,这样只用2个I\/O端口。共阳的数码管每位只需一个三极管驱动,9014或者9015(这是pnp管,接法与9014相反)另外给你说一下(51系列单片机有4个I\/O端口,每个端口都是8位准双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0~P3)、一个输出驱动器和输入缓冲器...
51单片机四位一体共阳极数码管显示编程?
不清楚你的电路构成如何,因此先按下面的假设执行段码及位码的输出;其中,延时值可根据实验效果予以调整;设 P0 为输出七段码(共阳极数据);四位数码管有4个阳极,设位码分别与P2.4--P2.7对应,并且=1时表示可点亮数码管;sbit wma1=b2^4; \/\/对应左起第1个数码管的阳极 sbit wma2=b2^5...
单片机如何同时控制四位数码管显示不同数字。
你的图不是很清楚,根据你图上的功能来看,器件应该是:单片机(51系列) -> 8路缓冲器(74HC245) -> 数码管(四位)1、由于单片机IO口的驱动能力有限,在单片机和数码管中间增加了缓冲器 这样可以有效的保护单片机,提高了驱动能力。2、接法:四位数码管有四个选择端,保证统一时间只A-G字段,...
邲侍小儿: 有XS128的//延时控制 void delay(void) { int m,n; for(m=14000;m;m--){ for(n=1000;n;n--){} } } void LED(void) { PORTB=0XFE; delay(); PORTB=0XFC; delay(); PORTB=0XF8; delay(); PORTB=0XF0; delay(); PORTB=0XE0; delay(); PORTB=0XC0; ...
通山县19668342103: 51单片机做一个10秒倒计时的程序 - ?
邲侍小儿: C语言 #include<reg51.h> #define uint unsigned int #define uchar unsigned char sbit p27=P2^7;//数码管位选端定义 uchar c,i; //数码管译码表 unsigned char code NumDecode[] = { 0XC0,//;0 0XF9,//;1 0XA4,//;2 0XB0,//;3 0X99,//;4 0X92,//;5 0X...
通山县19668342103: 用AT89C51单片机编写一个C语言程序实现2个数码管秒计数器,用4个按键分别控制暂停、加一秒、减一秒和继续 - ?
邲侍小儿: #include<reg51.h>#define uchar unsigned char; uchar LED1,LED2; uchar distab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uchar num=0;sec,key; void delay(unsigned int a) { unsigned int i,j; for(i=0;i<a;i++) for(j=0;j<120;j++); } void ...
通山县19668342103: 用c语言编写程序,用于c51单片机四位共阴数码管显示,显示分秒的计时器. - ?
邲侍小儿: 用proteus做的时钟 可以显示年月日时分秒 可调整时间 有图*/#includereg52.h
通山县19668342103: 用51单片机C语言怎样编程,可以实现切换两个四位共阴数码管时分秒的调试? - ?
邲侍小儿: 思路有点问题.除思路问题外,键盘扫描的处理也有点问题,去抖没做好.1,建议定义一个变量status标记当前调整的是“时”还是“分”还是秒.用一个按键控制这个变量的变化,变量的值由0变到3,再变为0.0的时候不调整,1的时候调整...
通山县19668342103: 用数码管设计一个秒表,使之显示从0~60(用内部定时器),数码管段码由P2口输出位选由P0口输出 - ?
邲侍小儿: #include // 包含51单片机寄存器定义的头文件 unsigned char code Tab[11]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//数码管显示0~9的段码表 unsigned char int_time; //记录中断次数 unsigned char second; //储存秒/**********...
通山县19668342103: 单片机秒表,求大神设计个秒表....C语言程序 - ?
邲侍小儿: 其实四位一体数码管显示电路的位控可直接用P2口控制,不必用锁存器74HC573,仿真图简单,写程序也简单.如下仿真图.
通山县19668342103: 51单片机秒表 c语言编程 - ?
邲侍小儿: 使用12M得晶振,使用定时器计数,10mS中断一次,10次就是0.1秒,100次就是1秒.
通山县19668342103: 51单片机完成简易秒表的设计 - ?
邲侍小儿: 设计思路:1.定时器计时 设置秒表最小单位(如ms)设置定时器的寄存器初始值,定时器溢出显示等.2.键盘扫描 可设置中断也可直接键盘扫描,因键较少可以不必接成矩阵.可以只用三个键来实现. 键1:功能选择,包括功能设置、准备计时等 键2:计时开始,向上调整时间 键3:计时停止,向下调整时间3.显示 看单片机引脚多少,可以直接静态显示,可以用移位寄存器增加管脚功能.
通山县19668342103: 单片机AT89S52制作一个4未显示只显示分跟秒的电子时钟.急求用C语言写的程序 - ?
邲侍小儿: 硬件:用四位共阳数码管,位选用s8550驱动,段选用74HC595或者164驱动 计时芯片采用DS1302,在宏晶网站上有DS1302的驱动程序库,可以引用 程序:用数码管的动态扫描,4位每位之间每位显示时间(1到3ms都行),放在大循环里 ( while(1) { ;//显示程序 } ) 轮流显示四位,