光电传感器的测速 - 图文(6)
附录2 源程序
#include
#define uchar unsigned char #define uint unsigned int
sbit lcden=P2^6;//定义1602使能端 sbit lcdrs=P2^4; sbit lcdrw=P2^5;
sbit a=P1^0;//对射传感器的信号输出端 sbit add=P3^4;//按键加一变量 sbit jian=P3^5;//按键减一变量 sbit bj=P2^3;//蜂鸣器端口 char zhuan[16];//设置临时数组 uint num2;//每秒的转速
uint number=7;//设定转速的初值,在其基础上按键加一或按键减一 uint num=0;//转数变量
void Init_Timer0(void);
void delay(uint z)//延迟函数 {
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--); }
void write_com(uchar com)//1602写命令 {
lcdrs=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; }
void write_date(uchar date)//1602写数据 {
lcdrs=1; lcden=1; P0=date; delay(5); lcden=0; }
26
void LCD_Write_String(uchar x,uchar y,uchar *s) //向1602写字符串 {
if (y == 0) {
write_com(0x80 + x); //表示第一行 } else
{
write_com(0xC0 + x); //表示第二行 } while (*s) {
write_date( *s); s++; } }
void LCD_Write_Char(uchar x,uchar y,uchar Data) //向1602写字符 {
if (y == 0) {
write_com(0x80 + x); } else {
write_com(0xC0 + x); }
write_date( Data); }
void init() //初始化
{ bj=0; //蜂鸣器初始化 write_com(0x01); //1602初始化 lcdrw=0; lcden=0;
write_com(0x38); write_com(0x0e); write_com(0x06);
LCD_Write_Char(13,0,'n'); LCD_Write_Char(14,0,'/'); LCD_Write_Char(15,0,'s'); LCD_Write_Char(13,1,'n'); LCD_Write_Char(14,1,'/');
27
LCD_Write_Char(15,1,'s'); }
void main() { init(); while(1) {
if(a==1)//对射传感器检测障碍物 {num++;//计转数 while(a);}
sprintf(zhuan,\ LCD_Write_String(0,0,zhuan); Init_Timer0();//定时1s
sprintf(zhuan,\输出一秒的转速 LCD_Write_String(0,0,zhuan);
if(num2>=number)//转速超过设定值报警 bj=1;
if(num2 { //按下相应的按键,1602LCD液晶显示屏显示相应的码值 delay(5); if(!add) { number=number+1; sprintf(zhuan,\打印温度值 LCD_Write_String(0,1,zhuan);//显示第二行 while(!add); } } if(!jian) { //按下相应的按键,1602LCD液晶显示屏显示相应的码值 delay(5); if(!jian) { number--; sprintf(zhuan,\打印温度值 28 LCD_Write_String(0,1,zhuan);//显示第二行 while(!jian); } } } } void Init_Timer0(void) { TMOD |= 0x01; //使用模式1,16位定时器,使用\符号可以在使用多个定时器时不受影响 //TH0=0x00; //给定初值 //TL0=0x00; EA=1; //总中断打开 ET0=1; //定时器中断打开 TR0=1; //定时器开关打开 } /*------------------------------------------------ 定时器中断子程序 ------------------------------------------------*/ void Timer0_isr(void) interrupt 1 { static unsigned int num1; TH0=(65536-2000)/256; //重新赋值 2ms TL0=(65536-2000)%6; num1++; if(num1==500) //计时1s { num1=0; num2=num; num=0; //读标志位置1 } } 29
相关推荐:
- [资格考试]机械振动与噪声学部分答案
- [资格考试]空调工程课后思考题部分整合版
- [资格考试]电信登高模拟试题
- [资格考试]2018年上海市徐汇区中考物理二模试卷(
- [资格考试]坐标转换及方里网的相关问题(椭球体、
- [资格考试]语文教研组活动记录表
- [资格考试]广东省2006年高应变考试试题
- [资格考试]LTE学习总结—后台操作-数据配置步骤很
- [资格考试]北京市医疗美容主诊医师和外籍整形外科
- [资格考试]中学生广播稿400字3篇
- [资格考试]CL800双模站点CDMA主分集RSSI差异过大
- [资格考试]泵与泵站考试复习题
- [资格考试]4个万能和弦搞定尤克里里即兴弹唱(入
- [资格考试]咽喉与经络的关系
- [资格考试]《云南省国家通用语言文字条例》学习心
- [资格考试]标准化第三范式
- [资格考试]GB-50016-2014-建筑设计防火规范2018修
- [资格考试]五年级上册品社复习资料(第二单元)
- [资格考试]2.对XX公司领导班子和班子成员意见建议
- [资格考试]关于市区违法建设情况的调研报告
- 二0一五年下半年经营管理目标考核方案
- 2014年春八年级英语下第三次月考
- 北师大版语文二年级上册第十五单元《松
- 2016国网江苏省电力公司招聘高校毕业生
- 多渠道促家长督导家长共育和谐 - 图文
- 2018 - 2019学年高中数学第2章圆锥曲线
- 竞争比合作更重要( - 辩论准备稿)课
- “案例积淀式”校本研训的实践与探索
- 新闻必须客观vs新闻不必客观一辩稿
- 福师大作业 比较视野下的外国文学
- 新编大学英语第二册1-7单元课文翻译及
- 年产13万吨天然气蛋白项目可行性研究报
- 河南省洛阳市2018届高三第二次统一考试
- 地下车库建筑设计探讨
- 南京大学应用学科教授研究方向汇编
- 2018年八年级物理全册 第6章 第4节 来
- 毕业论文-浅析余华小说的悲悯性 - 以《
- 2019年整理乡镇城乡环境综合治理工作总
- 广西民族大学留学生招生简章越南语版本
- 故宫旧称紫禁城简介




