资源简介
电风扇模拟控制系统设计 包括要求和代码。仅供参考!!!~~
代码片段和文件信息
/********************************************************************
* 文件名 : monidianfengshan.c
* 描述 : 该文件实现对电风扇的功能的模拟,可定时,摇头,三种风种选择
* 创建人 : 侯伟玉,2010年5月6日
***********************************************************************/
#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit pwm=P3^0; //脉宽调制输出
sbit in=P3^6; //H桥的输入1
sbit out=P3^7; //H桥的输入2
uchar code tab[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f}; //数码管的显示代码
uchar value=0; //用于装按键返回值
uchar tempnumflag=2; //flag为正反转标志位
uchar buff[2]={00}; //装定时的秒的十位和各位
uchar yao=0;
bit fan;
void delay(uchar y);
void delay1(uchar x);
uchar scan();
void dingshi(uchar zhi);
void display();
/********************************************************************
* 名称 : delay()
* 功能 : 长延时
* 输入 : y
* 输出 : 无
***********************************************************************/
void delay(uchar y)//长延时,用于消抖
{
uchar ij;
for(i=0;i for(j=0;j<110;j++);
}
/********************************************************************
* 名称 : delay1()
* 功能 : 短暂延时,用于动态扫描数码管
* 输入 : x
* 输出 : 无
***********************************************************************/
void delay1(uchar x)
{
uchar ij;
for(i=0;i for(j=0;j<110;j++);
}
/********************************************************************
* 名称 : scan()
* 功能 : 计算按键值
* 输入 : 无
* 输出 : i+4*j
***********************************************************************/
uchar scan() //键盘扫描返回值计算
{
uchar ij;
uchar tem;
uchar code buf[]={0xef0xdf0xbf0x7f}; //列扫描码
for(j=0;j<4;j++) //先给每一列赋值
{
P1=buf[j];
_nop_();
_nop_();
_nop_();
tem=0x01;
for(i=0;i<4;i++) //再从每一行读取值,看看哪一行按键被按下
{
if(!(P1&tem)) //发现被按下的行
{
return(i+4*j); //返回按键值
}
tem=tem<<1;
}
}
}
/********************************************************************
* 名称 : display()
* 功能 : 数码管显示,显示风种,定时时间
* 输入 : 无
* 输出 : 无
***********************************************************************/
void display()
{
static uchar gao;
if(value==1|value==2|value==3) //先设置定时,再选取吹哪种风
{
gao=value;
}
P2=0;
P0=tab[gao];
delay1(10);
P2=1;
P0=tab[0];
delay1(10);
P2=2;
P0=tab[buff[0]]; //显示秒的十位
delay1(10);
P2=3;
P0=tab[buff[1]]; //显示秒的个位
delay1(10);
}
/********************************************************************
* 名称 : main()
* 功能 : 主函数
* 输入 : 无
* 输出 : 无
***********************************************************************/
void main()
{
uchar guan;
TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
IT0=0;
IT1=1;
TR0=1;
ET0=1;
EX0=1;
EX1=1;
EA=1;
pwm=0; //先关掉直流电机
while(1)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 72704 2010-05-02 21:24 模拟电风扇\2009天华杯单片机设计样题.doc
文件 136543 2010-05-06 23:10 模拟电风扇\Last Loaded 模拟风扇.DBK
文件 9307 2010-05-09 13:18 模拟电风扇\monidianfengshan
文件 5879 2010-05-09 13:58 模拟电风扇\monidianfengshan.c
文件 2231 2010-05-09 13:18 模拟电风扇\monidianfengshan.hex
文件 80 2010-05-09 13:18 模拟电风扇\monidianfengshan.lnp
文件 12202 2010-05-09 13:18 模拟电风扇\monidianfengshan.LST
文件 14747 2010-05-09 13:18 模拟电风扇\monidianfengshan.M51
文件 10030 2010-05-09 13:18 模拟电风扇\monidianfengshan.OBJ
....... 1063 2010-05-09 19:39 模拟电风扇\monidianfengshan.opt.bak
文件 160 2010-09-19 20:51 模拟电风扇\monidianfengshan.plg
....... 2209 2010-05-04 20:41 模拟电风扇\monidianfengshan.Uv2.bak
....... 56186 2010-09-19 20:51 模拟电风扇\monidianfengshan.uvopt
....... 13459 2010-09-19 20:51 模拟电风扇\monidianfengshan.uvproj
文件 1066 2010-05-09 13:58 模拟电风扇\monidianfengshan_Opt.Bak
文件 2205 2010-05-04 12:54 模拟电风扇\monidianfengshan_Uv2.Bak
文件 6376 2005-03-22 15:22 模拟电风扇\STARTUP.A51
文件 14055 2010-05-07 23:13 模拟电风扇\STARTUP.LST
文件 749 2010-05-07 23:13 模拟电风扇\STARTUP.OBJ
..AD... 0 2010-09-19 20:51 模拟电风扇
----------- --------- ---------- ----- ----
361251 20
- 上一篇:16位 8086汇编源码
- 下一篇:封装一个类搞定90%安卓客户端与服务器端交互
相关资源
- 基于AT89C51单片机的电子计时牌设计
- 用51单片机设计的GPS定位系统论文
- 51产生PWM波控制舵机用于智能小车控制
- 基于89c51的等精度频率计lcd1602显示
- 基于C51智能小车设计
- 基于51单片机的CC1100CC1101发送和接收的
- 基于C51单片机的简单控制灯光的程序
- ora-12514:TNS:监听程序当前无法识别连接
- C51的数字时钟.rar
- 512.pit三星刷机文件
- 暴包括51,stm32,LINUXs三种和美的空调
- 51单片机 经典4位数码管显示,带闪烁
- 2.4G无线通信模块(接收端代码+发射端
- 基于单片机的智能交通灯控制系统设
- 基于单片机的液位控制系统设计
- 51单片机控制BMP180气压传感器 并通过
- 单片机控制冒泡排序 数码管显示
- max197的程序与单片机通讯含protel原理
- DS18B20温度采集+串口发送+模块化编程
- 基于AT89C51数字时钟设计过程与仿真
- 基于单片机设计的脉搏测量仪(毕设
- 用汇编语言写的51单片机电子闹钟
- 基于单片机的9999秒倒计时器的设计
- 基于单片机的简易数字电压表的设计
- LED点阵 4位16*16LED点阵广告牌 Proteus单
- DMP官方手册中文
- 基于AT89S52单片机LCD数字测速仪的设计
- 基于51单片机带时间及声光提示单片机
- 8251串行通信实验
- 51单片机课程设计数字温度计报告
评论
共有 条评论