77范文网 - 专业文章范例文档资料分享平台

家庭安防、火灾自动报警系统毕业设计论文 - 图文(6)

来源:网络收集 时间:2019-04-10 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

第四章 软件部分设计 4.2.2程序流程图

4.2.31602初始化程序

图4—4 1602显示程序流程图

void lcd_1602_init(void) //初始化1602液晶

{ lcd1_602_wr_cmd(0x06); //输入模式为,字符不动,光标右移(设置输入模式)

Lcd_1602_wr_cmd(0x38); //设定两列(功能设置)

Lcd_1602_wr_cmd(0x0c); //开启显示屏,不显示光标,光标所在(显示开/关控制)

Lcd_1602_wr_cmd(0x01); //清屏的指令应该在液晶初始化最后面一行(清显}

20

示)

第四章 软件部分设计 4.3步进电机工作原理及程序设计

4.3.1步进电机工作原理

步进电机由脉冲控制,给它发出一定的脉冲顺序就可以使其转动,改变脉冲顺序,改变转动方向,步进电机正反转驱动时序脉冲如表4-1所示:

表4—1 步进电机脉冲时序表

IN1 1 1 0 0 0 0 0 1 IN2 0 1 1 1 0 0 0 0 IN3 0 0 0 1 1 1 0 0 IN4 0 0 0 0 0 1 1 1

4.3.2步进电机驱动子程序

char count=0,i=0;

unsigned char code1[4]={0x01,0x02,0x04,0x08}; unsigned char code2[4]={0x03,0x06,0x0c,0x09};

unsigned char code3[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; void main() {

MCU_init();

led_flashing_cnt = 1000; timer0_init(); _emi = 1; while(1); }

void timer0_interrupt(void) {

_emi = 0;

21

第四章 软件部分设计 _t0af = 0; if(count==10) {

count=0; PA=code1[i]; if(++i>3)i=0;

} _emi = 1; }

4.4 PWM波形发生子程序的设计

void main(void) {

_acerl = 0; //屏蔽pa7-pa0的A/D输入功能

_cp0c = 0; //屏蔽pa0、pa2、pa3三个I/O口的比较器0输入和出功能 _cp1c = 0; //屏蔽pa5、pc2、pc3三个I/O口的比较器1输入和出功能 _prm2 = 0x02; //设置TP00PS:0 TP0_0 on PA0(屏蔽PA0的I/O功能) _tmpc0 = 0x03; //使能TP0_0(TM0,即PWM输出功能) _tmpc1 = 0; //屏蔽其余的TPm_n功能 _tm0c0 = 0x04; //选择512个TM0时钟周期 _tm0c1 = 0xac; //设置CCRA初始值为80H(128)

_tm0al = 0x80; //简易型TM(TM0 CCRA低字节寄存器)先写低字节

_tm0ah = 0x00; //简易型TM(TM0 CCRA高字节寄存器)先读高字节,再读低字节 _t0on = 1; //启动定时器0(TM0C0寄存器的bit3位)

_t0ae = 1; //定时器0比较器A匹配中断控制位(MFI0寄存器bit1位)

_mf0e = 1; //允许多功能中断0,多功能中断包括TM中断(INTC1寄存器bit1位) _emi = 1; //开总中断(INTC0寄存器bit0位)

}

4.5 AD转换软件设计思路

因HT66FU50单片机内部含有AD转换模块,直接从AD输入引脚输入模拟量数据即可,通过编写AD转换程序即可实现AD转换功能。AD转换时序图如下所示:

22

第四章 软件部分设计

图4—5 AD转换时序图

A/D 转换步骤

1.设置单片机内部寄存器ADCR1中的ADCK2—ADCK0位,选择所需A/D转换的时钟[17]。 2.给ADCR0寄存器中的ADOFF位付值为0,使能A/D转换功能[17]。

3.设置ADCR1寄存器 和ADCR0 寄存器中的ACS4—ACS0 位,即可选择连接至内部A/D 转换器的通道[17]。

4.设置ACERH寄存器 和ACERL 寄存器中的ACE11—ACE0 位,设置哪些引脚规划为A/D 转换输入引脚[17]。

5.设置总中断控制位EMI,使其 置位为“1”, 以及A/D 转换器中断位ADE置位为“1”

[17]

6.通过设定ADCR0 寄存器中的START 位从“0”到“1”再回到“0”,开始模数转换

的过程。该位需初始化为“0”[17]。

7.循环查询ADCR0 寄存器中的EOCB位,检查模数转换过程是否完毕。当此位成为逻辑低电平时,表示转换过程已经结束。转换完成后,可读取A/D 数据寄存器ADRL 和ADRH 获得转换后的数值。另一种方法是,若中断使能且堆栈未满,则程序等待A/D 中断发生。AD转换程序详见附录1。

23

第四章 软件部分设计 4.6按键检测及声光报警程序设计

void main() { MCU_init(); LED1 = OFF; LED2 = OFF; LED3 = OFF;

LED4 = ON;

while(1)

开始 扫描键值 N 是否有键按下 Y Y 延时10ms消抖 N 是否有键按下 Y 提取键值 调用键盘 处理子程序 结束 图4—6 按键检测程序流程图 24

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库家庭安防、火灾自动报警系统毕业设计论文 - 图文(6)在线全文阅读。

家庭安防、火灾自动报警系统毕业设计论文 - 图文(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/584168.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: