51单片机系统实验报告--计数器、交通灯.doc

51单片机系统实验报告--计数器、交通灯.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
系 统 实 验 报 告 学院 XXXXXXXXX 专业 XXXXXX 姓名 XXXXX 学号 XXXXXXX 一、本设计拟实现的功能 1.时钟:四只数码管低二位0~59计数后给高二位0~59计数(即分秒计时),一只按键控制开始、结束; 2.交通灯:灯和数码管结合,模拟十字路口的交通灯的点亮与熄灭,数码管倒计时显示时间。 二、所用器件的功能、引脚图 1.所用器件:AT89S51、74LS47、LM7085 2.所用器件功能、引脚图 a)AT89S51 AT89S51引脚图 AT89S51是一个低功耗,高性能CMOS?8位单片机,片内含4k Bytes?ISP(In-system programmable)的可反复擦写1000次的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兼容; 11、全静态工作:0Hz-33MHz; 12、三级程序存储器保密锁定; 13、可编程串行通道; 14、低功耗的闲置和掉电模式。74LS47是一种常用的七段数码管译码驱动器74LS47的输入端是四位二进制信号(8421BCD码),a、b、c、d、e、f、g是七段译码器的输出驱动信号,电平有效。可直接驱动共阴极七段数码管, 是使能端,起辅助控制作用。 使能端的作用如下: (1) LT是试灯输入端,当 LT=0, BI=1时,不管其它输入是什么状态,a~g七段全亮; (2)BI静态灭灯输入 ,当 BI=0,不论其它输入状态如何,a~g均为0,显示管熄灭; (3)RBI动态灭零输入 ,当 LT=1, RBI=0时,如果 A3A2A1A0(ABCD)=0000时,a~g均为各段熄灭; (4) RBO动态灭零输出 ,它与灭灯输入BI 共用一个引出端。当 在动态灭零时输出才为0。片间与 RBI配合,可用于熄灭多位数字前后所不需要显示的零。7805是常用到的稳压芯片 四、源程序 #include <reg51.h> #define uchar unsigned char #define uint unsigned int #define TH_SET 0x4C #define TL_SET 0x00 //定时50ms时的初始值(65536-19456)(Atmel@11.0592MHz) #define RTime 20 #define GTime 20 #define YTime 5 //红绿灯初始值,黄灯=5s,绿的=20s,红灯=20s sbit KEY_A=P1^0;sbit KEY_B=P1^1; sbit KEY_C=P1^2;sbit KEY_D=P1^3; sbit GREEN1=P2^0; sbit GREEN2=P2^3; sbit RED1=P2^1; sbit RED2=P2^4; sbit YELLOW1=P2^2;sbit YELLOW2=P2^5; //位定义 uchar IntCount,Status=1, time1,keyflag,p=0; //状态标志定义:IntCount定时一秒标志,Status交通灯状态显示标志,keyflag按键选择标志,P黄灯闪烁定时标志 uint time2,time3; //time1,time2,time3分别为键1、键2、键3功能实现的时间变量 bit k1=0,k2=0,k3=0,k4=0; //四个按键状态标志 //////////////////////////// //键扫描消抖和输出延时函数// //////////////////////////// void Delay(int n) { uint i; uint j; for(i=0;i<n;i++) {for(j=0;j<200;j++);} } //////////////////////////// //定时器0/////////////////// //////////////////////////// void Timer0_SVR() i

文档评论(0)

晓风迷梦 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档