微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 弟30节:数码管通过闪烁来设置数据

弟30节:数码管通过闪烁来设置数据

时间:11-22 来源:互联网 点击:
interrupt 1
{
TF0=0;//清除中断标志
TR0=0; //关中断

key_scan(); //按键扫描函数

uiDpyTimeCnt++;//数码管的闪烁计时器

if(uiVoiceCnt!=0)
{
uiVoiceCnt--; //每次进入定时中断都自减1,直到等于零为止。才停止鸣叫
beep_dr=0;//蜂鸣器是PNP三极管控制,低电平就开始鸣叫。
// beep_dr=1;//蜂鸣器是PNP三极管控制,低电平就开始鸣叫。
}
else
{
; //此处多加一个空指令,想维持跟if括号语句的数量对称,都是两条指令。不加也可以。
beep_dr=1;//蜂鸣器是PNP三极管控制,高电平就停止鸣叫。
// beep_dr=0;//蜂鸣器是PNP三极管控制,高电平就停止鸣叫。
}

display_drive();//数码管字模的驱动函数

TH0=0xfe; //重装初始值(65535-500)=65035=0xfe0b
TL0=0x0b;
TR0=1;//开中断
}

void delay_short(unsigned int uiDelayShort)
{
unsigned int i;
for(i=0;i{
; //一个分号相当于执行一条空语句
}
}

void delay_long(unsigned int uiDelayLong)
{
unsigned int i;
unsigned int j;
for(i=0;i{
for(j=0;j<500;j++)//内嵌循环的空指令数量
{
; //一个分号相当于执行一条空语句
}
}
}

void initial_myself()//第一区 初始化单片机
{

/* 注释三:
* 矩阵键盘也可以做独立按键,前提是把某一根公共输出线输出低电平,
* 模拟独立按键的触发地,本程序中,把key_gnd_dr输出低电平。
* 朱兆祺51学习板的S1就是本程序中用到的一个独立按键。
*/
key_gnd_dr=0; //模拟独立按键的地GND,因此必须一直输出低电平

led_dr=0;//关闭独立LED灯
beep_dr=1; //用PNP三极管控制蜂鸣器,输出高电平时不叫。

hc595_drive(0x00,0x00);//关闭所有经过另外两个74HC595驱动的LED灯

TMOD=0x01;//设置定时器0为工作方式1

TH0=0xfe; //重装初始值(65535-500)=65035=0xfe0b
TL0=0x0b;

}

void initial_peripheral() //第二区 初始化外围
{

ucDigDot8=0; //小数点全部不显示
ucDigDot7=0;
ucDigDot6=0;
ucDigDot5=0;
ucDigDot4=0;
ucDigDot3=0;
ucDigDot2=0;
ucDigDot1=0;

EA=1; //开总中断
ET0=1; //允许定时中断
TR0=1; //启动定时中断

}

总结陈词:
这节讲了数码管通过闪烁来设置数据的基本程序,但是该程序只有一个窗口。实际应用中,有些项目会有几个窗口,而且每个窗口都要设置几个参数,这样的程序该怎么写?欲知详情,请听下回分解-----数码管通过一二级菜单来设置数据的综合程序。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top