当前位置:首页 » 编程语言 » 凌阳c语言编程
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

凌阳c语言编程

发布时间: 2022-08-21 16:33:32

① 基于凌阳spce061a单片机的交通信号灯课程设计(用c语言编程)

好像凌阳有现成的毕业设计礼包,你可以在网上搜索一下。

② 急急急:凌阳61A单片机编写C语言10秒倒计时

找个计数器的代码来改改就好,粉简单的。
计数器利用中断就最简单。你自己可以算算,一秒需要进多少次中断?然后满足一秒的计数了就显示点亮或者灭掉一个LED数码管的段位,没什么难度的吧。自己写写有助于理解~~

③ 求一个凌阳单片机的计时器c语言程序,哪位大神帮帮忙急急急急急

不知道这个是不是你要的
//======================================================
// 文件名称: Clock.c
// 功能描述: 计时模块,使用2Hz时基中断
// 维护记录: 2006-08-30 v1.0
//======================================================

#include "spce061a.h"

typedef struct STR_CLOCK // 定义时钟结构体
{
unsigned int Year;
unsigned int Mon;
unsigned int Day;
unsigned int Hour;
unsigned int Min;
unsigned int Sec;
unsigned int HalfSec;
}CLOCK;

CLOCK Clock = {2006, 1, 1, 0, 0, 0, 0}; // 时钟初始值2006年1月1日0点0分

