十字路口交通灯控制系统及其论文(6)

2019-02-20 21:43

十字路口交通灯控制系统

delay(100);

P0=nanShiwei; //显示南北十位 P2&=0x70;

P2|=0x02; //在保护1602控制口的同时选择了第三个数码管亮 delay(100); //短暂延时

P0=nanGewei; //显示南北个位

P2&=0x70; //在保护1602控制口的同时选择了第四个数码管亮 P2|=0x03; delay(100); }

P2|=0x8f; anjian();

if(Be)

{ Bel(100);//nr=0;ny=0;ng=0;dr=0;dy=0;dg=0; Be=0; t=0; } } }

22

贺州学院本科生毕业论文(设计)

LCD1602函数

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 sbit RS = P2^4; //Pin4交通灯亮的情况(东西红南北红:33)(东西绿南北红:59 ) sbit RW = P2^5; //Pin5 (东西红南北绿:A6) (东西黄南北绿:84) sbit E = P2^6; //Pin6 (东西黄南北红:48) sbit x = P2^7; //Pin6 (东西红南北黄:22) #define Data P0//数据端口 unsigned char shiw,gew;

unsigned char nian1=20,nian2=11,yue=3,ri=1,day=2; unsigned int year=2011;

unsigned char code set[]={%unsigned char code set0[]={%unsigned char code tab1[]=\ 2011-03-1 TUE%unsigned char

xing[7][3]={{'S','U','N'},{'M','O','N'},{'T','U','E'},{'W','E','D'},{'T','H','U'},{'F','R','I'},{'S','A','T'}}; bit s; //数码管和1602的标志符号 unsigned char l=0; //573的标志符号 unsigned char second=0,count,fen=0,shi=0; void xianshi(); //声明 显示函数 void anjian(); //声明 按键盘函数

unsigned char nr=30,ny=5,ng=20,dr=30,dy=5,dg=20;//设置灯亮的时间

/******************************************************************/ /* 微秒延时函数 */ /******************************************************************/ void DelayUs(unsigned char us) {

unsigned char uscnt;

uscnt=us>>1; /*12MHz频率*/ while(--uscnt); }

/******************************************************************/ /* 毫秒函数声明 */ /******************************************************************/ void DelayMs(unsigned char ms) {

while(--ms) {

DelayUs(250); DelayUs(250); DelayUs(250); DelayUs(250); } }

void WriteCommand(unsigned char c)

code

十字路口交通灯控制系统

{

RS=0;

DelayMs(3); RW=0;

Data&=0x0f; Data|=c; E=1; E=0; c<<=4;

Data&=0x0f; Data|=c; E=1; E=0; }

/******************************************************************/ /* 写入数据函数 */ /******************************************************************/ void WriteData(unsigned char c) {

RS=0;

DelayMs(3); RS=1; RW=0;

Data&=0x0f; //保留低四位 Data|=c; E=1; E=0; c<<=4;

Data&=0x0f; //保留低四位 Data|=c; E=1; E=0; }

/******************************************************************/ /* 写入字节函数 */ /******************************************************************/ void ShowChar(unsigned char pos,unsigned char c) {

WriteCommand (pos);//写命令 WriteData (c); //写数据 }

/******************************************************************/ /* 1602中对年月日的处理函数声明 */

24

贺州学院本科生毕业论文(设计)

/******************************************************************/ void writ_str(unsigned char dat1,unsigned char dat2) {

shiw=dat2/10; gew=dat2; WriteCommand(dat1); WriteData(0x30+shiw); //液晶在确定的地址开始写两个字节 WriteData(0x30+gew); //液晶在确定的地址开始写两个字节 }

/******************************************************************/ /* 初始化函数 */ /******************************************************************/ void InitLcd() {unsigned char i; DelayMs(5);

WriteCommand(0x28); //display mode 28的为四个数据模式,38的为八个数据模式 WriteCommand(0x06); //显示光标移动位置 WriteCommand(0x0c); //显示开及光标设置 WriteCommand(0x01); //显示清屏

WriteCommand(0x80); //显示年月日入口地址 for(i=1;i<15;i++)

WriteData(tab1[i]); //初始化日期 }

/******************************************************************/ /* 延时子程序 */ /******************************************************************/ void delay(unsigned int s) { while(--s); }

/******************************************************************/ /* 1602显示函数 */ /******************************************************************/ void xianshi() { P2&=0x70; P2|=0x8f; l++; switch(l) //分开来显示 { case 1:ShowChar(0XC6,'0'+second/10); ShowChar(0XC7,'0'+second); break; case 2:ShowChar(0Xc3,'0'+fen/10); ShowChar(0Xc4,'0'+fen); break; case 3:ShowChar(0Xc0,'0'+shi/10);

十字路口交通灯控制系统

ShowChar(0Xc1,'0'+shi); break; case 4:ShowChar(0X8c,xing[day][0]); ShowChar(0X8d,xing[day][1]); ShowChar(0X8e,xing[day][2]); break; case 5:ShowChar(0X81,'0'+nian1/10); ShowChar(0X82,'0'+nian1); break; case 6:ShowChar(0X83,'0'+nian2/10); ShowChar(0X84,'0'+nian2); break; case 7:;ShowChar(0X85,'-'); ShowChar(0X86,'0'+yue/10); ShowChar(0X87,'0'+yue); break; case 9:ShowChar(0X88,'-'); ShowChar(0X89,'0'+ri/10); ShowChar(0X8a,'0'+ri); break; case 10:ShowChar(0XC5,':'); ShowChar(0XC2,':'); l=0;break; } P2&=0x7f; }

/******************************************************************/ /* 1602时间设置显示函数 */ /******************************************************************/ void xianshis() {

ShowChar(0Xc0,'0'+shi/10); ShowChar(0Xc1,'0'+shi); ShowChar(0XC2,':'); ShowChar(0Xc3,'0'+fen/10); ShowChar(0Xc4,'0'+fen); ShowChar(0XC5,':'); ShowChar(0XC6,'0'+second/10); ShowChar(0XC7,'0'+second); ShowChar(0X8c,xing[day][0]); ShowChar(0X8d,xing[day][1]); ShowChar(0X8e,xing[day][2]); ShowChar(0X81,'0'+nian1/10); ShowChar(0X82,'0'+nian1);

26


十字路口交通灯控制系统及其论文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016年九年级数学上册小专题六二次函数的实际应用(新版)新人教

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: