基于单片机c51的简单万年历设计本科毕设论文 联系客服

发布时间 : 星期二 文章基于单片机c51的简单万年历设计本科毕设论文更新完毕开始阅读554300c6f021dd36a32d7375a417866fb84ac0b0

福建工程学院软件学院 软件工程物联网工程

八、程序设计

8.1. 流程图

开始 显示“SHOWTIME”界面 WELCOME N

设置键按下? Y Y

显示当前时间

键盘数字进键盘自增、自 Y 行时间设置 减进行时间

设置

按键开始按下?

开始计时

第 11 页 共 26 页

福建工程学院软件学院 软件工程物联网工程

8.2. 源代码

#include

#define uchar unsigned char #define uint unsigned int

uchar code Buffer[4]={0xfe,0xfd,0xfb,0xf7};

uchar code table[]={'0','1','2','3','4','5','6','7','8','9','<','>','+','-','!','@'}; uchar

w[14]={0x83,0x84,0x85,0x86,0x88,0x89,0x8b,0x8c,0xc4,0xc5,0xc7,0xc8,0xca,0xcb}; uchar a[14];

sbit E=P2^7; //1602使能引脚 sbit RW=P2^6; //1602读写引脚 sbit RS=P2^5; //1602数据/命令选择引脚

void Delay(uint xms); //延时 void Time0_Init(); //中断请求 void timer1_int(void); //中断 void charge(); //判断秒分时日月等是否大于额外值,若大于向上一位加一void ftime(); //初始时间 void timeon(); //计时 void add(); //自加 void sub(); //自减 void wcmd(uchar del); //1602写指令 void write(uchar del); //1602写数据 void L1602_init(void); //1602初始化 void second(); //秒显示 void minute(); //分显示 void hours(); //时显示 void days(); //日显示 void month(); //月显示 void years(); //年显示 void other(); //符号显示 void number(); //键盘输入数字

uint count,t; //中断执行次数,光标位置参数 uchar sec=0; //初始秒 uchar min=0; //初始分 uchar hour=0; //初始时 uchar day=0; //初始日 uchar mon=0; //初始月

第 12 页 共 26 页

code

福建工程学院软件学院 软件工程物联网工程

uchar yearh=0; //初始年前两位 uchar yearl=0; //初始年后两位

//1602命令函数

void wcmd(uchar del) { P0 = del; RS = 0; RW = 0; E = 1; Delay(1); E = 0; Delay(1); }

// 1602写数据函数 void write(uchar del) { P0 = del; RS = 1; RW = 0; E = 1; Delay(1); E = 0; Delay(1); } // 1602初始化 void L1602_init(void) { wcmd(0x38); wcmd(0x38); wcmd(0x38); wcmd(0x0e); wcmd(0x06); wcmd(0x01); }

//显示秒 void second()

第 13 页 共 26 页

福建工程学院软件学院 软件工程物联网工程

{

uchar i,j; i=sec/10; j=sec; wcmd(0xca); write(table[i]); write(table[j]); }

//显示分 void minute() {

uchar i,j; i=min/10; j=min; wcmd(0xc7); write(table[i]); write(table[j]); }

//显示时 void hours() {

uchar i,j; i=hour/10; j=hour; wcmd(0xc4); write(table[i]); write(table[j]); }

//显示日 void days() {

uchar i,j; i=day/10; j=day; wcmd(0x8b); write(table[i]); write(table[j]); }

第 14 页 共 26 页