资源简介
毕业设计__基于单片机的公交车自动报站系统
1、下行控制报站:首先按下(下行设置按键),(下行指示灯)亮,然后按下(手动播报)按键控制播报下一站
2、上行控制报站:首先按上(上行设置按键),(上行指示灯)亮,然后按下(手动播报)按键控制播报下一站
3、按下关闭播报按键,则关闭播报功能和清除显示
(需要实物或者实物相关资料私聊)
代码片段和文件信息
#include
#define uint unsigned int
#define uchar unsigned char
#include “value.h“
sbit x_key=P1^3;
sbit s_key=P1^4;
sbit bz_key=P1^5;
sbit gb_key=P1^6;
sbit x_LED=P2^6;
sbit s_LED=P2^7;
uchar x_modes_mode;
uchar x_nums_num;
bit flag_200ms = 1;
uchar flag_c_en;
bit flag_100ms;
sbit dq=P3^2; //18b20 IO口的定义
uint temperature ; //温度变量
/************ 延时函数 *****************/
void delay_uint(uint z)
{
while(z--);
}
/********************************************************************
* 名称 : delay_1ms()
* 功能 : 延时1ms函数
* 输入 : q
* 输出 : 无
***********************************************************************/
void delay_1ms(uint q)
{
uint ij;
for(i=0;i for(j=0;j<115;j++);
}
uchar dis_lcd[10];
#include “lcd12864bu.h“
/******************显示时间函数***************************/
void dis_shijian() //显示时间
{
write_shu16(00*8shi0);
write_shuzi(10*22*8fuhao[1]0);
write_shu16(03*8fen0);
write_shuzi(10*25*8fuhao[1]0);
write_shu16(06*8miao0);
write_yhanzi(205*16qita[6]); //星期
//write_shu16(014*8week0);
if(week==0)
{
write_yhanzi(107*16xingqi[6]);
}
if(week==1)
{
write_yhanzi(107*16xingqi[1]);
}
if(week==2)
{
write_yhanzi(107*16xingqi[2]);
}
if(week==3)
{
write_yhanzi(107*16xingqi[3]);
}
if(week==4)
{
write_yhanzi(107*16xingqi[4]);
}
if(week==5)
{
write_yhanzi(107*16xingqi[5]);
}
if(week==6)
{
write_yhanzi(107*16xingqi[6]);
}
write_shu16(1*20*80x200);
write_shu16(1*22*8nian0);
write_shuzi(11*24*8fuhao[0]0);
write_shu16(1*25*8yue0);
write_shuzi(11*27*8fuhao[0]0);
write_shu16(1*28*8ri0);
write_shu18b20(1*212*8temperature0);
write_shuzi(11*214*8dian0);
}
/************初始化显示*****************/
void init_12864_dis() //初始化显示
{
cs1=1; //左屏开显示
cs2=0;
dis_shijian(); //显示时间
}
/***********************18b20初始化函数*****************************/
void init_18b20()
{
bit q;
dq=1; //把总线拿高
delay_uint(1); //15us
dq=0; //给复位脉冲
delay_uint(80); //750us
dq=1; //把总线拿高 等待
delay_uint(10); //110us
q=dq; //读取18b20初始化信号
delay_uint(20); //200us
dq=1; //把总线拿高 释放总线
}
/*************写18b20内的数据***************/
void write_18b20(uchar dat)
{
uchar i;
for(i=0;i<8;i++)
{ //写数据是低位开始
dq=0; //把总线拿低写时间隙开始
dq=dat&0x01; //向18b20总线写数据了
delay_uint(5); // 60us
dq=1; //释放总线
dat>>=1;
}
}
/*************读取18b20内的数据***************/
uchar read_18b20()
{
uchar ivalue;
for(i=0;i<8;i++)
{
dq=0; //把总线拿低读时间隙开始
value>>= 1; //读数据是低位开始
dq=1; //释放总线
if(dq==1) //开始读写数据
value|=0x80;
delay_uint(5); //60us 读一个时间隙最少要保持60us的时间
}
return value; //返回数据
}
/*************读取温度的值 读出来的是小数***************/
uint read_temp()
{
uint value;
uchar low; //在读取温度的时候如果中断的太频繁了,就应该把中断给关了,否则会影响到18b20的时序
init_18b20(); //初始化18b20
write_1
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4000 2016-07-23 11:20 仿真源程序\ds1302.h
文件 7582 2016-07-23 12:13 仿真源程序\lcd12864bu.h
文件 25073 2013-05-03 15:21 仿真源程序\nongli.h
文件 6376 2009-05-07 14:37 仿真源程序\STARTUP.A51
文件 14048 2016-07-23 12:13 仿真源程序\STARTUP.LST
文件 749 2016-07-23 12:13 仿真源程序\STARTUP.OBJ
文件 10368 2016-07-23 12:08 仿真源程序\value.h
文件 54196 2016-07-23 12:13 仿真源程序\公交报站仿真
文件 731 2018-06-10 09:02 仿真源程序\公交报站仿真.build_log.htm
文件 13607 2016-07-23 12:10 仿真源程序\公交报站仿真.c
文件 22383 2016-07-23 12:13 仿真源程序\公交报站仿真.hex
文件 57 2016-07-23 12:13 仿真源程序\公交报站仿真.lnp
文件 24855 2016-07-23 12:13 仿真源程序\公交报站仿真.LST
文件 67021 2016-07-23 12:13 仿真源程序\公交报站仿真.M51
文件 68845 2016-07-23 12:13 仿真源程序\公交报站仿真.OBJ
....... 1855 2016-07-23 12:13 仿真源程序\公交报站仿真.opt.bak
文件 152913 2016-07-23 12:13 仿真源程序\公交报站仿真.plg
....... 2170 2016-07-23 00:29 仿真源程序\公交报站仿真.Uv2.bak
....... 71994 2018-06-10 09:02 仿真源程序\公交报站仿真.uvgui.Administrator
....... 70899 2018-05-15 16:41 仿真源程序\公交报站仿真.uvgui_Administrator.bak
....... 5837 2018-05-15 16:41 仿真源程序\公交报站仿真.uvopt
....... 14043 2018-05-05 09:26 仿真源程序\公交报站仿真.uvproj
文件 1858 2016-07-23 00:29 仿真源程序\公交报站仿真_Opt.Bak
文件 0 2016-07-22 23:12 仿真源程序\公交报站仿真_Uv2.Bak
....... 5835 2018-05-05 09:26 仿真源程序\公交报站仿真_uvopt.bak
文件 123730 2018-05-21 15:41 仿真图\Last Loaded 用DS1302与12864LCD设计的可调式中文电子日历.DBK
文件 22383 2016-07-23 12:13 仿真图\公交报站仿真.hex
文件 123744 2018-06-10 09:04 仿真图\用DS1302与12864LCD设计的可调式中文电子日历.DSN
文件 1507 2018-06-10 09:04 仿真图\用DS1302与12864LCD设计的可调式中文电子日历.PWI
目录 0 2018-06-10 09:02 仿真源程序
............此处省略4个文件信息
- 上一篇:口腔医疗管理系统代码及安装
- 下一篇:数据结构试题(哈工大期末考试)
相关资源
- 单片机 公交车报站系统源程序
- 基于DS18B20的水温控制系统 仿真+程序
- 电子钟DS1302+LCD1602+89C52+proteus仿真图
- LCD12864读取DS1302模块,显示实时时间
- 按键控制MSP430F5529单片机控制灯闪烁
- STM32_DS1302
- 0011、采用实时时钟芯片DS1302+AT89C205
- STM32 DS1302驱动代码
- verilog实现pwm输出按键控制数码管显示
- STC15F2K48S2单片机DS1302获取时间通过串
- 利用DS1302实现单片机控制的电子万年
- STC89C52+LCD1602+DS1302电子时钟
- DS1302的Arduino函数库
- 基于AT89C52单片机的万年历protel原理图
- LCD12864 万年历 单片机 农历 显示 温度
- DS1302实时时钟,LCD1602显示,可调时间
- arm关于按键控制LED基本程序
- 基于STC15W408AS的串口DS1302时钟
- 51单片机 按键控制流水灯左右两边中
- 汇编实现pwm及按键控制
- TI的msp430f5529在12864液晶上通过四个按
- DS1302+1602液晶+测温多组闹铃
- zw_DS1302.zip
- 基于AT89C51单片机的电子计时牌设计
- MSP430G2553和DS1302时钟程序
- 用DS1302与LCD12864设计的可调电子钟及仿
- 电子万年历毕业设计基于AT89C51单片机
- CC2530按键控制流水灯
- 基于DS1302的4位LED滚动日历
- 单片机多功能数字时钟报告1602LCD Ds
评论
共有 条评论