ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:115.84KB ,
资源ID:19510009      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19510009.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(智能车制作Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

智能车制作Word格式文档下载.docx

1、按P1.1或P1.2键可进行加1或减1操作;继续按P1.0键可分别进行分位、时调整;无键按下3秒钟后退出调整状态,自动进入时钟的计时和显示。整个系统的硬件原理框图,它采用的是STC89C52单片机,只用了P1口。为了简化硬件电路,LED显示采用了动态扫描的方式实现, LED采用共阳极数码管,驱动电流由三极管9012提供。为了提高计数精度,所采用的晶振频率为12MHz。第二章 硬件设计1 单片机的选择 本课程选用STC89C52型号的单片机。STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内

2、核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口

3、、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。主要性能参数: 工作电压:5.5V3.3V(5V单片机)/3.8V2.0V(3V 单片机) 工作频率范围:040MHz,相当于普通8051 的080MHz,实际工作 频率可达48MHz 用户应用程序空间为8K字节 片上集成512 字节RAM 通用I/O 口(32 个),复位后为:P0/P1/P2/P3 是准双向口/弱上拉, P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻。 ISP(在系统可编程)

4、/IAP(在应用可编程),无需专用编程器,无 需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程 序,数秒即可完成一片 具有EEPROM 功能 共3 个16 位定时器/计数器。即定时器T0、T1、T2 外部中断4 路,下降沿中断或低电平触发电路,Power Down 模式可 由外部中断低电平触发中断方式唤醒 通用异步串行口(UART),还可用定时器软件实现多个UART 工作温度范围:-40+85(工业级)/075(商业级) PDIP封装2 显示方案采用八只共阳数码管作为时钟电路的显示。数码管的ah分别并联在一起,由单片机的P0口控制,每只数码管的共阳极分别接一只PNP

5、三极管驱动,三极管具有电流放大作用。3调试按键模块设计采用独立式按键电路,每个键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。缺点是当按键较多时占用单片机的I/O数目较多,优点是电路设计简单,且编程极其容易。考虑到时钟控制在实际使用时的资源量并不大,使用按钮控制可以大大减少按键第三章 软件设计1. 主程序主程序功能主要是初始化、正常现实时间和判断功能转换键。2. 定时器T0中断服务程序定时器T0用于时间计时。定时溢出中断周期可设为50ms,中断进入后,时钟计时累计20次(即1s)时,对秒计数单元进行加1操作。时钟计数单元在定义的6个单元70H75H中,

6、 70H71H 存放秒数据, 72H73H存放分数据, 74H75H存放时数据。最大计时值为23小时59分59秒。在计数单元中采用十进制BCD码计数,秒、分、时之间满60进位。3. 显示子程序数码管显示的数据放在内存单元70H75H中,其中70H71H存放秒数据, 72H73H存放分数据, 74H75H存放时数据,每一单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能,显示用的十进制BCD码数据的对应段码存放在ROM表中,显示时,先取出70H75H中的某一地址中的数据,然后查表得对应的显示段码从P0口输出,P2口将对应的数码管位选中供电,就能显示该地址单元的数据值。4. 定时器T1

7、中断服务程序进行时间调整是,正在被调整的时间以闪烁的形式表现,定时器T1用于产生闪烁的时间间隔,每隔0.3s闪烁一次。5. 调时功能程序通过按键K1来选择设置“小时”、“分钟”和“秒”。通过“加”和“减”按键(K2、K3)来调整时间6.延时程序因为系统是动态显示,为了确保系统在有效显示时间范围内必须执行显示程序,所以使用延时程序。7.单片机软件程序/*P1.4小时调整 P1.5分种调整*/#include intrins.hunsigned char data dis_digit;unsigned char key_s, key_v;unsigned char code dis_code11=

8、0xc0,0xf9,0xa4,0xb0, / 0, 1, 2, 3 0x99,0x92,0x82,0xf8,0x80,0x90, 0xff;/ 4, 5, 6, 7, 8, 9, off unsigned char data dis_buf8;unsigned char data dis_index;unsigned char hour,min,sec;unsigned char sec100;sbit K1 = P14;sbit K2 = P15;bit scan_key();void proc_key();void inc_sec();void inc_min();void inc_hou

9、r();void display();void delayms(unsigned char ms);void main(void) P0 = 0xff; P2 = 0xff; TMOD = 0x11; / 定时器0, 1工作模式1, 16位定时方式 TH1 = 0xdc; TL1 = 0; TH0 = 0xFC; TL0 = 0x17; hour = 12; min = 00; sec = 00; sec100 = 0; dis_buf0 = dis_codehour / 10; / 时十位 dis_buf1 = dis_codehour % 10; / 时个位 dis_buf3 = dis_

10、codemin / 10; / 分十位 dis_buf4 = dis_codemin % 10; / 分个位 dis_buf6 = dis_codesec / 10; / 秒十位 dis_buf7 = dis_codesec % 10; / 秒个位 dis_buf2 = 0xbf; / 显示- dis_buf5 = 0xbf; dis_digit = 0xfe; dis_index = 0; TCON = 0x01; IE = 0x8a; / 使能timer0,1 中断 TR0 = 1; TR1 = 1; key_v = 0x03; while(1) if(scan_key() delayms

11、(10); if(scan_key() key_v = key_s; proc_key(); bit scan_key() key_s = 0x00; key_s |= K2; key_s 59) min = 0; dis_buf3 = dis_codemin / 10; dis_buf4 = dis_codemin % 10; EA = 1;void timer0() interrupt 1/ 定时器0中断服务程序, 用于数码管的动态扫描/ dis_index - 显示索引, 用于标识当前显示的数码管和缓冲区的偏移量/ dis_digit - 位选通值, 传送到P2口用于选通当前数码管的数值

12、, 如等于0xfe时,/ 选通P2.0口数码管/ dis_buf - 显于缓冲区基地址 / 先关闭所有数码管 P0 = dis_bufdis_index; / 显示代码传送到P0口 P2 = dis_digit; / dis_digit = _crol_(dis_digit,1); / 位选通值左移, 下次中断时选通下一位数码管 dis_index+; dis_index &= 0x07; / 8个数码管全部扫描完一遍之后,再回到第一个开始下一次扫描 void timer1() interrupt 3 sec100+; if(sec100 = 100) sec100 = 0; inc_sec(

13、);void inc_sec() sec+; if(sec sec = 0; inc_min(); / 秒个位 void inc_min() min+; if(min min = 0;void inc_hour() hour+; if(hour 23) hour = 0; 9) dis_buf0 = dis_codehour / 10; else dis_buf0 = 0xff; / 当小时的十位为0时不显示void delayms(unsigned char ms) / 延时子程序 unsigned char i; while(ms-) for(i = 0; i 120; i+);第四章 设

14、计结论及心得本次期末考核设计,原计划要做出实物,但因为对PCB图不够熟练,未能尽快画出,耽误了时间,比较遗憾。但通过这一个学期,在黄玉水老师及林海金队长的教学指导下,感觉收获颇丰。通过这一学期的智能车制作的学习,从智能车队的基本的介绍到单片机、C语言等基本内容的讲解使我对于智能车比赛有了基本的了解,并且对于本专业的基础技能有了一定的提升。对于最后的期末考评设计,使我巩固和加深了对电子线路基本知识和理解,提高了综合运用所学知识的能力。增强了根据课程需要选学参考资料,查阅手册,图表和文献资料的自学能力。通过独立思考,深入研究有关问题,学会自己分析解决问题的方法,并且培养了严谨的工作作风和科学态度。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1