资源简介
基于51单片机的电器定时开关C程序,程序通过外部中断和计时器,实现了电器定时开关的功能,程序很简单,可以用于初学者学习51单片机
代码片段和文件信息
#include“reg51.h“
#define uint unsigned int
#define uchar unsigned char
uchar flagshigettmm;
unsigned char num;
void delay(uint z);
void init();
void keyscan();
void display(uchar num);
unsigned char code table[]={
0x3f0x060x5b0x4f
0x660x6d0x7d0x07
0x7f0x6f0x770x7c
0x390x5e0x790x71};
sbit gew=P2^1;
sbit shiw=P2^0;
sbit key1=P3^2;
sbit key2=P3^3;
sbit key3=P3^4;
sbit key4=P3^5;
void main()
{
// num=55;
init();
while(1)
{
keyscan();
display(num);
}
}
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
num=55;
// shi=0;
// ge=0;
// shiw=0;
// gew=0;
}
void delay(uint z)
{
uint xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void keyscan()
{
// num=55;
if(key1==0)
{
delay(10);
if(key1==0)//确认key1是否按下
{
shi++;
if(shi==10)
shi=0;
while(!key1);
num=shi*10+ge;
}
}
if(key2==0)
{
delay(10);
if(key2==0)//确认key2是否按下
{
shi--;
if(shi==0)
shi=9;
while(!key2);
num=shi*10+ge;
}
}
if(key3==0)
{
delay(10);
if(key3==0)//确认key3是否按下
{
ge++;
if(ge==10)
{
while(!key3);
ge=0;
num=(shi+1)*10;
}
else
{
while(!key3);
num=shi*10+ge;
}
TR0=1;
}
}
if(key4==0)
{
delay(10);
if(key4==0)//确认key4是否按下
{
ge--;
if(ge==0)
{
while(!key4);
ge=9;
num=(shi-1)*10+ge;
}
else
{
while(!key4);
num=(shi)*10+ge;
}
}
}
}
void display(uchar num)
{
// num=55;
shi=num/10;
ge=num%10;
shiw=0;
gew=1;//十位开
P0=table[shi];
delay(5);//显示十位
shiw=1;
gew=0;//个位开
// dula=1;
P0=table[ge];
//dula=0;
delay(5);//显示个位
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6336 2010-11-03 19:52 电器定时开关tes\01
文件 1049 2010-11-03 19:52 电器定时开关tes\01.hex
文件 55 2010-11-03 19:52 电器定时开关tes\01.lnp
文件 10387 2010-11-03 19:52 电器定时开关tes\01.M51
文件 1262 2010-11-03 22:13 电器定时开关tes\01.Opt
文件 138 2010-11-04 23:35 电器定时开关tes\01.plg
文件 2018 2010-11-03 22:13 电器定时开关tes\01.Uv2
文件 0 2010-11-03 18:41 电器定时开关tes\01_Uv2.Bak
文件 5115 2002-04-16 14:32 电器定时开关tes\STARTUP.A51
文件 11665 2010-11-03 19:52 电器定时开关tes\STARTUP.LST
文件 749 2010-11-03 19:52 电器定时开关tes\STARTUP.OBJ
文件 5730 2010-11-01 18:54 电器定时开关tes\tes
文件 1773 2010-11-01 18:54 电器定时开关tes\tes.c
文件 905 2010-11-01 18:54 电器定时开关tes\tes.hex
文件 54 2010-11-01 18:54 电器定时开关tes\tes.lnp
文件 5785 2010-11-01 18:54 电器定时开关tes\tes.LST
文件 9225 2010-11-01 18:54 电器定时开关tes\tes.M51
文件 5913 2010-11-01 18:54 电器定时开关tes\tes.OBJ
文件 9804 2010-11-01 18:54 电器定时开关tes\tes.plg
文件 0 2010-11-01 17:58 电器定时开关tes\tes.uv2
文件 2128 2011-06-21 14:36 电器定时开关tes\Text2.c
文件 6986 2010-11-03 19:52 电器定时开关tes\Text2.LST
文件 6687 2010-11-03 19:52 电器定时开关tes\Text2.OBJ
目录 0 2011-06-21 14:37 电器定时开关tes
----------- --------- ---------- ----- ----
93764 24
相关资源
- 数控直流电流源打包的
- 51单片机做的音乐播放仿真+工程
- 51单片机控制乒乓球游戏
- 51单片机多个超声波测距
- 80c51单片机4位数码管计算器设计
- 步进电机驱动代码TB6600+57BYG250B+51单片
- 电磁循迹 (2).zip
- GPS导航系统仿真源代码+仿真文件+虚拟
- 单项选择题标准化考试系统设计 代码
- 基于51单片机bmp180测气压温度实测可用
- 基于单片机的智能盆栽设计
- 51单片机-双机串行通信注释版
- 51单片机红外通信
- 基于51单片机的红外循迹小车
- 基于51单片机的自动化灌溉系统程序
- 基于51单片机的RC522rfid门禁系统
- 走迷宫问题代码
- 四个开关流水灯
- 单片机内部资源的C51编程.ppt
- 51单片机驱动步进电机(汇编语言)
- 51单片机秒脉冲程序
- 简单的火车票订票系统完整代码
- 51单片机HMC5883和qmc5883来做电子指南针
- Proteus模拟基于51单片机的波形发生器
- 51单片机电子琴设计C程序
- 基于51单片机的电子密码锁keil源码电
- 51单片机测量环境温度
- 51单片机 按键控制流水灯左右两边中
- 基于51单片机的出租车计费系统设计
- 51单片机频率计包括占空比1602显示
评论
共有 条评论