单片机课程设计——自动滚动广告牌设计

上传人:第*** 文档编号:61592875 上传时间:2018-12-05 格式:DOCX 页数:25 大小:3.59MB
返回 下载 相关 举报
单片机课程设计——自动滚动广告牌设计_第1页
第1页 / 共25页
单片机课程设计——自动滚动广告牌设计_第2页
第2页 / 共25页
单片机课程设计——自动滚动广告牌设计_第3页
第3页 / 共25页
单片机课程设计——自动滚动广告牌设计_第4页
第4页 / 共25页
单片机课程设计——自动滚动广告牌设计_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《单片机课程设计——自动滚动广告牌设计》由会员分享,可在线阅读,更多相关《单片机课程设计——自动滚动广告牌设计(25页珍藏版)》请在金锄头文库上搜索。

1、单片机课程设计 题 目: 自动滚动广告牌 所在院系: 机电汽车工程学院 专 业: 机101-4班 学 号: 姓 名: 完成日期: 指导教师: 目录一、 课程设计任务书二、 设计项目简介 (一)设计思路 (二)任务分工三、 设计过程 (一)电路原理图及各器件原理介绍 (二)程序模块四、 程序框图五、 程序清单六、 系统功能简介 (一)产品的功能简介 (二)产品使用方法 (三)产品性能简介七、 产品说明书八、 总结一、 课程设计任务书基于单片机的自动滚动广告牌的设计广告牌有四张宣传彩页,卷入一卷轴,依次来回显示每一页,每一页显示的时间相同。本设计以MCS-51系列单片机为核心,采用常用电子器件设计

2、,自行设计电源。设计广告彩页的显示时间长度,时间一到就用直流电动机旋转控制彩页切换,用一台直流电动机控制广告彩页的旋转(正转/反转)。用一个光敏电阻传感器测量光强度,当光线较暗的时候启动背景灯。设置三个按键:手动/自动切换、手动正转和手动反转,用一个发光二极管显示手动/自动状态。设置若干个位置控制行程开关,设置彩页的显示位置。按键输入采用中断方式。二、 设计项目简介设计思路(1)选用ATMEL公司的AT89C51单片机。与MCS-51 兼容4K字节可编程FLASH存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24MHz三级程序存储器锁定1288位内部RAM32可编程I/

3、O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路(2)通过I/O口直接控制广告彩页的切换,通过程序实现显示延时,通过debug确定准确延时时间长度。(3)通过扫描按键实现监测自动与手动、正转与反转按键状态。由于选用单片机没有足够的外部中断,且扫描按键的方法更加简洁,故此处违背了设计任务书,希望可以得到谅解。(4)利用比较器设计光感电路(仿真中使用电位器模拟光敏电阻),提供光线信号。通过I/O口输出信号,控制背景灯驱动器(仿真中使用74HC573驱动一拍黄色LED小灯模拟),进而控制背景灯开关。(5)利用L298驱动器驱动直流电机,通过I/O口信号控

4、制L298输出信号,进而控制电机正转,反转及停转的状态。(6)通过I/O口信号直接控制“手动/自动”状态显示指示灯亮灭。(7)使用四个行程开关(仿真中使用按键模拟)在自动状态下控制电机正转,反转及停转。通过扫描按键的方式实现监测行程开关状态。(8)设计外部晶振及复位电路。(9)由于以上任务较简单,较早完成了任务,经过组内商议,为挑战一下自己,决定添加温度检测并显示的功能。通过DS18b20芯片完成温度检测,A/D转换,使用串口通信单片机将检测的温度读取,经数据转换,并通过I/O口显示在四位共阴极数码管上。任务分工分四个工段:独立模块功能单独设计电路、程序,仿真;各模块整合,调试,仿真;修整,优

5、化,添加扩展及附加功能;整理产品说明书、课程报告及其他材料。分三个小组:任务分工表:第一小组第二小组第三小组工段一按键模块电机驱动模块行程开关监测自动展示程序光感模块背景灯模块工段二电路原理图仿真电路图程序整合程序调试提前整理产品说明书工段三添加扩展及附加功能修整,优化整理产品说明书,确定初稿工段四修正产品说明书,整理课程报告及其他材料。三、 设计过程电路原理图及各器件原理介绍(1)整体电路图展示(2) 各模块原理介绍1. 光感比较电路U3=RV1URV1+R2 U2=R3UR3+R1光线越强RV1越小,U3越小,当小到一定值(设定5K)U3U2。通过比较器比较U2、U3,U3U2时输出1,控

6、制背景灯开。2. DS18b20温度传感器DSl820数字温度计提供9位(二进制)温度读数,指示器件的温度。信息经过单线接口送入DSl820或从DSl820送出,因此从主机CPU到DSl820仅需一条线(和地线),DSl820的电源可以由数据线本身提供而不需要外部电源。DSl820的测量范围从-55到+125增量值为0.5可在l s(典型值)内把温度变换成数字。每一个DSl820包括一个唯一的64位长的序号,该序号值存放在DSl820内部的ROM(只读存贮器)中,开始8位是产品类型编码(DSl820编码均为10H)接着的48位是每个器件唯一的序号,最后8位是前面56位的CRC(循环冗余校验)码

