开始初始化显示设置时间NKey3按下与否Y刷新显示、暂停、等待开始NKey0等于1NY倒计时开始定时定时时间到否Y报警显示YN暂停键按下第四节结束?NYS2/S3/S4是否按下Y结束对应两队分数调整显示 图3-2 主程序流程图
以下举例介绍部分子程序。 3.2.1延时子函数
void delay(unsigned char c)//延时子函数 {
unsigned char x,y; for(x=c;x>0;x--) for(y=80;y>0;y--); }
3.2.2 液晶显示分数刷新子程序
void writsfm(unsigned char dui,unsigned char fen)
11
{
unsigned char i,j,k;//用3位数显示分数 i=fen/100; j=fen0/10; k=fen;
if(0==f||1==f)//上下半场A,B两队分数显示 的位置不同 {
if(0==dui) {
writcom(0x80+4); writdata(i+0x30); writdata(j+0x30); writdata(k+0x30);
}
if(1==dui) {
writcom(0x80+11); writdata(i+0x30); writdata(j+0x30); writdata(k+0x30);
}}
if(2==f||3==f) {
if(0==dui) {
writcom(0x80+11); writdata(i+0x30); writdata(j+0x30); writdata(k+0x30);
}
if(1==dui)
12
{
writcom(0x80+4); writdata(i+0x30); writdata(j+0x30); writdata(k+0x30); }}}
液晶显示控制分为写数据控制和写命令控制,写数据与写命令分时操作。由于液晶写数据和写命令子函数中都存在延时操作,且液晶写数据命令必须紧跟相应的写命令子函数后执行,所以分数刷新显示函数及下面的定时器中断后的时间刷新显示函数都应放在中断函数外执行,避免正在执行写命令操作时发生中断跳转,从而影响后面的写数据操作。 3.2.3 T0中断程序
void tim0() interrupt 1//定时器0中断入口 {
TH0=(65536-50000)/256; TL0=(65536-50000)%6; aa++;
if(0==f||1==f||2==f) {
if(aa==20) { aa=0; miao--; if(255==miao) { miao=59; fen--; }
if(0==fen&&0==miao) { f++; flag=0;
13
fen=time; TR0=0; TR1=1; }}} if(3==f) {
if(20==aa) { aa=0; miao--; if(255==miao) { miao=59; fen--; }
if(0==fen&&0==miao) {
P2_0=0;//全场结束LED显示 TR0=0; } } } }
3.2.4 设置时间子函数
void settime(void)//设置时间函数入口{
unsigned char flag; time=0; fen=time; writtime(); while(!flag) {
if(0==key3) {
14
delay(20); if(0==key3) {
while(!key3); flag=1; }}
if(0==key1) {
delay(20); if(0==key1) {
while(!key1); time++; fen=time; writtime(); }}
if(0==key2) {
delay(20); if(0==key2) {
while(!key2); time--; fen=time; writtime(); }}}}
第四章 硬件焊接与调试
对照原理图进行焊接工作,应先把硬件依次正确插到电路板上相应的位置,然后再次检查器件是否都正确,确定无误后进行焊接。在焊接的过程中要注意不要将相临的两个引脚焊接在一起,防止短路影响使用。
15
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库11级电气自动化(对外)1班 - 图文(4)在线全文阅读。
相关推荐: