标题: 51单片机proteus仿真 公交站播报程序 12864显示 [打印本页]

作者: CGS1273972181    时间: 2020-12-6 13:28
标题: 51单片机proteus仿真 公交站播报程序 12864显示
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


1、下行控制报站:首先按下(下行设置按键),(下行指示灯)亮,然后按下(手动播报)按键控制播报下一站
2、上行控制报站:首先按上(上行设置按键),(上行指示灯)亮,然后按下(手动播报)按键控制播报下一站
3、按下关闭播报按键,则关闭播报功能和清除显示

单片机源程序如下:

#include <reg51.h>
#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_mode,s_mode;
uchar x_num,s_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 i,j;
for(i=0;i<q;i++)
for(j=0;j<115;j++);
}
uchar dis_lcd[10];
#include "lcd12864bu.h"
/******************显示时间函数***************************/
void dis_shijian()    //显示时间
{
write_shu16(0,0*8,shi,0);
write_shuzi(1,0*2,2*8,fuhao[1],0);        
write_shu16(0,3*8,fen,0);   
write_shuzi(1,0*2,5*8,fuhao[1],0);        
write_shu16(0,6*8,miao,0);

write_yhanzi(2,0,5*16,qita[6]);   //星期
//write_shu16(0,14*8,week,0);
if(week==0)
{
  write_yhanzi(1,0,7*16,xingqi[6]);   
}
if(week==1)
{
  write_yhanzi(1,0,7*16,xingqi[1]);  
}
if(week==2)
{
  write_yhanzi(1,0,7*16,xingqi[2]);   
}
if(week==3)
{
  write_yhanzi(1,0,7*16,xingqi[3]);   
}
if(week==4)
{
  write_yhanzi(1,0,7*16,xingqi[4]);   
}
if(week==5)
{
  write_yhanzi(1,0,7*16,xingqi[5]);   
}
if(week==6)
{
  write_yhanzi(1,0,7*16,xingqi[6]);   
}
write_shu16(1*2,0*8,0x20,0);
write_shu16(1*2,2*8,nian,0);
write_shuzi(1,1*2,4*8,fuhao[0],0);   
write_shu16(1*2,5*8,yue,0);
write_shuzi(1,1*2,7*8,fuhao[0],0);   
write_shu16(1*2,8*8,ri,0);

write_shu18b20(1*2,12*8,temperature,0);   
write_shuzi(1,1*2,14*8,dian,0);
}
/************初始化显示*****************/
void init_12864_dis() //初始化显示
{
cs1=1; //左屏开显示
cs2=0;        
dis_shijian();    //显示时间   
}

全部资料51hei下载地址:
公交站播报.zip (190.49 KB, 下载次数: 156)

作者: 小蒋要努力    时间: 2022-4-15 13:25
怎么加一站
作者: lipengkun    时间: 2022-4-16 10:52
为什么External model DLL "D1WIO.DLL" not found. GLE=0x0000007E.


作者: gemxie    时间: 2022-9-9 11:30
谢谢楼主分享啦,先学习先啦
作者: sheep0736    时间: 2023-10-3 10:45

谢谢楼主分享啦,先学习学习。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1