7、DSl820中还有用于贮存测得的温度值的两个8位存贮器RAM,编号为0号和1号,1号存贮器存放温度值的符号如果温度为负,则1号存贮器8位全为1,否则全为0,0号存贮器用于存放温度值的补码LSB(最低位)的1表示0.5摄氏度,将存贮器中的二进制数求补再转换成十进制数,并除以2就得到被测温度值(-55125摄氏度)。3. L298芯片驱动电机L298N 为SGS-THOMSON Microelectronics 所出产的双全桥步进电机专用驱动芯片( Dual Full-Bridge Driver ) ,内部包含4信道逻辑驱动电路,可同时驱动2个减速直流电机,内含二个H-Bridge 的高电压、大电

8、流双全桥式驱动器,接收标准TTL逻辑准位信号,可驱动46V、2A以下的步进电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的IO端口来提供模拟时序信号,控制转速。OUTl、OUT2 和OUT3、OUT4之间分别接2个电机;input1input4 输入控制电位来控制电机的正反转;Enable 则控制电机停转。4. 四位共阴极数码管的驱动74HC573芯片驱动数码管显示接口,通过单片机I/O接口直接控制数码管位选。共阴极数码管真值表十六进制0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x000x40显示符号0123456789空-74HC573为八

9、进制 3 态非反转透明锁存器,输入是和标准 CMOS 输出兼容的;加上拉电阻,他们能和 LS/ALSTTL 输出兼容。当锁存使能端LE为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。5. 独立按键模块按键一端接地,另一端与单片机I/O口相连并外接上拉电阻。按键按下时I/O口由高电位转为低点位,经单片机读取引脚信号,将按键状态输入。6. 外部晶振电路51单片机单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTAL1为输入端,XTAL2为输出端。两个引脚间跨接晶体振荡器与微调电容组成并联谐振电路,构成一个自激振荡器为内部时

10、钟提供振荡时钟。振荡期的频率主要取决于晶体的振荡频率,一般晶体可在1.2MHz12MHz之间任选。电容C1,C2通常取30pF左右。7. 复位电路51单片机51系列单片机系统通常有上电复位和按键复位两种方式。最简单的一种上电复位及按键复位电路图如上图所示。上电后,由于电容充电,使RST持续一段时间的高电平,完成复位操作;当单片机处于运行中或者死锁时,按下“复位”按钮,也可以使单片机进入复位状态。程序模块1. 数码管动态扫描函数void refresh_led()P2=Disp_Taba0;P1=dispbit0;P1=0xff;/每个数码管按负值、打开、关闭的顺序P2=Disp_Taba1;P

11、1=dispbit1;P1=0xff;P2=Disp_Taba2 |0x80;P1=dispbit2;P1=0xff;P2=Disp_Taba3;P1=dispbit3;P1=0xff; 每个数码管依次按负值、打开、关闭的顺序受控,从而实现动态扫描。2. 温度转换模块程序void start_temp_sensor(void)DS18b20_reset();write_byte(0xCC);/ 发Skip ROM命令write_byte(0x44); / 发转换命令/* 读存温度*/void read_temp()uint8 temp_data2; / 读出温度暂放uint16 temp=0,

12、c;double wd;start_temp_sensor();delay_ms(100);DS18b20_reset(); / 复位write_byte(0xCC); / 发Skip ROM命令write_byte(0xBE); / 发读命令temp_data0=read_byte(); /温度低8位temp_data1=read_byte(); /温度高8位temp = temp_data1;/一下三步将温度高八位低八位整合temp = 8;temp |= temp_data0;if (temp_data1&0xf0)/判断温度是否为负temp=(temp)+1;/为负时,取反加一wd=t

13、emp*0.0625;/转为摄氏温度,0.0625为温感芯片储存精度a0=11; /为负时,第一个数码管显示负号elsewd=temp*0.0625;a0=10; /为正时,第一个数码管不显示c=wd;/将摄氏温度转为整型a2=c%10; /第三个数码管显示个位a1=c/10%10; /第二个数码管显示十位c=wd*10; a3=c%10; /第四个数码管显示小数位3. 背景灯控制模块程序void beijingdeng ()if(ggxh)led_bjd=1;elseled_bjd=0; 光感信号为高电平时,背景灯控制引脚输出高电平,控制背景灯关;光感信号为低电平时,背景灯控制引脚输出低电平,控制背景灯亮。4. 自动控制模块程序void zidong ()led_zs=0;/点亮 自动/手动指示灯while(1)if (i)/判断电机正反转状态,并控制电机正反转dj_zz

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号