⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mian.c

📁 61板实验指导书源代码
💻 C
字号:
//======================================================
//  The information contained herein is the exclusive property of
//  Sunnnorth Technology Co. And shall not be distributed, reproduced,
//  or disclosed in whole in part without prior written permission.
//           (C) COPYRIGHT 2003  SUNNORTH TECHNOLOGY CO.
//                     ALL RIGHTS RESERVED
//  The entire notice above must be reproduced on all authorized copies.
//=======================================================

//============================================================
//  工程名称: led10_c.scs
//  功能描述:  用C实现A/D采样数据在发光二极管上点亮
//  文件来源:《61板实验教程》"实验十 A/D采样数据在发光二极管上点亮“
//  硬件连接: 61板SPY0029接口选择3.3V,IOB高8位接至SEG接口控制LED的导通
//             IOB6连至DIG7通过ULN2003A控制8个LED的共阴极电平状态
//  IDE环境:  SUNPLUS u'nSPTM  IDE 1.8.0
//
//  涉及的库:
//  组成文件:
//  main.asm
//
//  日期:  2004/8/17
//===============================================

//*****************************************************************************/
// 文件名称: main.c
// 实现功能: 用C实现A/D采样数据在发光二极管上点亮
//            通过改变LINE_IN端口的模拟电压来改变IOB口输出的数据,
//            采用自动方式执行ADC转换,可以通过发光
//            二极管的点亮了解转换的数据值。
// 日期: 2004/8/17
//*****************************************************************************/
#define P_IOA_Attrib		(volatile unsigned int *)0x7003
#define P_IOB_Data			(volatile unsigned int *)0x7005
#define P_IOB_Buffer		(volatile unsigned int *)0x7006
#define P_IOB_Dir			(volatile unsigned int *)0x7007
#define P_IOB_Attrib		(volatile unsigned int *)0x7008

#define	P_ADC_Ctrl		    (volatile unsigned int *)0x7015 
#define	P_ADC_MUX_Ctrl		(volatile unsigned int *)0x702b 
#define	P_ADC_MUX_DATA		(volatile unsigned int *)0x702C
#define	P_DAC_Ctrl		    (volatile unsigned int *)0x702A 


#define P_Watchdog_Clear 	(volatile unsigned int *)0x7012


void Delay();
//============================================================= 
// 函数名称:    int main()  
// 日期:		20040817 	
// 功能描述:    AD采样数据在发光二极管上显示
// 硬件连接:   B口高八位控制8个发光二极管的亮灭,B6控制8个发光二极管的共阴极
//              A口低七位作为AD的输入,61板SPY0029接口选择3.3V,保证AD输入在有效范围之内。
// 语法格式:    int main() 
// 注意事项:    仅为用户模型
//=============================================================
int main()
{
    unsigned ADValue = 0x0000;
	
    *P_IOB_Dir=0xff40;           //设置B口高8位为同向低输出,设置B6口为高电平输出,保证LED共阴极接地
	*P_IOB_Attrib=0xff40;
	*P_IOB_Data=0x0040;
	
	*P_ADC_MUX_Ctrl = 0x0001;    //模拟电压信号通过LINE_IN1输入
	*P_ADC_Ctrl |= 0x0001;       //允许AD转换
    while (1)
    {	
        
        while (!(*P_ADC_MUX_Ctrl & 0x8000)); //等待AD转换完成
        ADValue = *P_ADC_MUX_DATA;           //读取转换值
        ADValue <<= 2;                       //通过led显示AD转换结果
        ADValue |= 0x0040;                   //保证LED阴极共地
        *P_IOB_Data = ADValue;      
        Delay();                             //延时显示
	}
}	

//============================================================= 
// 函数名称:   Delay()
// 功能描述:   实现延时	
//=============================================================
void Delay()
{									//延时子程序
	unsigned int i;
	for(i = 0; i < 0x50; i++){
		*P_Watchdog_Clear=0x0001;	//清WatchDog
	}	
}

//============================================================= 
//main.c结束
//=============================================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -