资源简介
基于at89c51电子钟,keil和proteus仿真
代码片段和文件信息
#include
#define uchar unsigned char
#define uint unsigned int
#define delay_time 3
uchar kdat[]={00000000};
uint tcounttu;
uchar dat1[]={00000021};
uchar dat2[]={00000000};
uchar alarms[]={00000000};
uchar dis_bit[]={0x800x400x200x100x080x040x020x01};
unsigned char code SEG7[11]={0xC0/*0*/
0xF9/*1*/
0xA4/*2*/
0xB0/*3*/
0x99/*4*/
0x92/*5*/
0x82/*6*/
0xF8/*7*/
0x80/*8*/
0x90/*9*/
0xBF/*-*/
};
sbit miaobiao1=P1^0;
sbit tminute=P1^1;
sbit thour=P1^2;
sbit miaobiao2=P1^3;
sbit alarm=P1^4;
sbit P0_0=P0^0;
sbit P1_5=P1^5;
sbit P1_6=P1^6;
sbit P1_7=P1^7;
uchar ms=0;
uchar flag=0;
uchar sec=0;
uchar minit=0;
struct time{uchar second;uchar minute;uchar hour;}time1;
uchar ni;
void delay(n)
{
while(n--)
{
for(i=120;i>0;i--);
}
}
void modify(void)
{
EA=0;
if(thour==0)
{
if(flag==0)
{
dat1[6]++;delay(280);
if(dat1[6]>9)
{ dat1[6]=0;dat1[7]++;}
else if((dat1[7]>1)&&(dat1[6]>3))
{dat1[7]=0; dat1[6]=0; }
}
if(flag==1)
{
alarms[6]++;delay(200);
if(alarms[6]>9)
{
alarms[6]=0;alarms[7]++;
if(alarms[7]>2)
{
alarms[7]=0;
}
}
dat[6]=alarms[6];
dat[7]=alarms[7];
}
}
if(tminute==0)
{
if(flag==0)
{
dat1[3]++;delay(280);
if(dat[3]>=9)
{
dat1[4]++;dat1[3]=0;
if(dat1[4]>5)
{
dat1[4]=0;
}
}
}
if(flag==1)
{
alarms[3]++; delay(200);
if(alarms[3]>9)
{
alarms[4]++;alarms[3]=0;
if(alarms[4]>5)
{
alarms[4]=0;
}
}
dat[3]=alarms[3];
dat[4]=alarms[4];
}
}
if(miaobiao1==0)
{
TR0=0;ET0=0;TR1=1;ET1=1;
}
if(miaobiao2==0)
{
TR0=1;ET0=1;TR1=0;ET1=0;
dat2[0]=0;
dat2[1]=0;
dat2[3]=0;
dat2[4]=0;
dat2[6]=0;
dat2[7]=0;
ms=0;
sec=0;
minit=0;
}
if(P1_5==0)
{
TR0=0;ET0=0;TR1=0;ET1=0;
}
if(alarm==0)
{
TR0=0;ET0=0;TR1=0;ET1=0;flag=1;
dat[0]=0;
dat[1]=0;
dat[2]=10;
dat[3]=0;
dat[4]=0;
dat[5]=10;
dat[6]=0;
dat[7]=0;
}
EA=1;
}
void init(void)
{
TMOD = 0x11;
TH0 = 0xDB;
TL0 =0xFF;
TH1=0xDB;
TL1=0xFF;
ET0 = 1; //10ms
ET1=1;
// TR1=1;
TR0=1;
tcount=0;
ms=0;
sec=0;
minit=0;
EA = 1;
}
void test(void)
{
for(k=0;k<8;k++)
{
P3=dis_bit[k];P2=SEG7[dat[k]]; delay(1);P3=0X00;
}
}
void main()
{
init();
delay(10);
while(1)
{
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 285184 2009-07-18 10:11 单片机电子时钟版版.doc
文件 122821 2009-07-17 17:46 keil和professional仿真\Last Loaded 单片机电子时钟.DBK
文件 122821 2009-07-17 17:54 keil和professional仿真\单片机电子时钟.DSN
文件 768 2009-06-26 10:02 keil和professional仿真\单片机电子时钟.PWI
文件 9990 2009-07-18 09:42 keil和professional仿真\电子时钟
文件 2725 2009-07-18 09:42 keil和professional仿真\电子时钟.hex
文件 33 2009-07-18 09:42 keil和professional仿真\电子时钟.lnp
文件 10464 2009-07-18 09:42 keil和professional仿真\电子时钟.LST
文件 13451 2009-07-18 09:42 keil和professional仿真\电子时钟.M51
文件 12089 2009-07-18 09:42 keil和professional仿真\电子时钟.OBJ
文件 995 2009-07-18 09:42 keil和professional仿真\电子时钟.Opt
文件 345 2009-07-18 09:42 keil和professional仿真\电子时钟.plg
文件 2153 2009-06-19 18:21 keil和professional仿真\电子时钟.Uv2
文件 995 2009-06-25 15:44 keil和professional仿真\电子时钟_Opt.Bak
文件 0 2009-06-19 18:12 keil和professional仿真\电子时钟_Uv2.Bak
文件 4499 2009-06-19 18:13 keil和professional仿真\电子时钟程序.c
文件 186368 2009-07-15 09:28 keil和professional仿真\电子时钟原理图.SCHDOC
目录 0 2009-06-27 23:05 keil和professional仿真
----------- --------- ---------- ----- ----
775701 18
相关资源
- 基于STC89C52单片机的简易计算器不能实
- 基于单片机的数字示波器设计
- 基于51单片机 的智能交通灯设计 带
- stc15两轮自平衡小车
- 简易单片机4人抢答器
- 51单片机读写SD卡程序,使用FAT文件系
- Labview与单片机串口通讯
- 我做的温度控制器完整项目文件
- 51单片机与触摸屏通信
- stm32单片机lcd12864串行程序
- AT89c51单片机流水灯
- 基于单片机的液位测量
- 51单片机中用PWM控制LED亮度调节
- DS18B20 51单片机,包括电路
- 28BYJ-48步进电机(51单片机)
- 基于STC89C51的CAN总线点对点通信模块设
- 德飞莱STM32开发板尼莫M3S V2.3电路图
- Protues下的8255仿真
- 基于51电子钟proteus仿真
- 基于USB接口的51单片机与PC机通信的方
- STC-ISP.rar
- 基于AT89C51单片机的篮球比赛记分牌设
- 用有限状态机思想实现矩阵按键扫描
- 单总线两个DS18B20温度传感器程序及其
- 单片机外扩ROM外扩27C64的Proteus仿真
- proteus仿真max7219的使用方法
- 单片机的外文文献与翻译.2018_03_16
- 单片机PWM调速程序
- 基于AVR单片机的汽车空调控制系统资
- N76E003串口0、串口1中断程序模板
评论
共有 条评论