欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
51單片機+OLED實現3D源程序 三維立體圖形變換顯示
[打印本頁]
作者:
超神NK
時間:
2020-3-6 11:16
標題:
51單片機+OLED實現3D源程序 三維立體圖形變換顯示
關于如何實現坐標轉換以及轉換方法這里不做討論,想了解原理以及計算過程可以自行查閱資料。
以下是很長時間之前我在網上下載別人的開源代碼,但是具體從哪里下載的我忘記了,今天就測試了一下,完美運行。
如果有人知道出處可以在評論區留言,我會加上出處。
下面是錄的OLED演示視頻:
https://player.youku.com/embed/XNDU3NTU3NzczNg==
維圖形顯示源碼功能描述:
三維圖形變換操作
transform_3D.c文檔中包含“變換算法”
projection.c文檔中包含“投影算法”
rotation_cube.c文檔應用“變換矩陣算法”和“投影算法”實現旋轉立方體
rotation_font3D.c文檔實現三維空間中旋轉圖片(優化算法)
三維圖形變換基于“變換矩陣算法”和“投影算法”來構建新坐標
顯示效果是 立方體繞Y軸旋轉,圖片也隨之旋轉。
以下是下載的單片機源代碼,大家可以移植一下,文件里面有說明,如下:
/*******************************************************************************
* 工程: 基于STC單片機“12864液晶顯示旋轉的立方體和圖片(優化算法)”實例
* 編譯: Keil uVersion 3
* 創建: 2014-11-26 15:57:14
* 更新: NULL
* 版本: 1.0
*******************************************************************************/
/*******************************************************************************
* 文檔: main.c
* 作者: Wu LianWei
* 描述: 1.三維圖形變換操作
* 2.transform_3D.c文檔中包含“變換算法”
* 3.projection.c文檔中包含“投影算法”
* 4.rotation_cube.c文檔應用“變換矩陣算法”和“投影算法”實現旋轉立方體
* 5.rotation_font3D.c文檔實現三維空間中旋轉圖片(優化算法)
* 6.三維圖形變換基于“變換矩陣算法”和“投影算法”來構建新坐標
* 7.顯示效果是 立方體繞Y軸旋轉,圖片也隨之旋轉。
*******************************************************************************/
#include "STC15F2K60S2.h"
#include "public.h"
#include "rtc.h"
#include "lcd_drive.h"
#include "dis_general.h"
#include "rotation_cube.h"
#include "rotation_font3D.h"
#include "font.h"
/******************************************************************************/
/* 程序變量定義 */
/******************************************************************************/
volatile bit flash; //閃爍標志
float idata turn; //轉向角度
uchar idata pic;
sbit BG = P0^5; //低電平有效
/******************************************************************************/
/* MAIN主程序 */
/******************************************************************************/
void main(void)
{
WDT_CONTR = 0x05; //關閉看門狗
//--------------------------------
RTC_cfg(); //配置實時時鐘(啟動定時器0)
LcdInit(); //LCD12864初始化
ClearScreen(); //清空屏幕
//------------
turn=0; //轉向角度置0
pic=0;
while(1)
{
if(T20msFlg) //每過20ms處理事件標志位
{
T20msFlg=0;
//-----------------
ClearDis(); //清緩存也可以理解為清屏
RotateCube2(0,turn,0); //立方體旋轉計算并寫入緩存區
//RotatePic32x32(&SETICO[pic][0],0,turn,0); //固定32*32旋轉
BG = 0; //打開LCD片選
RefreshScreen(); //將緩存區發送到LCD顯示
}
if(T100msFlg) //每過100ms處理事件標志位
{
T100msFlg=0;
//-----------------
turn+=1; //每過100ms將旋轉的角度加1
if(turn>=360)turn=0;
if(turn==280) //270
{
pic++;
if(pic>7)pic=0;
}
}
if(T500msFlg) //每過500ms處理事件標志位
{
T500msFlg=0;
//-----------------
flash=!flash; //閃爍標志
}
if(T1sFlg) //每過1s處理事件標志位
{
T1sFlg=0;
//-----------------
}
}
}
復制代碼
只需要以上4個.c和對應.h文件就可以移植了。
注意:使用LCD12864,是可以取屏幕數據的,OLED12864用SPI或I2C驅動是不能讀取屏幕數據,需要占用單片機102
4個RAM空間作為顯存區,這樣就可以實現。當然也可以不用顯存區,直接寫,這樣操作可能會覆蓋其他像素,看自己是否需要選擇。
個人測試:STC8A8K64S4A12 28M晶振 SPI是4分頻 刷新 OLED12864(SPI驅動) 整個屏幕 大約需要4.8ms。 推薦還是用STM32加DMA這樣就大大節省時間了。
全部資料51hei下載地址:
LCD三維顯示源碼分享.zip
(174.7 KB, 下載次數: 134)
2020-3-6 11:04 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
Kar98
時間:
2021-12-16 09:41
666666寫出這個的人肯定是個大神
作者:
dashiwork
時間:
2021-12-23 19:50
編寫這個的是個算法高手呀
作者:
a399288395
時間:
2022-1-6 23:03
源程序作者絕對這是個大神,厲害!
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1