资源简介
基于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
相关资源
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 51单片机PWM程序,占空比、周期可调整
- 51单片机多功能自行车测速仪
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 51单片机基于protues的几个仿真实例
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- MP3文件ID3v2ID3v2APEv2标签读取
- 课程作业:模拟仓库管理系统
- 一个简单实用个人日记管理系统
- 带时间温度显示的室内灯光控制系统
- C51单片机汇编指令查询、学习工具集
- 基于8051单片机的红外接收程序
- 成绩管理系统(数据结构)
- FIR低通滤波器 ccs运行环境
- 51单片机频率计(很简单)
- 基于51单片机的智能温控器
- 基于51单片机的16*16点阵动态显示
- 基于51单片机的模数转换与数模转换
- 51单片机中使用ucos ii的优缺点转
- 51单片机中使用ucos ii的优缺点
- 8051单片机教程第二十七课:单片机几
- 8051单片机教程第二十六课:矩阵式键
- 适用于STC单片机和51单片机的SX1262驱动
评论
共有 条评论