求用STC89C52单片机的电梯控制程序

2024-12-28 02:36:07
推荐回答(5个)
回答1:

基于STC89C52单片机电梯设计.doc

文档名称:基于STC89C52单片机电梯设计.doc

格式:doc  大小:0.01MB  总页数:7

 展开↓





更多功能

 免费预览本文档(全文)

下载敬告:

本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。如果您已付费下载过本站文档,您可以点这里二次下载 收起↑

 文档介绍:

基于STC89C52单片机电梯设计   摘 要:随着人们生活水平的不断提高和现代科技的猛速发展,高层建筑已成为一种用于居住、办公的主流建筑设计。为了更好地提高人们生活和工作的效率,电梯成为生活中不可或缺的垂直代步工具。为了让电梯在运行过程中实时、有效地实现方向优先、距离优先选择,本文提出了基于STC89C52单片机的电梯设计。

  本文以STC89C52单片机作为背景机通过驱动外围电路实现电梯垂直运行,该系统主要由硬件和?件两大部分组成。其中,硬件部分主要由主控芯片、显示模块、按键模块、铃声提示模块4大部分组成。主控模块由STC89C52作为背景机完成驱动外围电路进行信息处理和控制的功能,显示模块负责实时的显示电梯的升降状态以及电梯所到楼层数,按键电路主要负责完成电梯的外呼内选将楼层到达信号传输给单片机,铃声提示模块一方面报警提示乘客到达了所需的楼层,另一方面完成出现紧急停止时的报警提示。

回答2:

#include // 头文件
#define uint unsigned int //宏定义 把uint 等价为 unsigned int
#define uchar unsigned char
sbit CS = P2^0; //定义三个特殊功能位, 我感觉应该是驱动一个东西吧,CS
sbit CLK = P2^1; 是片选 高选中或者低选中, CLK是通信的时钟线,
sbit SDO = P2^2; SDO应该是驱动芯片的数据输出口, 不过应该有输入口的??
怎么没看到程序里有????
void DELAY(void) //简单的延时子程序
{
uint x,y;
for(y = 5;y > 0;y--)
for(x = 110;x > 0;x--);
}
void main(void)
{
uint i = 0;
uint j = 0;
uint k = 0; 定义三个变量
TMOD = 0X20;
TH1 = 0XF3; 定时器工作方式 和初值
TL1 = 0XF3;
TR1 = 1; 打开定时器
REN = 1; REN SM0 SM1 是串口这里的设置 具体的你自己看文档 我就不
SM0 = 0; 细说了
SM1 = 1;
while(1)
{
CLK = 0;
CS = 1;
SDO = 0;
DELAY();
for(i=0;i<16;i++) 循环16次 应该是要传输2个字节的数据吧吧
{
CS = 0; 这个片选貌似应该放在循环外面
CLK = 1; 时钟线的控制
DELAY();
k = SDO; 把驱动芯片输出的数据赋值给K
j = j + k;
j = j << 1; 刚才的K 只是一个位, 这里两句是要把它整理成uint型的即16位的,
DELAY();
CLK = 0; 进行延时 和CLK时钟控制,即模拟驱动芯片的驱动时序
DELAY();
DELAY();
}
CS = 1; 选中或者取消片选 我感觉应该是取消
SBUF = (j >> 8) & 0XFF; 把刚才从驱动芯片里读出的uint 16位数据 取高八位 送入
while(!TI); 串口的SBUF 寄存器 貌似是要传给电脑 或者上位机软件
TI = 0; 等待传输完成 清 标志位
SBUF = j & 0XFF; 把刚才从驱动芯片里读出的uint 16

回答3:

/*************定时器0中断服务程序***************/
void time0_int() interrupt 1
{        
        static uchar value;
        TH0 = 0x3c;
        TL0 = 0xb0;     // 50ms
        value ++;
}

回答4:

我、可、以、帮、忙。

回答5:

STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K可反复擦写Flash ROM。在单芯片上,拥有灵巧的8位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。单片机芯片AT89C52主要功能如下表所示:

单片机芯片AT89C52主要功能

兼容MCS51指令系统8K可反复擦写Flash ROM

32个双向I/O口256x8bit内部RAM