电子系统综合设计报告(包括完整代码)(2)
电视机预警系统,基于stc89c52rc单片机
}while(i<comm_byte_count); }
void rest_isd_comm_ptr(void) //复位 { isd_comm_ptr=ISD_COMM_RAM; back_data_ptr=ISD_COMM_RAM_C; }
uchar T_R_comm_byte( uchar comm_data ) {
uchar bit_nuber; uchar temp; bit_nuber=0; temp=0; do{ ISD_SCLK=0; delay(1); if((comm_data>>bit_nuber&0x01)!=0) {ISD_MOSI=1;} else {ISD_MOSI=0;} if(ISD_MISO) {temp=(temp>>1)|0x80;} else {temp=temp>>1;} ISD_SCLK=1; delay(1); }while(++bit_nuber<=7); ISD_MOSI=0; return (temp); }
void delay_isd(uint time) //延迟函数 { while(time--!=0); }
void delay(int x) { uchar i; for(; x>=1; x--) {for(;i<=20;i++);}
电视机预警系统,基于stc89c52rc单片机
}
void spi_pu (void) //器件上电 { ISD_SS=0;
isd1700_Npar_comm(ISD1700_PU,2); ISD_SS=1; }
void spi_pd(void) //器件下电 { ISD_SS=0;
isd1700_Npar_comm(ISD1700_PD,2); ISD_SS=1; }
4) 其他代码:
#include <reg52.h> //包括一个52标准内核的头文件 #include "ISD1700.H" #include "sound.h"
#define uchar unsigned char //定义一下方便使用 #define uint unsigned int #define ulong unsigned long
//********管脚定义
sbit Trig = P3^3; //产生脉冲引脚 sbit Echo = P3^2; //回波引脚 sbit test = P1^1; //测试用引脚
sbit wela=P2^7; //数码管位选和片选 sbit dual=P2^6;
sbit ISD_SS=P0^7; //ISD1700芯片四个引脚 sbit ISD_MISO=P0^4; sbit ISD_MOSI=P0^5; sbit ISD_SCLK=P0^6;
//********变量定义
uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码管0-9 uint distance[4]; //测距接收缓冲区
uchar ge,shi,bai,temp,flag,outcomeH,outcomeL,i,k; //自定义寄存器 bit succeed_flag; //测量成功标志 uint b; //b定义为全局变量 bit re_fig,playflg;
电视机预警系统,基于stc89c52rc单片机
uchar data ISD_COMM_RAM[7]; uchar data ISD_COMM_RAM_C[7]; uchar data *isd_comm_ptr; uchar data *back_data_ptr;
//********函数声明
void conversion(uint temp_data); void delay_20us();
void delay_ms(unsigned int time); void voice();
void isd1700_Npar_comm (uchar comm_par,comm_byte_count); void init(void);
void spi_play(void);
void rest_isd_comm_ptr(void);
uchar T_R_comm_byte( uchar comm_data ); void delay_isd(uint time); void delay(int x); void spi_pu (void); void yuyin(void); void spi_pd(void);
主函数代码:
void main(void) // 主程序 { uint distance_data,a; uchar CONT_1; i=0; k=0; flag=0; Trig=0; //首先拉低脉冲输入引脚 TMOD=0x11; //定时器0,定时器1,16位工作方式 TR0=1; //启动定时器0
IT0=0; //由高电平变低电平,触发外部中断 ET0=1; //打开定时器0中断 EX0=0; //关闭外部中断 EA=1; //打开总中断0
while(1) //程序循环 { EA=0; Trig=1;
delay_20us();
Trig=0; //产生一个20us的脉冲,在Trig引脚 while(Echo==0); //等待Echo回波引脚变高电平
电视机预警系统,基于stc89c52rc单片机
succeed_flag=0; //清测量成功标志 EX0=1; //打开外部中断 TH1=0; //定时器1清零 TL1=0; //定时器1清零 TF1=0; //
TR1=1; //启动定时器1 EA=1; while(TH1 < 30) //等待测量的结果,周期65.535毫秒(可用中断实现) { if(TH1==0xff) { TR1=0; k++; } } TR1=0; //关闭定时器1 EX0=0; //关闭外部中断 if(succeed_flag==1) { distance_data=outcomeH; //测量结果的高8位 distance_data<<=8; //放入16位的高8位 distance_data=distance_data|outcomeL;//与低8位合并成为16位结果数据 distance_data=distance_data+k;
distance_data/=58; //微秒的单位除以58等于厘米 } //Y米=(X秒*344)/2 if(succeed_flag==0) {
distance_data=0; //没有回波则清零 test = !test; //测试灯变化 } a=distance_data;
if(b==a) CONT_1=0; if(b!=a) CONT_1++; if(CONT_1>=3) { CONT_1=0; b=a; conversion(b); } } }
…… 此处隐藏:1016字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [资格考试]石油钻采专业设备项目可行性研究报告编
- [资格考试]2012-2013学年度第二学期麻风病防治知
- [资格考试]道路勘测设计 绪论
- [资格考试]控烟戒烟知识培训资料
- [资格考试]建设工程安全生产管理(三类人员安全员
- [资格考试]photoshop制作茶叶包装盒步骤平面效果
- [资格考试]授课进度计划表封面(09-10下施工)
- [资格考试]麦肯锡卓越工作方法读后感
- [资格考试]2007年广西区农村信用社招聘考试试题
- [资格考试]软件实施工程师笔试题
- [资格考试]2014年初三数学复习专练第一章 数与式(
- [资格考试]中国糯玉米汁饮料市场发展概况及投资战
- [资格考试]塑钢门窗安装((专项方案)15)
- [资格考试]初中数学答题卡模板2
- [资格考试]2015-2020年中国效率手册行业市场调查
- [资格考试]华北电力大学学习实践活动领导小组办公
- [资格考试]溃疡性结肠炎研究的新进展
- [资格考试]人教版高中语文1—5册(必修)背诵篇目名
- [资格考试]ISO9001-2018质量管理体系最新版标准
- [资格考试]论文之希尔顿酒店集团进入中国的战略研
- 全国中小学生转学申请表
- 《奇迹暖暖》17-支2文学少女小满(9)公
- 2019-2020学年八年级地理下册 第六章
- 2005年高考试题——英语(天津卷)
- 无纺布耐磨测试方法及标准
- 建筑工程施工劳动力安排计划
- (目录)中国中央空调行业市场深度调研分
- 中国期货价格期限结构模型实证分析
- AutoCAD 2016基础教程第2章 AutoCAD基
- 2014-2015学年西城初三期末数学试题及
- 机械加工工艺基础(完整版)
- 归因理论在管理中的应用[1]0
- 突破瓶颈 实现医院可持续发展
- 2014年南京师范大学商学院决策学招生目
- 现浇箱梁支架预压报告
- Excel_2010函数图表入门与实战
- 人教版新课标初中数学 13.1 轴对称 (
- Visual Basic 6.0程序设计教程电子教案
- 2010北京助理工程师考试复习《建筑施工
- 国外5大医疗互联网模式分析




