版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机应用系统设计实例1.
8051系列单片机实现计算器功能2.简易波形发生器3.简易广告屏设计4.寻迹小车的设计5.无线呼叫系统设计1.8051单片机实现计算器功能一
设计目标和实现方法满足计算器要求,进行加减乘除运算;打开计数器时,初始显示数字为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){LED[0]=LED[1]=LED[2]=space;}else{LED[0]=LED[1];LED[1]=LED[2];LED[2]=LED[3];}LED[3]=x;key_ptr--;if(x<=9&&x>=0)op1=op1*10+x; elseif(x>=10&&x<=13){LED[0]=LED[1]=LED[2]=LED[3]=space; key_ptr=3;op2=op1;op1=0;switch(x) {case10:op3='+';break;case11:op3='-';break; case12:op3='*';break; case13:op3='/';break; default:break; }}elseif(x==14){switch(op3){case'+':op2=op1+op2;break;case'-':op2=op2-op1;break;case'*':op2=op1*op2;break;case'/':op2=op2/op1;break;default:break;}result_pr();} key_ptr&=0x03;}定时中断子程序:voidtimer0()interruptTF0_VECTOR//中断检测键盘键值{TH0=(65536-2500)>>8;TL0=(65536-2500)&0xff;if((key_port&0xf0)!=0xf0) //有键按下
{if(key_port==xkey){ckey++; //去抖动
if(ckey>10) {key=xkey; ckey=0;}}else{xkey=key_port; ckey=0;}} wx_port=0xff; dm_port=dm[LED[wx_ptr]];//更新段码wx_port^=(1<<wx_ptr); //更新位选
wx_ptr++;wx_ptr&=3; //指向下一位}2.简易波形发生器设计
波形发生器是一种在测量、控制领域经常要使用到的信号发生装置,可以按照要求输出相应波形。其主要功能如下:①输出波形可调;②输出复制和频率可调。设计思路:以正弦波为例,一条正弦波曲线可以看做是一个个点的集合,我们可以按照一定的时间间隔输出这些点的电压值,在输出端就可以得到一个正弦波,时间间隔越小,输出的波形就越接近一个正弦波。一
硬件设计这个实现方案使用了以下元器件:①主控单元:AT89s52单片机;②显示界面:液晶屏幕lcd1602;③功能电路:8分辨率D/A转换芯片DAC0832,运算放大器,与非门,按键等。简易波形发生器原理图在上原理图中:P1口作为LCD1602的数据输入总线;P2.2~2.4作为LCD1602的读/写,使能控制线;P2.0~2.1作为DAC0832的控制线;P0口作为DAC0832的数据输入总线;4个按键分别控制波形选择,频率+,频率-,
在DAC0832的输出端外接TL082集成运算放大
器,控制输出波形的幅值。DAC0832是8分辨率的D/A转换集成芯片,由8位输入锁存器,8位DAC寄存器,8位D/A转换电路及转换控制电路构成。其引脚功能如下:D0~D7:8位数据输入线,TTL电平,有效时间>90ns;ILE:数据锁存允许控制信号输入线,高电平有效;CS:片选信号输入线,低电平有效;WR1:数据锁存器写选通输入线,负脉冲有效;XFER:数据传输控制信号输入线,低电平有效;WR2:DAC寄存器选通输入线,负脉冲有效;IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;IOUT2:电流输出端2,其值与IOUT1值之和为一常数;
Rfb:反馈信号输入线,改变
Rfb端外接电阻值可调
整转换满量程精度;Vcc:电源输入端,Vcc的范围
为+5V~+15V;
VREF:基准电压输入线,VREF
的范围-10V~+10V;AGND:模拟信号地DGND:数字信号地DAC0832管脚图二
软件设计主程序流程图外部中断子程序流程图定时器中断子程序流程图主要程序举例正弦波离散输出表:ucharcodesine_tab[256]={ //输出电压从0到最大值(正弦波1/4部分) 0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc, 0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec, 0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, //输出电压从最大值到0(正弦波1/4部分) 0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2, 0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80, //输出电压从0到最小值(正弦波1/4部分) 0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43, 0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13, 0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,//输出电压从最小值到0(正弦波1/4部分) 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10, 0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d, 0x40,0x43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80};正弦波输出程序:#defineDAdataP0 //DA数据端口voidsine_out() //正弦波输出{ DAdata=sine_tab[wavecount++]; DA_S1=0;//打开8位输入寄存器 DA_S1=1;//关闭8位输入寄存器}主程序:voidmain(){uchari=0;DA_S2=0;//使DAC寄存器处于直通状态
DAdata=0;DA_S1=1;//关闭8位输入寄存器
init_lcd();waveform=0; TMOD=0x01;//设置定时器0为16位工作方式
IT0=1;//设置外部中断0为下降沿触发
ET0=1;//开定时器中断
EX0=1;EA=1;while(1){}} 定时中断子程序:voidtimer0()interrupt1{ TH0=THtemp; TL0=TLtemp; if(waveform==0)sine_out(); elseif(waveform==1)triangle_out(); elseif(waveform==2)square_out();}外部中断子程序:voidkey_int0()interrupt0{ucharkeytemp;uinttotal_freq;//总频率
EA=0;TR0=0;//关总中断与定时器
delay(5);//延时
if(key==0)//有按键按下而引发中断
{keytemp=P3&0xf0;//检测按键状态switch(keytemp){case0xe0: //选择波形waveform++;if(waveform>2)waveform=0; break;case0xd0:wavefreq[waveform]++;if(wavefreq[waveform]>10)wavefreq[waveform]=1; break;
case0xb0:wavefreq[waveform]--;if(wavefreq[waveform]<1)wavefreq[waveform]=10;break;case0x70:DA_S2=1;break;}THtemp=waveTH[waveform*10+(wavefreq[waveform]-1)];//方括号中选取第几个数后,并把该值赋给T_tempTLtemp=waveTL[waveform*10+(wavefreq[waveform]-1)];total_freq=wavefreq[waveform]*freq_unit[waveform];lcd_hang2[5]=total_freq%10+0x30;total_freq/=10;lcd_hang2[4]=total_freq%10+0x30;total_freq/=10;lcd_hang2[3]=total_freq%10+0x30;total_freq/=10;lcd_hang2[2]=total_freq%10+0x30;disp_lcd(0x80,&lcd_hang1[waveform*16]);//在第一行显示disp_lcd(0xc0,lcd_hang2);//在第二行显示
} wavecount=0;//计数清零
while(!key); EA=1;TR0=1;//开启中断与定时器}3.简易广告屏设计设计要求:基于51单片机设计一个电子广告牌,其功能是滚动显示一串字符。
设计思路:选用了8个LED点阵,组成一个大的
16*64的LED点阵。使用分时控制方法,用同一数据总线来控制8个点阵的显示,减少对IO端口的需求。一
硬件设计右图是一个8*8的集成LED点阵,该点阵有16个引脚,8个引脚控制点阵每行的选中,另外8个引脚控制点阵每列的选中,通过这16个引脚来控制点阵上每一个LED的亮灭。16X64LED点阵的广告屏电路在上原理图中:使用P2.7,P2.6,P2.5通过与非门连接3片74273作为片选引脚。则在某一时刻内我们可以只选通其中一片D触发器,发送数据,图中的两片D触发器对显示屏上LED每行的选通进行控制。
D触发器上使用了六个端口,其中四根线接到4-16译码芯片上控制每列的选通,另外两根线控制4片译码器的选通,则可以实现对4*16=64列LED的选通控制。二
软件设计要在LED屏上显示汉字,首先要取得汉字的字模,本方案一个汉字所需要的存储空间是32个字节。我们可以定义一个数组来存储这个字模,如“武”的字模为:
char
list[]={0x20,0x20,0x20,0x60,0x24,0x3F,0x24,0x20,0x24,0x20,0xE4,0x1F,0x26,0x11,0x24,0x11,0x20,0x10,0xFF,0x03,0x20,0x1C,0x22,0x20,0x2C,0x40,0x20,0x80,0x20,0xE0,0x00,0x00}
我们使用软件生成了所需汉字的字模之后,将这些字模存入程序的数组,运行程序,调用这些数组,这些汉字就显示在屏幕上了。程序流程图如右图所示:主要程序:#definehang0XBYTE[0X7FFF]//定义端口#definehang1XBYTE[0XbFFF]#definelieXBYTE[0XDFFF]voidmain(){uchari,j,k;uintb=0;uchara;//控制移动间隔时间while(1){j=0;if(a>1)//移动间隔时间;取值0--255{a=0;b+=2;if(b>=512){b=0;for(i=0;i<64;i++){lie=i;hang0=0x00;hang1=0x00;} }for(i=0;i<64;i++){lie=i;for(k=0;k<5;k++){hang0=table[j+b];hang1=table[j+b+1];delay(2);hang0=0x00;hang1=0x00;}//清屏j+=2;}a++;}}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)
电机驱动原理简介
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国莱赛尔纤维行业趋势预测及投资运作模式分析报告
- 火电机组维修质量提升动员发言稿
- 2024-2030年中国自动卷发棒行业销售策略与竞争前景预测报告
- 导游职业技能提升培训方案
- 2024-2030年中国网络游戏卡产业未来发展趋势及投资策略分析报告
- 2024-2030年中国绿化管理行业发展模式及前景趋势研究报告
- 2024-2030年中国绞肉机行业运作模式及发展策略分析报告
- 2024-2030年中国组合曲轴行业供需趋势及发展策略研究报告
- 2024-2030年中国糖果滚压机械行业市场运营模式及未来发展动向预测报告
- 2024-2030年中国筒仓罐市行业营销渠道与需求前景预测报告
- 学前教育论文范文8000字(通用九篇)
- 小学数学北师大五年级上册数学好玩 图形中的规律-
- 《富饶的西沙群岛》说课稿(优秀3篇)
- 墓碑碑文范文(通用十四篇)
- 大象版一年级科学上册全册教案
- 5000字论文范文(推荐十篇)
- 教案评分标准
- 中药饮片处方点评表
- 《节能监察的概念及其作用》
- 综合布线系统竣工验收表
- 蔬菜会员卡策划营销推广方案多篇
评论
0/150
提交评论