51单片机+DSM501+DHT11数码管显示.doc_第1页
51单片机+DSM501+DHT11数码管显示.doc_第2页
51单片机+DSM501+DHT11数码管显示.doc_第3页
51单片机+DSM501+DHT11数码管显示.doc_第4页
51单片机+DSM501+DHT11数码管显示.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/*/* 广东工业大学无线电社 */* 单片机培训课例程 */*例程名称:点亮数码管 */*建立时间:2011/03/08 */*描述: 数码管显示20121226世界末日 */*将SEG跳线打到使能端,其他跳线打到非使能端*/*/#include #include#define uchar unsigned char#define uint unsigned int#define DATA_OUT P2 /宏定义 数码管段选#define BIT_CHOOSE P0/宏定义 数码管位选/*注意保留字“code”的用法这是C51特有的,在标准C中没有这一用法它表示把“code”后面的tab数组的内容都存放在只读存储器ROM中,以节省RAM的空间因为51单片机只有128B的RAM空间 */uchar code tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /共阴数码管编码uchar code dat=2,0,1,2,0,3,3,0; /要显示数字/*/*typedef unsigned char U8; /* defined for unsigned 8-bits integer variable 无符号8位整型变量 */typedef signed char S8; /* defined for signed 8-bits integer variable 有符号8位整型变量 */typedef unsigned int U16; /* defined for unsigned 16-bits integer variable 无符号16位整型变量 */typedef signed int S16; /* defined for signed 16-bits integer variable 有符号16位整型变量 */typedef unsigned long U32; /* defined for unsigned 32-bits integer variable 无符号32位整型变量 */typedef signed long S32; /* defined for signed 32-bits integer variable 有符号32位整型变量 */typedef float F32; /* single precision floating point variable (32bits) 单精度浮点数(32位长度) */typedef double F64; /* double precision floating point variable (64bits) 双精度浮点数(64位长度) */unsigned char can_2;/#define uchar unsigned char#define uint unsigned int#define Data_0_time 4/-/-IO口定义区-/-/sbit P2_0 = P15 ;sbit scan=P14;/-/-定义区-/-/U8 U8FLAG,k;U8 U8count,U8temp;U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;U8 U8comdata;U8 outdata5; /定义发送的字节数 U8 indata5;U8 count, count_r=0;U8 str5=RS232;U16 U16temp1,U16temp2; / uint num,flag,lrate,pulse;uchar wave; /SendData(U8 *a)outdata0 = a0; outdata1 = a1;outdata2 = a2;outdata3 = a3;outdata4 = a4;count = 1;SBUF=outdata0; 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(!P2_0)&U8FLAG+);Delay_10us(); Delay_10us();Delay_10us(); U8temp=0; if(P2_0)U8temp=1; U8FLAG=2; while(P2_0)&U8FLAG+); /超时则跳出for循环 if(U8FLAG=1)break; /判断数据位是0还是1 / 如果高电平高过预定0高电平值则数据位为 1 U8comdata0;i-)for(j=110;j0;j-);void main(void)/*/*uchar i=0;uint average_c;unsigned char can_0,can_1,can_2,can_3;/U8 i,j;/uchar str6=RS232;/* 系统初始化 */TMOD = 0x20; /定时器T1使用工作方式2TH1 = 253; / 设置初值TL1 = 253;TR1 = 1; / 开始计时SCON = 0x50; /工作方式1,波特率9600bps,允许接收 ES = 1;EA = 1; / 打开所以中断 TI = 0;RI = 0;SendData(str) ; /发送到串口 Delay(1); /延时100US(12M晶振)/*/*DATA_OUT=0X00;BIT_CHOOSE=0XFF;while(1)/* /- /调用温湿度读取子程序 can_0=0; / can_1=0; can_2=0;/ can_3=0; for (i=0;i3;i+) RH(); /串口显示程序 /- str0=U8RH_data_H; str1=U8RH_data_L; str2=U8T_data_H; str3=U8T_data_L; str4=U8checkdata; can_0=str0+can_0; can_1=str1+can_1; can_2=str2+can_2; can_3=str3+can_3; can_0=(can_0)/3; / can_1=(can_1)/3; average_c=(can_2)/3; / can_3=(can_3)/3;/*/pulse=0; wave=0; lrate=0;TR0=1; for(i=0;i200;i+) delay_ms(5); wave=scan; pulse=pulse+wave;lrate=200-pulse ;lrate=lrate/20;/* for (i=0;i200;i+) DATA_OUT=tabaverage_c/10; BIT_CHOOSE=0xfe; delay_ms(2); BIT_CHOOSE=0XFF; /消影 DATA_OUT=tabaverage_c%10; BIT_CHOOSE=0xfd; delay_ms(2); BIT_CHOOSE=0XFF; /消影 DATA_OUT=0x00; /显示- BIT_CHOOSE=0xfb; delay_ms(2); BIT_CHOOSE=0XFF; /消影 DATA_OUT=tabcan_0/10; BIT_CHOOSE=0xf7; delay_ms(2); BIT_CHOOSE=0XFF; /消影 DATA_OUT=tabcan_0%10; BIT_CHOOSE=0xef; delay_ms(2); BIT_CHOOSE=0XFF; /消影 DATA_OUT=0x00; /显示- BIT_CHOOSE=0xdf; delay_ms(2); BIT_CHOOSE=0XFF; /消影 DATA_OUT=tablrate/10; BIT_CHOOSE=0xbf; delay_ms(2); BIT_CHOOSE=0XFF; /消影 DATA_OUT=tablrate%10; BIT_CHOOSE=0x7f; delay_ms(2); BIT_CHOOSE=0XFF; /消影 /*for(i=0;i2;i+)DATA_OUT=tabdati;BIT_CHOOSE=(1i); /8位循环扫描delay_ms(2);BIT_CHOOSE=0XFF; /消影*/*/*void RSINTR() interrupt 4 using 2U8 InPut3;if(TI=1) /发送中断 TI=0;if(count!=5) /发送完5位数据 SBUF= outdat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论