基于at89c51的自动喷水系统毕业设计(编辑修改稿)内容摘要:
[6]。 U16 U16temp1,U16temp2。 uchar shi,fen,miao,nam,dkey,num,key。 uchar code wei[]={0x01,0x02,0x04,0x08,0x10,0x20}。 //八位位选码表 uchar code duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}。 //数码管显示编码 (1F) void SendData(U8 *a) {outdata[0] = a[0]。 outdata[1] = a[1]。 outdata[2] = a[2]。 outdata[3] = a[3]。 outdata[4] = a[4]。 outdata[5] = a[5]。 count = 1。 SBUF=outdata[0]。 } void delay1(U16 t) {U16 i,j。 for(i=t。 i0。 i) for(j=25。 j0。 j)。 } void delay2(U8 z) {uint i,j。 for(i=z。 i0。 i) for(j=110。 j0。 j)。 } void Delay(U16 j) {U8 i。 for(。 j0。 j) {for(i=0。 i27。 i++)。 } } void Delay_10us(void) {U8 i。 i。 i。 i。 i。 i。 i。 } void COM(void) {U8 i。 for(i=0。 i8。 i++) {U8FLAG=2。 while((!HR)amp。 amp。 U8FLAG++)。 Delay_10us()。 Delay_10us()。 Delay_10us()。 U8temp=0。 if(HR)U8temp=1。 U8FLAG=2。 while((HR)amp。 amp。 U8FLAG++)。 //超时则跳出 for 循环 if(U8FLAG==1)break。 //判断数据位是 0 还是 1 // 如果高电平高过预定 0 高电平值则数据位为 1 U8data=1。 U8data|=U8temp。 //0 }//rof } void RH(void) {//主机拉低 18ms HR=0。 Delay(180)。 HR=1。 //总线由上拉电阻拉高 主机延时 20us Delay_10us()。 Delay_10us()。 Delay_10us()。 Delay_10us()。 //主机设为输入 判断从机响应信号 HR=1。 //判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行 if(!HR) //T ! {U8FLAG=2。 //判断从机是否发出 80us 的低电平响应信号是否结束 while((!HR)amp。 amp。 U8FLAG++)。 U8FLAG=2。 //判断从机是否发出 80us 的高电平,如发出则进入数据接收状态 while((HR)amp。 amp。 U8FLAG++)。 //数据接收状态 COM()。 U8RH_data_H_temp=U8data。 COM()。 U8RH_data_L_temp=U8data。 COM()。 U8T_data_H_temp=U8data。 COM()。 U8T_data_L_temp=U8data。 COM()。 U8checkdata_temp=U8data。 HR=1。 //数据校验 U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp)。 if(U8temp==U8checkdata_temp) {U8RH_data_H=U8RH_data_H_temp。 U8RH_data_L=U8RH_data_L_temp。 U16temp1 =U8RH_data_H。 U16temp1 = 8。 U16temp1 |= U8RH_data_L。 //获得完整的湿度 tab[0]=U16temp1/100。 //湿度百位 tab[1]=U16temp1%100/10。 //湿度十位 tab[2]=U16temp1%10。 //湿度个位 U8T_data_H=U8T_data_H_temp。 U8T_data_L=U8T_data_L_temp。 U16temp2 = U8T_data_H。 U16temp2=8。 U16temp2 |= U8T_data_L。 //获得完整的温度 tab[3]=U16temp2/100。 //温度百位 tab[4]=U16temp2%100/10。 //温度十位 tab[5]=U16temp2%10。 //温度个位 U8checkdata=U8checkdata_temp。 //校验位 } } } void time_display(int a,int b,int c) {uchar s,g。 s=a/10。 g=a%10。 clk=0。 P2=wei[5]。 P0=duan[s]。 clk=1。 delay2(1)。 clk=0。 P2=0。 clk=1。 delay2(1)。 clk=0。 P2=wei[4]。 P0=duan[g]|0x80。 clk=1。 delay2(1)。 clk=0。 P2=0。 clk=1。 delay2(1)。 s=b/10。 g=b%10。 clk=0。 P2=wei[3]。 P0=duan[s]。 clk=1。 delay2(1)。 clk=0。 P2=0。 clk=1。 delay2(1)。 clk=0。 P2=wei[2]。 P0=duan[g]|0x80。 clk=1。 delay2(1)。 clk=0。 P2=0。 clk=1。 delay2(1)。 s=c/10。 g=c%10。 clk=0。 P2=wei[1]。 P0=duan[s]。 clk=1。 delay2(1)。 clk=0。 P2=0。 clk=1。 delay2(1)。 clk=0。 P2=wei[0]。 P0=duan[g]。 clk=1。 delay2(1)。 clk=0。 P2=0。 clk=1。 delay2(1)。 } void time1_display() {uchar s,g。 s=shi/10。 g=shi%10。 clk=0。 P2=wei[5]。 P0=duan[s]。 clk=1。 delay2(1)。 clk=0。 P2=0。 clk=1。 delay2(1)。 clk=0。 P2=wei[4]。 P0=duan[g]|0x80。 clk=1。 delay2(1)。 clk=0。 P2=0。 clk=1。 delay2(1)。 s=fen/10。 g=fen%10。 clk=0。 P。基于at89c51的自动喷水系统毕业设计(编辑修改稿)
相关推荐
器件,是现代信息系统和各种设备不可缺少的信息采集工具。 磁传感器是一种将磁学量信号转变为电信号的器件或装置。 随着信息产业、工业自动化、医疗仪器等的飞速发展和计算机应用的普及,需要大量的传感器将被测或被控的非电信号转换成可与计算机兼容的电信号。 作为输入信号,这就给磁传感器的快速发展提供了机遇,形成了磁传感器的产业。 其中最具代表的磁传感器就是霍尔传感器,在自动检测系统中
8 或 9;当百位数为 1 时,十位数只能为 0;个位及小数位为 0— 9 之中的任意数。 T4— T14 为发射频率预置键,预置的频率可 9 以自己设置。 T15 为单声道 /立体声控制键。 其框图如图所示。 图 4*4 矩阵式键盘设计原理图 167。 LCD 显示模块设计 本设计采用 1602 液晶显示屏,其 主要技术参数: 显示容量 :162 个字符 芯片工作电压 :—
定义与命名,以使程序易于修改、调试和升级。 本系统将 TO 溢出中断用于软件看门狗。 喷池数据 喷池数据是用以对喷池内的水泵、电磁阀和彩灯等进行开与关控制的数据。 一组可循环使用的这种数据, 就决定了喷泉和彩灯的一个特定的变化形态。 这组喷池数据可称为花样数据。 对一个特定构造的喷池,这种花样数据可编写出很多。 下面以图 为例说明花样数据的编排方法。 假设希望外圈喷头每隔一定时间顺次增喷
息”条目如下: 数据存储名称:用户信息 简述:存放的是每个用户相关信息情况 输入数据:注册的用户信息 数据存储组成: {用户帐号 +密码 +电子邮箱 +性别 +qq+来自地方 +发贴数量 +注册日期+最后一次登录时间 +个人主页 +头像 } 存储方式:按注册的先后顺序排列 (四 )数据处理。 数据处理“分页跳转”条目如下: 数据处理名称:分页跳转 数据处理编号: 简要描述:根据提交的跳转
楼的学生。 根据我们日常生活中的经验,结合对自己学校宿舍楼管理老师的咨询和对同宿舍楼同学的调查,得出用户的下列实际要求: 宿舍楼的基本情况是 学生住在宿舍楼中,每栋宿舍楼都会有若干名老师负责本宿舍楼的日常管理。 入校时,每位同学都有唯一的 学号,并被分配到指定的宿舍楼和指定的宿舍,也会有一个宿舍号,其入校时间就是他的入住时间。 另外,为了管理上的方便,同一院系的学生的宿舍一般在一起
1 .8100pFC 3 9100pFC 4 0V D D 3 3V C C1 0 u F / 1 6 VC 4 1V D D 1 8 图 44 S3C2410A 电源电路图 LDO 是一种低电压差电源芯片,而 SPX1117 系列 LD0 芯片输出电 流可达 800mA,输出电压的精度为,还具有电流限制和热保护功能,其输出端的 10 F 的钽电容用来改善瞬态响应和稳定性。 字模函数 LCD