aduc812系列 ZLG7290驱动程序
// ============================================================================
//========================= 电路接口示意图 ====================================
// MCS51系列单片机
// ADuC812
// |----------------|
// | XTIN |-------|
// | | 11.0592 MHz
// | XTOUT |-------|
// | |
// | |
// | | ZLG7290
// | | |-----------------|
// | | | |
// | | | |
// | P0.0 |-------------------------|KSDA1 |
// | P0.1 |-------------------------|KSCL1 |
// | P0.2 |-------------------------|KRST |
// | P3.2 |-------------------------|KINT |<------------------|
// | | | | |
// | | |-----------------| |
// |----------------| | |
// | |
// | |
// | |
// | |
// \|/ \|/
// |-------------------------------------| |------------|
// | | | |
// | 6 位数码管 为 深度 | |4*4按键输入 |
// | | | |
// |-------------------------------------| |------------|
// |----------------|
// | |
// | | ZLG7290
// | | |-----------------|
// | | | |
// | | | |
// | P0.2 |-------------------------| KRST |
// | P0.3 |-------------------------| KSDA2 |
// | P0.4 |-------------------------| KSCL2 |
// | | | |
// | | | |
// | | |-----------------|
// |----------------| |
// |
// |
// |
// |
// \|/
// |-------------------------------------|
// | |
// | 7 位数码管 前三位为 速度 |
// | 后四位为 时间 |
// |-------------------------------------|
//
//============================== 头文件 =======================================
#include <aduc812.h>
//#include <aduc841.h>
//#include <aduc842.h>
//#include <reg51.h>
//#include <intrins.h>
//#include <absacc.h>
//#include <math.h>
//#include <string.h>
//#include <stdio.h>
#include "7290.h"
//============================== 宏定义 =======================================
sbit KSDA1 = P0^0;
sbit KSCL1 = P0^1;
sbit KRST = P0^2;
sbit KSDA2 = P0^3;
sbit KSCL2 = P0^4;
sbit KINT = P3^2;
//定义键盘中断标志,FlagINT=1表示有键按下
volatile bit FlagINT = 0;
//============================== 函数声明 =====================================
void delayX10ms(int count);
void TickInit(); //中断初始化程序
//---- ZLG7290 调用程序函数 ----
void Delay(unsigned int t);//=== 延时10ms~655.36s ===
void SystemInit();//=== 系统初始化 ===
void ClearAll();//=== 清除所有显示 ===
void Test_DispBuf();//=== 测试直接写显存 ===
void Test_Download();//=== 测试下载数据功能 ===
void Test_ScanNum();//=== 扫描位数越少,数码管就越亮 ===
void Test_Flash();//=== 测试闪烁功能 ===
void Test_SegOnOff();//=== 测试段寻址功能 ===
void DispValue(char x, unsigned char dat);//=== 显示100以内的数值 ===
void DispHexValue(char x, unsigned char dat);//=== 以16进制方式显示数值 ===
void Test_Key(); //=== 测试按键功能 ===
//=============================================================================
//======================= 主函数 =============================================
//=============================================================================
void main(void)
{
unsigned int i;
TickInit();
SystemInit(); //系统初始化
Test_DispBuf(); //测试直接写显存
// Test_Download(); //测试下载数据
// Test_ScanNum(); //测试不同扫描位数
Test_Flash(); //测试闪烁功能
Test_SegOnOff(); //测试段寻址功能
Test_Key(); //测试键盘功能
while(1)
{
for (i=0; i<10; i++)
{
delayX10ms(10);
}
}
}
评论1
最新资源