欢迎来到天天文库
浏览记录
ID:38713687
大小:199.50 KB
页数:15页
时间:2019-06-18
《家庭安防自动报警系统单片机程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include"ht66fu50_uart.h"#include"ht66fu50_main.h"#definestep1{LED1=0;LED2=1;LED3=1;LED4=1;}#definestep2{LED1=0;LED2=0;LED3=1;LED4=1;}#definestep3{LED1=1;LED2=0;LED3=1;LED4=1;}#definestep4{LED1=1;LED2=0;LED3=0;LED4=1;}#definestep5{LED1=1;LED2=1;LED3=0;LED4
2、=1;}#definestep6{LED1=1;LED2=1;LED3=0;LED4=0;}#definestep7{LED1=1;LED2=0;LED3=1;LED4=0;}#definestep8{LED1=0;LED2=0;LED3=1;LED4=0;}#pragmarambank0bituart_cmd;//softwaredelayfunctionvoiddelay(ulongx){while(x--)_delay(120);}voidmydelay(unsignedlongx)//延时函数{un
3、signedlongi;while(x--)_delay(100);}//初始化HT66FU50voidMCU_init(void){//TM0、TM1(定时器)除能_tmpc0=0x00;//TM2、TM3(定时器)除能_tmpc1=0x00;//屏蔽pa7-pa0的A/D输入功能_acerl=0x00;//屏蔽pa0、pa2、pa3的比较器0的输入/出功能_cp0c=0x00;//屏蔽pa5、pc2、pc3的比较器1的输入/出功能_cp1c=0x00;//pb口全部设置为输出模式_pbc=0x00;//
4、pe口全部设置为输出模式_pec=0x00;//置pa4~pa7为输入状态,pa0~pa3为输出状态_pac=0xf0;//置pa口全部为高电平_pa=0xff;//按键(pa4~pa7)加上拉电阻_papu=0xf0;//设置pc口为输入状态_pcc=0xfe;//setbuzzercontrolporttooutput_pcc0=0;_pfc=0x00;_pf=0xFF;//set液位onewireporttooutput_pcc7=1;_pcc6=1;//addPull-upresistorforDS
5、18B20DQpin_pcpu7=1;_pcpu6=1;}//多功能中断2中断向量,UART使用这个中断向量#pragmavectoruart_receive_interrupt@0x20;//#include"ht66fu50_test.h"#pragmarambank0bittemp_setting;externbituart_cmd;ucharuart_send_buf[10];ucharuart_receive_buf[3];ucharuart_receive_cnt;constucharstrin
6、g_start[]="rTEST-STARTING...r";constucharstring_ok[]="OKr";constucharstring_bad[]="BADr";constucharstring_exit[]="EXITr";constucharstring_end[]={0x1a,0x0d,0x0a};union{ucharusr;struct{uchartxif:1;uchartidle:1;ucharrxif:1;ucharridle:1;ucharoer
7、r:1;ucharferr:1;ucharnf:1;ucharperr:1;}Flag;}Register;//串行口中断处理程序voiduart_receive_interrupt(void){ucharval;_emi=0;_mf2f=0;//检查外围中断标志if(_xpf){_xpf=0;Register.usr=uart_read_reg((uchar)ReadUSR);//上一个串行口命令处理完否if(uart_cmd){_emi=1;return;}//检查中断标志和中断接收标志if((Regi
8、ster.Flag.rxif==1)&(Register.Flag.ridle==1)){//读SPI接收缓存器内容val=uart_read_reg((uchar)ReadFIFO);uart_receive_buf[uart_receive_cnt]=val;if(uart_receive_cnt==0){if(val=='H'){uart_receive_buf[uart_receive_cnt]=val;
此文档下载收益归作者所有