NEC单片机的FIP应用
3.2 程序初始化
进行显示方式设置、I/O端口设置、中断系统设置始化的具体程序段如下:
DI(); /*关中断*/
DSPM0=0x00; /*9段显示,段显示方式,系统时钟4.9152MHz*/
DSPM1=0xB3; /*23位显示,亮度为2/16,显示周期为416.7μs*/
PM12=0x0F; /*P12端口的低四位用于键盘回读,设为输出模式*/
KSIF=0; /*清除中断请求标志*/
KSMK=0; /*清除中断屏蔽标志,允许INTKS中断*/
Khead=9; /*初始化键盘缓冲区*/
Krear=0; /*消抖动计数器置初值*/
Scandata=0x01; /*键盘扫描数据置初值*/
ScanFinish=0; /*一遍扫描结束标志置初值*/
KeyChanged=0; /*按键改变标志置初值*/
EI(); /*开中断*/
3.3 显示程序
下面的程序可实现在指定位置显示一个数字的功能。其中能数digit为要显示的数字,范围是0~9;position为显示位置,从右向左与0~11相对应。
void DisplayDigit(char digit,char position)
{if((digit10)(digit>=0)(position>=0)(position12)
/*在显示范围之内*/
{pokeb(0xFA60+position,DisplayCode[digit][1]);
/*编码的低字节*/
{pokeb(0xFA70+position,DisplayCode[digit][0])};
/*编码的高字节*/
}
中断处理程序流程如图3所示。

4 小结
在其他单片机系统中,通常由软件定时中断来逐位刷新显示和扫描键盘,这样将增加软件的复杂性,并且会占用较多的CPU资源。而μPD780208所具有的FIP显示控制/驱动器可实现硬件的自动显示刷新功能,在初始位置完成后,软件的工作只是将显示数据按要求的格式放入FIP显示RAM区而无需额外编程,由于定时刷新显示的作由硬件完成,因此在很大程序上降低了CPU的资源占用率。同时,由于FIP显示时序中提供有键盘扫描时序,从而进一步简化了软件编程,并且减少了定时中断占用。这样,在单片机的资源并不丰富的资源条件下,FIP显示控制/驱动器的优越性得到了充分体现。
蜂鸣器相关文章:蜂鸣器原理
评论