完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#include ***it Echo=P1^1; ***it Trig=P1^2; ***it RS=P1^0; ***it RW=P1^1; ***it LCDEN=P2^5; unsigned int time=0; unsigned int timer=0; unsigned int S=0; bit flag=0; unsigned char table[]={'0','1','2','3','4','5','6','7','8','9'}; unsigned char di***uff[4]={0,0,0,0}; //延时函数 void delay_1ms(unsigned int z) { unsigned int x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } //延时函数 void delay_50us(unsigned int t) { unsigned char i; for(;t>0;t--) for(i=19;i>0;i--); } void write_byte(unsigned char date,bit i) //写入数据或者是指令,i就是这个参数 { RW=0; LCDEN=0; RS=i; P0=date; delay_50us(20); LCDEN=1; delay_50us(20); LCDEN=0; } //液晶的初始化 void init_1602() { delay_1ms(15); write_byte(0x38,0); delay_1ms(5); write_byte(0x38,0); delay_1ms(5); write_byte(0x38,0); write_byte(0x38,0); write_byte(0x0c,0); write_byte(0x06,0); write_byte(0x01,0); } void display_1602(unsigned char y,unsigned char x,unsigned char value) { y=y&0x01; //确定是在那个行,这个语句使得y为0或者是1 x=x&0x0f; //确定是行的第几个,这个语句使得为0~15 if(y) { x=0x80+0x40+x; } else x=0x80+x; write_byte(x,0); write_byte(value,1); } void Conut(void) { time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.7)/100; if((S>=400)||(flag==1)) { flag=0; di***uff[0]='_'; di***uff[1]='_'; di***uff[2]='_'; } else { di***uff[0]=table[S/100]; di***uff[1]=table[S/10%10]; di***uff[2]=table[S%10]; } } void main(void) { init_1602(); display_1602(0,0,'D'); display_1602(0,1,'E'); display_1602(0,2,'S'); display_1602(0,3,':'); TMOD=0x11; TH0=0; TL0=0; TH1=(65536-50000)/256; TL1=(65536-50000)%256; ET0=1; ET1=1; TR1=1; EA=1; Trig=0; Echo=0; while(1) { while(!Echo); TR0=1; while(Echo); TR0=0; Conut(); display_1602(0,4,di***uff[0]); display_1602(0,5,di***uff[1]); display_1602(0,6,di***uff[2]); } } void T0_timer() interrupt 1 { flag=1; } void T1_timer() interrupt 3 { TH1=(65536-50000)/256; TL1=(65536-50000)%256; timer++; if(timer>=5) { TR1=0; TH1=(65536-50000)/256; TL1=(65536-50000)%256; timer=0; Trig=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); Trig=0; TR1=1; } } |
|
相关推荐
1个回答
|
|
已经实践过了,可以直接用的。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
489 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
498 浏览 0 评论
655 浏览 0 评论
如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板
1329 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十章 YOLO2人手检测实验
558 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11752 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-20 13:45 , Processed in 0.404130 second(s), Total 40, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号