




已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章单片机应用系统设计实例,6.18051系列单片机实现计算器功能6.2简易波形发生器6.3简易广告屏设计6.4寻迹小车的设计6.5无线呼叫系统设计,6.18051单片机实现计算器功能,一设计目标和实现方法,满足计算器要求,进行加减乘除运算;打开计数器时,初始显示数字为0123;实现简单的数据运算,不支持连续运算;仿真和调试要用到Protues和Keil软件。,二方案论证与设计,键盘包括0到9十个数字键,加减乘除四个符号键,清除键和等号键,共16个按键;键盘选用4x4行列式键盘结构(如下图);输入模块:键盘扫描;数字大小范围为4位,选用4个LED数码管显示数据和结果;,三硬件电路设计,(1)主要器件:采用8051单片机,它能够满足数据的采集、控制和数据处理的需求,显示用输入采用按键方式的4段LED数码管;(2)功能和操作:加减乘除运算和显示。步骤如下:上电后,屏幕初始化,显示初始数值0123;计算。依次数字键,符号键,数字键,等号键,屏幕上显示出计算结果;如果要再次计算,可以按下“on/c”键清0,或者按下单片机的复位键,重新初始化。,四软件设计,模块化程序设计是单片机应用中最常用的程序设计方法;模块化程序设计的中心思想是把一个复杂应用程序按整体功能划分成若干相对独立的程序模块,各模块可以单独设计,编程和调试,然后组合起来;本系统的程序模块主要分为主程序,键值获取程序和处理子程序等,其流程图分别如下图所示:,主程序流程图,定时中断子程序流程图,按键处理子程序流程图,主程序:voidmain()inint();while(1)if(key)pkey();,按键处理子程序:voidpkey()switch(key)casezero:modify_LED(0);break;caseone:modify_LED(1);break;casetwo:modify_LED(2);break;casethree:modify_LED(3);break;casefour:modify_LED(4);break;casefive:modify_LED(5);break;casesix:modify_LED(6);break;,caseseven:modify_LED(7);break;caseeight:modify_LED(8);break;casenine:modify_LED(9);break;caseclear:key_ptr=3;modify_LED(17);op1=op2=0;break;caseadd:key_ptr=3;modify_LED(10);break;casesub:key_ptr=3;modify_LED(11);break;casemux:key_ptr=3;modify_LED(12);break;casediv:key_ptr=3;modify_LED(13);break;caseequ:key_ptr=3;modify_LED(14);break;default:break;key=0;voidmodify_LED(ucharx)if(key_ptr=3)LED0=LED1=LED2=space;elseLED0=LED1;LED1=LED2;LED2=LED3;,LED3=x;key_ptr-;if(x=0)op1=op1*10+x;elseif(x=10,case-:op2=op2-op1;break;case*:op2=op1*op2;break;case/:op2=op2/op1;break;default:break;result_pr();key_ptr,定时中断子程序:voidtimer0()interruptTF0_VECTOR/中断检测键盘键值TH0=(65536-2500)8;TL0=(65536-2500)/更新段码,wx_port=(1=512)b=0;for(i=0;i64;i+)lie=i;hang0=0 x00;hang1=0 x00;,for(i=0;i64;i+)lie=i;for(k=0;k5;k+)hang0=tablej+b;hang1=tablej+b+1;delay(2);hang0=0 x00;hang1=0 x00;/清屏j+=2;a+;,6.4寻迹小车的设计,一功能介绍,本循迹小车将实现自动寻迹并沿黑线走向行进的功能。小车由前后两个电机分别控制前轮转弯及后轮前进驱动,其中前轮由小型舵机带动,使得系统减少了机械部分设计,使小车的转向控制数字化,易于单片机进行控制。后轮使用普通直流电机,通过PWM信号调节小车前进车速。,系统原理图,二硬件介绍,(1)舵机简介,舵机是一种位置伺服的驱动器,适用于角度不断变化并可以保持的控制系统。小型舵机的工作电压一般为4.8V或6V,转速一般为0.22/60度或0.18/60度。,工作原理:控制信号进入信号调制芯片,获得直流偏置电压;基准电路产生周期20ms,宽度1.5ms的基准信号;将直流偏置电压与电位器的电压比较获得电压差输出;最后,电压差的正负输出到电机驱动芯片决定电机的正反转;以180度角度伺服为例,对应的控制关系是:0.5ms-0度;2.0ms-135度;1.0ms-45度;2.5ms-180度;1.5ms-90度;,(2)黑线检测传感器的介绍,小车黑线检测用红外发射对管作为传感器。其工作原理为:发射端发射红外光,接收端接收物体反射信号,因为各种颜色对光的吸收和反射程度不同,黑色吸收红外光,使得反射信号很弱,而白色反射红外光使得反射信号相对发射信号损耗不大,接收端再将反射信号转换为相应的电压信号。传感器的接收信号再经过信号处理电路(如下页图)输送给单片机。,黑线信号检测电路,(3)电机驱动原理简介,小车后轮采用小型直流电机,采用PWM信号驱动L298N电机驱动芯片进行控制。L298N为双全桥步进电机专用驱动芯片,内部包含4信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机。此芯片可直接由单片机的IO端口来提供模拟时序信号,其电机驱动基本原理如下页图所示。,电机驱动电路,三软件程序介绍,这次设计由于单片机89S52内部不带有PWM生成模块,故采用定时器与端口电平翻转来实现PWM。右图是小车运行的程序流程图。,主程序:main()ucharreceive,ek1=7,ek2=7;pulse=0;highh=(uchar)(16384-high)/256+192);highl=(uchar)(16384-high)%256);lowh=(uchar)(high/256+200);lowl=(uchar)(high%256);IE=0 x8a;TMOD=0 x11;TH0=0 x00;TL0=0 x00;TH1=0 x00;TL1=0 x00;TR0=1;/启动T0TR1=1;/启动T1,for(;)/*for(i=0;i1120)b=1120;if(b710)b=710ek2=ek1voidinterrupt_t0(void)interrupt1,if(flag1=0)TH0=(uchar)(16384-b)/256+192);TL0=(uchar)(16384-b)%256);a=b;flag1=1;rudder=1;elseTH0=(uchar)(a/256+184);TL0=(uchar)(a%256rudder=0;flag1=0;TF0=0;TF1=0;voidinterrupt_t1(void)interrupt3if(flag2=0)TH1=highh;TL1=highl;pulse=1;/P1.1管脚电平跳变flag2=1;,elseTH1=lowh;TL1=lowl;pulse=0;/P1.1管脚电平跳变flag2=0;TF1=0;TF0=0;,6.5无线呼叫系统设计,一硬件设计,本系统采用nrf2401作为无线呼叫功能芯片,进行无线数据传输。,nRF2401是单片射频收发芯片,工作于2.42.5GHzISM频段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置。芯片能耗非常低,以-5dBm的功率发射时,工作电流只有10.5mA,接收时工作电流只有18mA,多种低功率工作模式,节能设计更方便。其DuoCeiverTM技术使nRF2401可以使用同一天线,同时接收两个不同频道的数据。nRF2401适用于多种无线通信的场合。,二软件设计,无线呼叫系统的软件设计分为三个模块,包括主程序,nRF2401发送模块和nRF2401接收模块,相关的流程图如下:,nRF2401ShockBurst方式发送流程图和接收流程图,主程序:voidmain(void)delayms(1000);/开机延时nRF2401_Data0=0;init_rs232();/串口初始化TI=1;/串口发射有效nRF2401_config();/nRF2401初始化配置delayms(100);speakertest();/蜂鸣器叫一声nRF2401_Transmit_Mode();/设置为发送模式nRF2401_Transmit_Data(nRF2401_Data);/发送测试数据nRF2401_Receive_Mode();/设置为接收模式SBUF=0 x55;/串口输出0 x55测试是否有正确的串口数据delayms(100);,while(1)nRF2401_Receive_Data(nRF2401_Data);if(nRF2401_flag/调用按键子程序,无线发送数据,发送数据子程序voidnRF2401_Transmit_Data(ucharTxBuf)uchari;nRF2401_CE=1;delayms(1);for(i=0;i(ADDR_W/8);i+)/写入接收地址(按字节对齐)nRF2401_Write_Byte(Channel_Addri);for(i=0;i(DATA1_W/8);i+)/写入需要发送的数据nRF2401_Write_Byte(TxBufi);nRF2401_CE=0;/nRF2401_CE置低使发送有效delayms(1);,接收数据子程序voidnRF2401_Receive
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冶金企业安全生产标准化组织机构及职责
- 昆明某中学初一数学试卷
- 句容六年级期中数学试卷
- 华一光谷小学数学试卷
- 嘉兴一中强基班数学试卷
- 华附理科数学试卷
- 初中生物实验教学方案计划
- 小学英语六年级上册教学计划详解
- 护士生涯规划进修计划
- 2025年安康杯酒店安全竞赛总结范文
- 《高压开关设备概述》课件
- 甲功7项临床意义
- 2025年小升初入学摸底考试数学试卷
- 2025年重庆市储备粮管理有限公司招聘笔试参考题库含答案解析
- 四年级《长城》课件
- 《智慧会议室评价方法和分级》
- 消防验收备案合同范例
- 河南省第二届职业技能大赛焊接(国赛)项目评分表
- 《1.2.1 电解质的电离》同步练习
- 简单家居装修合同范本
- 市政工程报审表
评论
0/150
提交评论