- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
交通灯试验报告精选
实验四 交通灯试验
一、实验目的
按键、数码管、发光二极管综合应用编程技术
数据存储于EEPROM的技术(也可以不使用)
定时中断技术
按键中断技术
二、实验实现的功能
对每个路口(主干道、次干道)的绿灯时间,及黄灯时间的设定。
设定参数掉电后不丢失(如果不使用EEPROM,此功能可以不实现)。
紧急按键功能,当按下该键时,所有路口变成红灯,相当于交警指挥特殊车辆通过。再按该键,恢复正常显示。
三、系统硬件设计
1、元器件
STC51单片机,MAX232芯片,晶振,共阴极数码管,PC线路板,排针、电阻、电容、发光二极管、开关若干,串行接口,USB数据接口以及接口数据线
2、原理电路
四、系统软件设计
1、软件开发环境:
2、使用语言:C51
3、程序内容:见附表
五、实验过程中遇到的问题及解决方法
1、时钟倒计时过程,数码管显示数字有时不正常,电路板接触不良,按压后正常显示。
2、程序控制灯亮过程中,先是顺序与预期不符,更改程序后正常。
指导老师签字:
日期:
程序附表:
#include reg51.h
#define uchar unsigned char
#define uint unsigned int
unsigned char table[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfc,0x87,0xff,0xef};
unsigned char table6[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x6f};
sbit ksec=P0^5;
sbit h1=P3^6; sbit h2=P3^7;
sbit w1=P0^0 ;sbit w2=P0^1 ;
sbit w3=P0^2 ;sbit w4=P0^3 ;
sbit P24=P2^4 ;sbit P34=P3^4 ;
sbit P26=P2^6 ;sbit P20=P2^0 ;
sbit P25=P2^5 ;sbit P35=P3^5 ;
sbit P33=P3^3 ;sbit P23=P2^3 ;
sbit P27=P2^7 ;sbit P32=P3^2 ;
sbit P21=P2^1 ;sbit P22=P2^2 ;
uchar t,j,min=60,hour=60,mina=0,minb=0,houra=0,hourb=0; //正常走时时间变量
uchar min1=90,hour1=90,mina1=0,minb1=0,houra1=0,hourb1=0; //时间设定值变量
uchar min2=0,hour2=0,mina2=0,minb2=0,houra2=0,hourb2=0;
uchar moshi=0;
void initialize(void); //初始化
void show(void); //正常走时显示
void show1(void); //时间设定显示
void show2(void);
void show3(void);
void show4(void);
void show5(void); //闹钟设
void keyscan(void); //键盘扫描
void win(void);
void red(void);
void yellow(void);
void delay(unsigned int z)
{unsigned int x,y;
for(x=z;x0;x--)
for(y=110;y0;y--);
}
//******************主函数***************************
void main()
{
initialize();
while(1)
{
keyscan();
win();
switch(moshi)
{
case 0:show(); break; //显示正常走时
case 1:show5();break; //显示设置时间
}
}
}
//*****************定时器初始化**************************
void ini
文档评论(0)