const unsigned int Month_Day[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
// 每月包含的天数

//=============================================================
// 语法格式: void Clock_ISR(void);
// 实现功能: 计时模块的2Hz中断服务程序,应在IRQ5_2Hz中断中调用
// 参数: 无
// 返回值: 无
//=============================================================
void Clock_ISR()
{
if(Clock.HalfSec==0) // 0.5秒
Clock.HalfSec = 1;
else
{
Clock.HalfSec = 0;
Clock.Sec += 1;
if(Clock.Sec==60) // 处理秒进位
{
Clock.Sec = 0;
Clock.Min += 1;
if(Clock.Min==60) // 处理分进位
{
Clock.Min = 0;
Clock.Hour += 1;
if(Clock.Hour==24) // 处理小时进位
{
Clock.Hour = 0;
Clock.Day += 1; // 处理天进位
if(Clock.Day > Month_Day[Clock.Mon-1])
{
if(Clock.Mon!=2 || (Clock.Year&0x03)!=0 || Clock.Day>29)
{ // 如果是闰年则2月29日不进位
Clock.Day = 1;
Clock.Mon += 1;
if(Clock.Mon > 12) // 处理月进位
{
Clock.Mon = 1;
Clock.Year += 1;
}
}
}
}
}
}
}
}

//=============================================================
// 语法格式: void Clock_Start(void);
// 实现功能: 开始计时
// 参数: 无
// 返回值: 无
//=============================================================
void Clock_Start()
{
*P_INT_Ctrl_New |= C_IRQ5_2Hz;
__asm("IRQ ON");
}

//=============================================================
// 语法格式: unsigned int Clock_GetYear();
// 实现功能: 查询当前年
// 参数: 无
// 返回值: 当前年
//=============================================================
unsigned int Clock_GetYear()
{
return Clock.Year;
}

//=============================================================
// 语法格式: unsigned int Clock_GetMon(void);
// 实现功能: 查询当前月
// 参数: 无
// 返回值: 当前月
//=============================================================
unsigned int Clock_GetMon()
{
return Clock.Mon;
}

//=============================================================
// 语法格式: unsigned int Clock_GetDay(void);
// 实现功能: 查询当前日
// 参数: 无
// 返回值: 当前日
//=============================================================
unsigned int Clock_GetDay()
{
return Clock.Day;
}

//=============================================================
// 语法格式: unsigned int Clock_GetHour(void);
// 实现功能: 查询当前小时
// 参数: 无
// 返回值: 当前时
//=============================================================
unsigned int Clock_GetHour()
{
return Clock.Hour;
}

//=============================================================
// 语法格式: unsigned int Clock_GetMin(void);
// 实现功能: 查询当前分
// 参数: 无
// 返回值: 当前分
//=============================================================
unsigned int Clock_GetMin()
{
return Clock.Min;
}

//=============================================================
// 语法格式: unsigned int Clock_GetSec(void);
// 实现功能: 查询当前秒
// 参数: 无
// 返回值: 当前秒
//=============================================================
unsigned int Clock_GetSec()
{
return Clock.Sec;
}

//=============================================================
// 语法格式: void Clock_SetYear(unsigned int Year);
// 实现功能: 设置年
// 参数: Year - 年
// 返回值: 无
//=============================================================
void Clock_SetYear(unsigned int Year)
{
Clock.Year = Year;
}

//=============================================================
// 语法格式: void Clock_SetMon(unsigned int Mon);
// 实现功能: 设置月
// 参数: Mon - 月
// 返回值: 无
//=============================================================
void Clock_SetMon(unsigned int Mon)
{
Clock.Mon = Mon;
}

//=============================================================
// 语法格式: void Clock_SetDay(unsigned int Day);
// 实现功能: 设置日
// 参数: Day - 日
// 返回值: 无
//=============================================================
void Clock_SetDay(unsigned int Day)
{
Clock.Day = Day;
}

//=============================================================
// 语法格式: void Clock_SetHour(unsigned int Hour);
// 实现功能: 设置小时
// 参数: Hour - 时
// 返回值: 无
//=============================================================
void Clock_SetHour(unsigned int Hour)
{
Clock.Hour = Hour;
}

//=============================================================
// 语法格式: void Clock_SetMin(unsigned int Min);
// 实现功能: 设置分
// 参数: Min - 分
// 返回值: 无
//=============================================================
void Clock_SetMin(unsigned int Min)
{
Clock.Min = Min;
}

//=============================================================
// 语法格式: void Clock_SetSec(unsigned int Sec);
// 实现功能: 设置秒
// 参数: Sec - 秒
// 返回值: 无
//=============================================================
void Clock_SetSec(unsigned int Sec)
{
*P_TimeBase_Clear = 0x01; // 时基计数器清零
Clock.Sec = Sec;
Clock.HalfSec = 0; // 半秒计数清零
}

④ 凌阳C语言编程

8个灯时,为什么LedControl == 0x100?

LedControl == 0x100 == 1 0000 0000b 这是溢出的情况。

if(LedControl == 0x100) LedControl = 0x0001;//如果(第9个灯)改成第1个灯。

0灯灭,1灯亮,说的很明白了,再不懂没办法了。

⑤ 凌阳61A单片机编写C语言10秒倒计时

你看你用多大的晶振了,然后利用计时器就行,利用50ms定时,到时再循环200次,180次……依次下去不就能够实现10s倒计时了吗,我只能提供你具体算法。真正的程序就不给你了,这个程序主要难在计数初值的设定,实在不行你可以上网上搜索计数初值工具等小软件,它们给你算。

⑥ 凌阳61单片机C语言编程

你的键盘是矩阵键盘还是独立键盘?
显示是数码管还是液晶显示屏?
数码管循环点亮 是什么意思?
这些不说清楚没办法写程序

⑦ 凌阳单片机 用C语言写中断的格式 该怎么写啊

#include
"spce061a.h"
//功能:IOA接LED灯,低电平亮,高电平灭。每隔1S闪烁1次
void
IRQ5(void)
__attribute__
((ISR));//4HZ中断在IRQ5里面
unsigned
int
count_1s=0;//1秒计数
int
main()
{
__asm("INT
OFF");//关闭总中断
*P_IOA_Dir=0xffff;//IOA为输出
*P_IOA_Attrib=0xffff;//IOA为无反相
*P_IOA_Data=0xffff;//先初始化输出1
*P_INT_Ctrl=C_IRQ5_4Hz;//允许4HZ中断
__asm("INT
IRQ");//打开IRQ总中断
while(1)
{
*P_Watchdog_Clear=1;//不停清狗,等待中断
}
return
0;
}
void
IRQ5(void)//IRQ5中断包含2HZ中断和4HZ中断
{
if((*P_INT_Ctrl)&C_IRQ5_4Hz)//判断是否由4HZ引起的中断
{
if(++count_1s==4)//是否进入4次中断了?
{
count_1s=0;//计数清零
*P_IOA_Data^=0xffff;//IOA取反,使得LED灯闪烁
}
*P_INT_Clear=C_IRQ5_4Hz;//清除4HZ中断标志
}
else//否则是由2HZ引起的。(该else可以不用写的,因为之前没有允许2HZ中断,所以IRQ5必然是因4HZ中断进入)
{
*P_INT_Clear=C_IRQ5_2Hz;//没用到2HZ,直接清除2HZ中断标志
}
}

⑧ 关于凌阳单片机c语言编程的菜鸟问题

这个是二进制方面的
1<<8是把1转换成二进制数后左移8位
举个简单的例子
3<<1
就是把3转换成二进制11,然后左移1位就是1(1.1无法表示所以是1)了

⑨ AD DA转换,用凌阳单片机c语言编程,怎么接入

AD:
以8通道/10位的AD芯片举例,模拟信号从任意通道介入(同时需要在AD配置寄存器设置为对应的通道),AD转换后得到10位数据,模拟电压=(参考电压/2^10)*10位数据。
那10位数据线是接在你的GPIO上的,所以很容易计算。
只能给你说这么多了,我也只知道写理论,还没AD实践过。。。