




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、系 统 实 验 报 告学院 XXXXXXXXX专业 XXXXXX 姓名 XXXXX 学号 XXXXXXX 一、本设计拟实现的功能1时钟:四只数码管低二位059计数后给高二位059计数(即分秒计时),一只按键控制开始、结束;2.交通灯:灯和数码管结合,模拟十字路口的交通灯的点亮与熄灭,数码管倒计时显示时间。二、所用器件的功能、引脚图1.所用器件:AT89S51、74LS47、LM70852.所用器件功能、引脚图a)AT89S51AT89S51引脚图AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4k BytesISP(In-system programmable)的可反复擦写1000
2、次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,AT89S51在众多嵌入式控制应用系统中得到广泛应用。主要性能特点1、4k Bytes Flash片内程序存储器;2、128 bytes的随机存取数据存储器(RAM);3、32个外部双向输入/输出(I/O)口;4、5个中断优先级、2层中断嵌套中断;5、6个中断源;6、2个16位可编程定时器/计数器;7、2个全双工串行通信口;8、看门狗(WDT)电路;9、片内振荡器和时钟电路;10、与MCS-51兼容;1
3、1、全静态工作:0Hz-33MHz;12、三级程序存储器保密锁定;13、可编程串行通道;14、低功耗的闲置和掉电模式。b) 74LS4774LS47引脚图74LS47真值表74LS47是一种常用的BCD-七段数码管译码器驱动器,74LS47的输入端是四位二进制信号(8421BCD码),a、b、c、d、e、f、g是七段译码器的输出驱动信号,低电平有效。可直接驱动共阴极七段数码管, 是使能端,起辅助控制作用。使能端的作用如下:(1) LT是试灯输入端,当 LT=0, BI=1时,不管其它输入是什么状态,ag七段全亮;(2)BI静态灭灯输入 ,当 BI=0,不论其它输入状态如何,ag均为0,显示管熄
4、灭;(3)RBI动态灭零输入 ,当 LT=1, RBI=0时,如果 A3A2A1A0(ABCD)=0000时,ag均为各段熄灭;(4) RBO动态灭零输出 ,它与灭灯输入BI 共用一个引出端。当 在动态灭零时输出才为0。片间与 RBI配合,可用于熄灭多位数字前后所不需要显示的零。c) LM7805LM7085引脚图7805是常用到的稳压芯片,外围电路简单,输出电压为5V,可为51单片机提供工作电压。三、软件设计流程图开始初始化按键扫描判断按键决定执行相应按键程序不同按键的执行函数定时器数码管及交通灯输出函数结束四、源程序#include #define uchar unsigned char#
5、define uint unsigned int#define TH_SET 0x4C#define TL_SET 0x00/定时50ms的初始值#define RTime 24 / 红灯时间20s#define GTime 24 /绿灯时间20s#define YTime 3 /黄灯时间5ssbit KEY_A=P10;sbit KEY_B=P11;sbit GREEN1=P20; sbit GREEN2=P23;sbit RED1=P21; sbit RED2=P24; sbit YELLOW1=P22;sbit YELLOW2=P25;/位定义bit key1=0,key2=0;/四个按
6、键状态标志uint time1,time2;/time1,time2分别为键1、键2功能实现的时间变量uchar acount,keyflag,Status=1,yellow=0;/acount定时一秒标志/Status交通灯状态显示标志,keyflag按键选择标志,P黄灯闪烁定时标志void Delay(int n) /延时程序 uint i; uint j; for(i=0;in;i+)for(j=0;j200;j+);/定时器0void Timer0_SVR() interrupt 1 TH0=TH_SET; TL0=TL_SET; acount+; if(KEY_A=0)/按键扫描实现
7、暂停和按键切换 Delay(2); if(KEY_A=0) key1=key1 ; keyflag=1; while(!KEY_A); if(KEY_B=0) Delay(2); if(KEY_B=0) key2=key2 ; keyflag=2; while(!KEY_B); if(acount=20)/IntCount=20定时一秒 acount=0; /定时一秒恢复 if(keyflag=1) if(key1=1)/按下键1使交通灯显示时间自减time1-;if(time1=0) Status+;/显示时间为零时,切换交通灯状态 if(Status=5) Status=1; if(key
8、flag=2) if(key2=1) time2+; /按下键2时计时器时间自增 if(time2=3600)/计时满一小时时归零 time2=0; EA=1; /计时器数码管显示函数void xianshi1(void) P0=time2/600+0x10;Delay(2); /分的十位 P0=(time2/60%10)+0x20;Delay(2); /分的个位 P0=(time2%60)/10)+0x40;Delay(2); /秒的十位 P0=(time2%60%10)+0x80;Delay(2); /秒的个位 /交通灯数码管显示函数void xianshi2(void) P0=(time
9、1/10)+0x50;Delay(2); /秒的十位 P0=(time1%10)+0xA0;Delay(2); /秒的个位 yellow+; /计数器状态函数void Count()time2=0; key2=1; P2=0x80;while(1)if(keyflag=2) xianshi1();else break; /交通灯状态函数void TraLight(void) key1=1; time1=0; P2=0x80; while(1) if(Status=1&time1=0)/Status=1时南北向红绿灯亮 RED1=0;RED2=1;YELLOW1=0;YELLOW2=0;GREE
10、N1=1;GREEN2=0;time1=GTime; if(Status=2&time1=0)/Status=2时黄灯闪烁 RED1=0;RED2=0;YELLOW1=1;YELLOW2=1;GREEN1=0;GREEN2=0;time1=YTime; if(Status=3&time1=0)/Status=3时东西向红绿灯亮 RED1=1;RED2=0;YELLOW1=0;YELLOW2=0;GREEN1=0;GREEN2=1;time1=RTime; if(Status=4&time1=0)/Status=4时黄灯闪烁 RED1=0;RED2=0;YELLOW1=1;YELLOW2=1;G
11、REEN1=0;GREEN2=0;time1=YTime; if(yellow=50&key1)/Status=2或4时为黄灯,实现闪烁 if(Status=2|Status=4) yellow=0; YELLOW1=YELLOW1; YELLOW2=YELLOW2; if(keyflag=1) xianshi2(); else break; void choose(void) switch(keyflag) case 1:TraLight();break;/ 按键1 case 2:Count();break; / 按键2 default: break; /主函数void main()/初始化
12、定时器0 EA=1; ET0=1; TMOD=0x01; TH0=0x4c; TL0=0x00; P2=0x80; if(KEY_A=0) /按键扫描实现暂停和切换 Delay(5); if(KEY_A=0) key1=key1 ; keyflag=1; while(!KEY_A); if(KEY_B=0) Delay(5); if(KEY_B=0) key2=key2 ; keyflag=2; while(!KEY_B); TR0=1; while(1) choose(); 六、已实现的功能 1.KEYA:交通灯灯和数码管结合,模拟十字路口的交通灯的点亮与熄灭,数码管倒计时显示时间。 亮灯方
13、式:红(20s) 黄(闪烁5s) 绿(20s) 黄(闪烁5s) 红(20s) 数码管显示方式:南北向红绿灯20s 黄灯闪烁5s 东西向红绿灯20s 黄灯闪烁5s 南北向红绿灯20s 按下KEYA可实现计时与红绿灯暂停 2.KEYB:计时器 四只数码管低二位059计数后给高二位059计数(即分秒计时) 按下KEYB可实现计时器暂停七、调试过程步骤1:运行Keil uVision3新建工程并将程序代码输入,编译无错误后生成HEX文件。步骤2:将HEX文件通过专业烧录软件烧录到AT89S51芯片中。步骤3:上电按键操作,看是否符合设计要求。步骤4:根据上电操作结果修改程序,并再次烧录调试,直至满足设计要求为止。八、心得小结在焊接电路板的时候需要认真仔细,焊接时要先焊接体积较小的元器件,再焊接较大的元器件,这样比较方便,同时要看清三极管,排阻,二极管等带有方向性元器件,不要搞错方向,对于焊锡的把握适量即可,太多或太少都会导致虚焊。在编写程序的过程中,最重要的是想好框架,然后从小处入手,先完成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮外包经营合同范本
- 建筑委托采购合同范本
- 纱窗装修合同范本
- 踝关节骨折内固定术后护理查房
- 农机设备合同范本
- 安全机械租赁合同范本
- 仓库置物架安装合同范本
- 木板材购销合同范本
- 栏杆工人劳务合同范本
- 典当房转让合同范本
- 纺织品运输供货方案
- GB/T 11334-2005产品几何量技术规范(GPS)圆锥公差
- FZ/T 07013-2021绿色设计产品评价技术规范色纺纱
- 催产引产-课件
- 【社会层面】社会主义核心价值观
- 变更风险识别、评估记录表参考模板范本
- 2022年基本公共卫生服务项目宣传工作计划
- 癫痫病人的护理查房ppt课件(PPT 24页)
- DB45T2053-2019 重质碳酸钙单位产品能源消耗限额
- 红金简约风教师退休欢送会PPT通用模板
- 水准点复测记录(自动计算表)
评论
0/150
提交评论