為了沒有m幣的夥伴,貼出一些**
#include "ht1623.h"
#include "delay.h"
//ht1623埠初始化
void lcd_gpio_init(void)
ht1623ddr|= cs_set|wr_set|da_set;//埠方向設定為輸出
ht1623port|= cs_set|wr_set|da_set;//埠初始化高電平
寫位址函式
void sendbit_1623(u8 byte,u8 cnt) //add 的高cnt 位寫入ht1623,高位在前
u8 i;
for(i=0;i
if(byte&0x80) ht1623_data=1;
else ht1623_data=0;
ht1623_wr=0;
delay_us(2); //速度快的微控制器必須加延時
ht1623_wr=1;
byte<<=1;
函式名稱:void ht1623wrcmd(u8 command)
功能描述: ht1623命令寫入函式
引數說明:command為寫入命令資料
說 明:寫入命令標識位100
void ht1623wrcmd(u8 command)
ht1623_cs=0;
sendbit_1623(0x80,4); //寫入標誌碼「100」和9 位command 命令,由於
sendbit_1623(command,8); //沒有使有到更改時鐘輸出等命令,為了程式設計方便
ht1623_cs=1; //直接將command 的最高位寫「0」
函式名稱:void ht1623wrdata(u8 addr,u8 sdata)
功能描述: ht1623在指定位址寫入資料函式
說 明:因為ht1623的資料位4位,所以實際寫入資料為引數的後4位
呼叫方法: ht1623wrdata(9,0x10);
void ht1623wrdata(u8 addr,u8 sdata)
ht1623_cs=0;
sendbit_1623(0xa0,3); //寫入標誌碼「101」
sendbit_1623(addr<<1,7); //寫入addr 的高6位
sendbit_1623(sdata<<4,4); //寫入data 的4位
ht1623_cs=1;
name: all_off(清除1623顯示)
void ht1623_all_off(void)
u8 addr;
for(addr=0;addr<96;addr++)
ht1623wrdata(addr,0x00);
name: all_on(全部點亮1623)
void ht1623_all_on(void)
u8 addr;
for(addr=0;addr<96;addr++)
ht1623wrdata(addr,0xff);
name: init_1623(初始化1623)
void lcd1623_init(void)
lcd_gpio_init(); //管腳初始化
delay_ms(100);
ht1623wrcmd(bias); //0x50 //4com,1/3bias 0x50 對比度比0x52大
ht1623wrcmd(rc256); //0x30 //使用內部振盪器
ht1623wrcmd(sysdis);//0x00 //關振系統蕩器和lcd偏壓發生器
ht1623wrcmd(wdtdis);//0x0a //禁止看門狗
ht1623wrcmd(sysen); //0x02 //系統振盪器開
ht1623wrcmd(lcdon); //0x06 //開啟lcd 偏壓發生器
怎麼點亮段碼屏 LCD段碼屏應用及驅動方案
第一種 如果微控制器內部整合了seg和com引腳的液晶驅動模組,直接用微控制器驅動。第二種 微控制器用3個io口跟ht1621進行通訊,用 ht1621驅動段碼屏。這節我重點介紹第二種。ht1621有4個com,分別是com3,com2,com1,com0。有32個seg,分別是seg0,seg1 ...
怎麼點亮段碼屏 如何判斷段碼液晶屏是沒有問題的?
在了解段碼液晶屏檢測時是否存在問題之前,先來說說如何定製液晶屏?定製液晶屏時需要提供幾個引數 尺寸 電壓 液晶屏的型別 顏色 com數 偏壓比 工作溫度 視角方向 是否需要背光 背光尺寸 顏色 亮度 連線方式 等。定製時,這些引數一定要確認清楚,不然就會浪費大家的時間,因為段碼液晶屏是定製產品,一般...
點亮LED燈(一)
想當初都是用彙編來編寫微控制器的程式,那滋味現在想來都是滿滿的回憶,還是用c語言寫起來爽快啊!用c寫微控制器程式,只需要引入標頭檔案即可,實際上該標頭檔案只是定義了特殊功能暫存器位址。為了今後使用方便,我們封裝乙個函式,用來開關led燈,通過引數來控制操作的p埠,並且引入掩碼來操作單個和多個bit位...