单片机AT89C51芯片完成简易秒表的设计 两个数码管从00~99 我有电路原理图 是用PROTEL画的 求C语言源程序
#include "reg51.h"
#define uchar unsigned char
uchar display_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar display_data[8]={0,0,0,0,0,0,0,0};
void delay(void)
{
uchar i;
for(i=250;i>0;i--);
}
void display()
{
uchar i,k;
k=0x80;
for(i=0;i<8;i++)
{
P2=0;
P0=display_code[display_data[i]];
P0=~P0;
P2=k;
k=k>>1;
delay();
}
P2=0;
}
void calc()
{
display_data[7]++;
if(display_data[7]>9)
{
display_data[7]=0;
display_data[6]++;
if(display_data[6]>9)
{
display_data[6]=0;
}
}
}
void main(void)
{
uchar i;
while(1)
{
for(i=0;i<250;i++)
{
display();
}
calc();
}
}
想问一下,你是想用什么方式显示...
动态,静态?
还有就是,秒表是不是还要按键啊...
at89c51的管脚排列是怎样的?
1、XTAL1、XTAL2引脚。这类引脚属于外接时钟引脚。前者为片内震荡电路的输入,后者为片内震荡电路的输出。2、RST引脚。这类引脚属于复位引脚,连续输入两个机器周期以上高电平就可以触发机制,完成单片机的复位初始化的工作,单片机就可以从头开始执行程序了。3、PSEN引脚。这类引脚的全称是程序存储器允许...
...AT89C51单片机内共有多少个SFR? 分别是哪些 对每个位进行说明作用...
1. AT89C51单片机内共有21个SFR(特殊功能寄存器)。2. ACC累加器:用于辅助累加器做某些运算的寄存器。3. PSW程序状态字:其中最高位是进\/借位标志C;PSW.6是辅助进位标志AC;PSW.4和PSW.3是寄存器组选择位RS1和RS0;PSW.2是溢出标志OV;PSW.0是ACC的偶校验位P。4. IP中断优先级控制寄存器:...
stc89c51和51的区别是什么?
区别:1、AT89C51是老式的255位单片机。STC89C51在AT89C51的基础之上上加入了AD数模转换,集成程度更高。2、STC89C51是宏晶公司生产,AT89C51.是Atmel公司生产。3、STC89C51可以在线编程也就是有ISP功能,AT89C51必须通过编程器烧录。4、STC89C51具有6T模式,速度要快些,AT89C51是12T模式。5、STC89C51集成了512...
at89c51什么意思
AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术...
STC89C51与AT89C51的区别?
1、STC89C51在AT89C51的基础上加入了AD数模转换,集成程度更高;AT89C51是老式的255位单片机 2、STC89C51是宏晶公司生产;AT89C51是Atmel公司生产。3、STC89C51可以在线编程,即有ISP功能;而AT89C51必须通过编程器编程。4、STC89C51具有6T模式,速度更快;AT89C51是12T模式,速度较慢。5、STC89C51集成了512或...
AT89C51与AT89S51的区别
它们之间主要区别在于以下几点:1.引脚功能 引脚几乎相同,改变是,在AT89S51 P1.5中,P1.6,P1.7具有第二功能,即这三个引脚的第二功能构成一个串行ISP编程接口。2.编程功能 AT89C51仅支持并行编程,而AT89S51不仅支持并行编程,还支持ISP在线编程。在编程电压方面,AT89C51除5V外还需要12V Vpp才能...
AT89C51单片机的结构原理与引脚功能
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是...
单片机AT89c51的特点
AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,256字节片内数据存储器(00H -7FH为片内RAM,80H-FFH为特殊功能寄存器SFR),32 个I\/O 口线,两个16位定时\/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选...
AT89C51AT89S51有什么区别
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造...
当AT89C51单片机外接晶振为6MHz时,其震荡周期、状态时钟周期、机器周期...
一个状态周期为,2\/6M秒。机器周期:一个机器周期包含6个状态周期,也就是12个时钟周期,一个状态周期为12\/6M秒。指令周期:它是指CPU完成一条操作的所需的全部时间。每条指令执行时间都是有一个或几个机器周期组成。MCS-51系统中,有单周期指令、双周期指令和四周期指令。
出味千咳: #include unsigned char data dis_digit; unsigned char key_s, key_v; unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0, // 0, 1, 2, 3 0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};// 4, 5, 6, 7, 8, 9, off unsigned char dis_buf[8]; // 显示缓冲区 unsigned ...
沧县17255812463: AT89C51单片机设计一个简易秒表? - ?
出味千咳: 定时器10ms中断 检测按键且10ms位加一 若10ms=10,100ms位加一 若10ms=10,1000ms位加一 以此内推 显示最好用LCD的 用数码管的也行 有疑问mail:290765583@163.com
沧县17255812463: 在单片机AT89C51芯片中,设计一个一秒的延时程序,有多少种方法,具体如何? - ?
出味千咳: 比较常用的有两种一种比较简单的就是粗略的软件延时;如:void delay_1s(void) { unsigned char i,j; for(i=0;i<128;i++) for(j=0;j<254;j++); }这种通过调整i和j的最终值来确定延时时间,没有办法精确计算的.另一种,做比较精确的延时,...
沧县17255812463: 用at89c51单片机做一个秒表计时器 - ?
出味千咳: 参考一下:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/295f9639bccb7c2f96ddd86f.html
沧县17255812463: 用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 ...
沧县17255812463: 电子钟的设计(带按键调整) 任务要求:利用AT89C51单片机设计简易电子钟(六位),通过6位共阴 - ?
出味千咳: #include#define uchar unsigned char...要是PROTEUS的话差不多是这样,要是不想麻烦搞个74595的话P1就直接连(有没有都一样有的话比较整洁,没有的话程序上省点脑筋)主按键就用INT0,我没用P0口是因为懒得加上拉电阻,高低电平暂时先设成低的,思路就是P2口片选,当INT0触发时,你可以用while循环兜住不让出去,第一次是片选前两位“时”,第二次分第三次秒,如果第四次按下P32,也就是进入中断后第三次按下按键,结束中断,调到main.思路应该是这样当然肯定漏洞很多,先吃个饭再看看.
沧县17255812463: AT89C51单片机延时1秒程序怎么写??? - ?
出味千咳: void DELAY(int z)//延时zms {int x,y;for(x = z;x > 0;x--)for(y = 110;y > 0;y--); }DELAY(1000); 就可以延时1S 但是有很小的误差 精确的只能用定时器了
沧县17255812463: 用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一.另设计一个“开始”按键和一 - ?
出味千咳: 因为分数低,只好给你说我的思路 因为是秒表,当然用定时器,我常用的是定时器0,工作方式1 TMOD=0X01;给一个溢满值3CB020次为一秒 if(counter> 19) {second++;conunter= 0;} 而后,动态显示,懂吧,用调用延迟 然后快加,每10ms快速加1,关了定时器0,换定时器1?至于暂停,也是一个中断吧,保持现状,就是变量值不改变,而后当然调用显示函数.再按下按键跳出循环.不知道行不行,参考而已
沧县17255812463: 基于单片机89C51的计时器或秒表 - ?
出味千咳: 到我的空间,看“用AT89C51单片机设计一个秒表:00.0~99.9”,即可. 其中,也有“00~99秒”的内容,在后面的链接上.
沧县17255812463: AT89C51单片机 秒表 汇编 程序越简单越好,要求有protues图 - ?
出味千咳: KEYVAL EQU 30H DAT EQU 33H SCANLED EQU 39H CLK EQU 77H SEC EQU 78H SEC1 EQU 79H SEC2 EQU 7AH DOT BIT 00H ORG 0000H LJMP MAIN ORG 0003H LJMP EXTINT0 ORG 000BH LJMP T0ISR ;50ms定时 ORG 001BH ...