8051/8951八個七段顯示器掃描顯示 - 世界線變動率探測儀專題計畫



糖果現在單晶片越玩越上手,

甚至有點沉迷的地步=ˇ=|||

現在也能製作出單晶片的基本周邊電路了,

天啊....真的是跳坑了=口=|||

會不會哪天糖果還推出自有品牌平板呢?!

那我可能會限量銷售,維持保固品質,哇哈哈哈....

不過也希望會有人要買!!

不大量生產好像又浪費了成本?...

可不可以拿兩片玻璃夾心來做...

還真是不耐摔的平板...跑=3=

糖果只有有兩個晶片去控制8組七段顯示器喔XD

說真的,

實體電路與程式設計複雜度成反比,

晶片越多越簡單...越少越難設計=ˇ=|||

這是8951/8051最基本的電路,

左上方是石英震盪器,

負責產生時脈之用途XD

右邊為重置電路,就很像主機板的重新開機X=3=...

不過糖果沒有設計開關...反正只是臨時開發版,

不然燈管不好攜帶....

還要找高壓電...

用七段的話只要使用18650電池就好了XD

我發現我還真愛鋰電池=3=....

因為8051的IO能力真的很弱,

所以打算用7408反閘來強化XD

接好以後方現沒數字....笑

是不是反閘低電位時流不進去?...

耶應為輸出能力很弱,

所以就直接回流8051最快,

只是會造成亮度不足=ˇ=

以上是實際亮度...

因為加速快門,

所以就拍得出來掃描線XD

跟傳統電視一樣用掃描的=3=

帥吧XD

以下提供原始碼與解說~

//於數字管編號掃描,糖果提供學術用途。
#include <AT89X51.H>//宏定義,寄存器定位之用途無法運作請改#include <reg51.h>

unsigned char code font[] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x2A,0x1A,0x3A}; //0~9之陣列,10為左下點、11為右下點、12為兩個點。
unsigned char code scan[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //控制0~7號燈管之陣列
void delay(int ms);//延遲副程式宣告
main()//主程序
{
	char i;//宣告i值變數型態
	while(1){//使單晶片無限迴圈
		for(i=0;i<8;i++){//迴圈計數八次
			P3=0xFF;//清除第i隻燈管顯示
			P1=font[i];//調用code font陣列第i個的值,並使P1為陣列i紀錄之型態
		    P3=scan[i];//調用code scan陣列i紀錄之型態,使第i之燈管顯示i值
			delay(5);//延遲五毫秒
		}////迴圈計數八次尾端
	}//使單晶片無限迴圈的尾端
}//主程序尾端
void delay(int ms)//延遲副程式
{
	int i,j;//宣告兩個變數型態
	for(i=0;i<ms;i++)//迴圈遞減剩餘的毫秒數
		for(j=0;j<120;j++);//迴圈空轉使單晶片經過1毫秒
}//延遲副程式尾端


0 則迴響於“8051/8951八個七段顯示器掃描顯示 - 世界線變動率探測儀專題計畫

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

你可以使用這些 HTML 標籤與屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>