當前位置:首頁 » 編程語言 » 凌陽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實踐過。。。