数码管数共阳极的,其他图我就给你弄在一张图上了,至于51的图最小系统之类的,你看着办,树上都有!希望对你有帮助!
以下是程序:
/*上电后数码管显示:00.0,按下S18 后暂停*/
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit start=P2^3;
uchar msecond=0; //记录中断次数
uchar second_0=0,second=0,wei=0,num=0; //second_0为0.1s的计时,wei为数码管的选择
uchar code tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, //共阳极数码管查表数据
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
uchar code tab1[]={0x7F,0xBF,0xDF,0xEF}; //1110,1101,1011,0111
void delay(uchar z);
main()
{
TMOD=0x21; //定时器T1工作在方式2,8位重装定时器,定时器T0工作在方式1,16为定时器
TL1=0x06; //定时0.25ms自动重装2^8用于动态显示
TH0=0x3C; //定时50ms
TL0=0xB0;
EA=1,ET0=1,ET1=1;
TR1=1;
TR0=1;
while(1)
{
if(!start) //有按键按下
{
delay(5); //消抖
if(!start)
{
while(!start); //松手检测
num++;
}
}
if(num==1)TR0=0;
if(num==2)TR0=1,num=0;
}
}
void delay(uchar z)
{ uint x,y;
for(x=z;x>0;x--);
for(y=110;x>0;y--);
}
time1() interrupt 3
{
if(wei==0)
{
P1=tab1[0];
P0=tab[second_0%10];
}
if(wei++==10) //0.25ms移位一次,实现动态扫描
{
P1=tab1[1];
P0=tab[second%10]&0x7f; //小数点
}
if(wei==20)
{
P1=tab1[2];
P0=tab[second/10];
}
if(wei==30)wei=0;
}
time0() interrupt 1
{
TH0=0x3C; //定时50ms
TL0=0xB0;
msecond++;
if(msecond==2) //定时时间到了0.1s
{
msecond=0;
second_0++;
if(second_0==10) //定时时间到了1s
{
second++;
second_0=0;
if(second==60)second=0;
}
}
}
追问有没有用proteus仿真的?
追答这个没有,我有实验板,直接用的,这是效果,我不太会用那个软件,电路图画出来了但是仿真不出来,不好意思。
单片机秒表课程设计,急求!!!
MOV LED_BUF+1,A JMP key_SCAN_END key_start:SETB KEYSTART JBKEYSTART,key_SCAN_END ;DELAY NOP NOP NOP JB KEYSTART,key_SCAN_END JNB KEYSTART,SETB TR0 key_SCAN_END:JMP loop ;=== InitTimer0:;10ms一次中断 MOV TMOD,#01H MOV TH0,#0D8H MOV TL0,#0F0H SETB EA SETB ET...
4. 可任意启动\/停止的电子秒表设计
你好像是个学生,这应该是个课程设计的题目,你应该自己练习做~~这个实现起来很简单,用晶振,C51芯片,七段数码管,5VDC电源,一个按键,导线,好像还要用译码器等~~你还是自己动脑思考一下吧!~
利用51单片机,4个数码管设计一个计时器,要求在数码管上显示的数据从0开...
其硬件框图如图2.2所示,原理图见附录图6.1。图2.2 数字钟硬件框图2.4 电路组成及工作原理本文数字时钟设计原理主要利用AT89S52单片机,由单片机的P0口控制数码管的位显示,P2口控制数码管的段显示,P1口与按键相接用于时间的校正。在设计中引入220V交流电经过整流、滤波后产生+5V电压,用于给单片机及显示电路提供工作电压。整...
7种常见的51单片机时钟电路图
在MCS-51单片机内部,有一个高增益的反相放大器,其输入端为XTAL1,输出端为XTAL2。此放大器构成了单片机的时钟方式和振荡电路。单片机的时钟连接方式有两种,即内部时钟方式与外部时钟方式。在内部时钟方式中,需在XTAL1和XTAL2两端跨接石英晶体振荡器和微调电容。C1和C2的容量通常为30pF,振荡频率范围...
基于51单片机,lcd1602怎么显示倒计时秒表? - 知乎
基于单片机的数字秒表设计,核心使用51系列的STC89C52单片机,结合LCD12864显示模块、语音播报模块及输入模块,实现功能如下:系统中控部分由STC89C52单片机负责,它接收输入信息并处理,控制输出。输入模块包括三个部分:DS1302时钟模块,用于获取时间、实现计时与倒计时;四个独立按键,用于设置时间、倒计时时间、...
采用AT89C51单片机设计一只电子秒表,倒计时(60~1每间隔1秒倒数)?
硬件电路 有2位数码管可以显示秒表的时间 0~10秒 有3个按键 K1为开始计时 K2为停止计时 K3为清零 软件设计:K1按下则启动定时器定时 每到1秒 显示器缓冲单元内容加1 K2按下则停止定时器定时 K3按下则将显示器缓冲单元内容清零。
单片机 按键秒表
LJMP GN2;数码管显示秒表时间的程序 GN1: ;先初始化 S1:MOV A,#0 MOV TEMP,A GOON1: MOV R2,#2 JS1: MOV R3,#250 TIME1: MOV A,TEMP ;将TEMP中的十六进制数转换成10进制 MOV B,#10 ;10进制\/10=10进制 DIV AB MOV B_BIT,A ;十位在A MOV A_BIT,B ;个位在B ...
利用51单片机,4个数码管设计一个计时器,要求在数码管上显示的数据从0开...
共阳数码管中断程序:include<reg52.h> define uint unsigned int define uchar unsigned char uchar code table[]= { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};uint num,a;uchar bai,shi,ge;void init();void delay(uint);void ...
秒表原理图怎么设计啊?
这个东西最省的方法就是买个很便宜的单片机,八个脚的就够了。两片74HC595驱动数码管。。单片机内部有定时器。。程序一写,就完事了。
用单片机设计一个时钟,可显示时和分,可以调时间,也要有闹钟功能,要有设...
for(z=0;z<100;z++){ tmp=0x01;P2=tab[h\/10];小时显示 disp();P2=tab[h%10];disp();P2=tab[m\/10];分钟显示 disp();P2=tab[m%10];disp();P2=tab[s\/10];秒显示 disp();P2=tab[s%10];disp();} s++;while(s==60)秒进一位,到60清0 { m++;s=00;} while(m==60...