日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IO 模拟 1/2 Bias、1/4 Duty的 LCD 驱动

發布時間:2025/4/5 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IO 模拟 1/2 Bias、1/4 Duty的 LCD 驱动 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

工作原理

方式一?
? ? 根據 LCD 的驅動原理可知,LCD 像素點上只能加上 AC 電壓,LCD 顯示器的對比度由 COM腳上的電壓值減去 SEG 腳上的電壓值決定,當這個電壓差大于 LCD 的飽和電壓就能打開像素點,小于 LCD 閾值電壓就能關閉像素點,LCD 型 MCU 已經由內建的 LCD 驅動電路自動產生 LCD 驅動信號,因此只要 I/O 口能仿真輸出該驅動信號,就能完成 LCD 的驅動。?由于LCD工作的最佳帖頻率通常在25Hz~250Hz,一般設置刷新頻率在 60Hz左右即可
現在考慮如何模擬出 COM 的波形
1/2 Bias 下 COM0~COM3 的 LCD 驅動波形如下:?


? ? 可以看出 4個COM 的輸出,通過配置 IO口為高阻即可使其輸出 VDD/2 電位,配置 IO為推挽輸出即可輸出高低電平。
? ? 因此在一個 COM 周期內,只要每隔一段時間設置 COM0~COM3 輸出對應的電壓即可得到 COM0~COM3 的波形。具體來說就是第一次 Time Base 中斷時設置 COM0 輸出VDD,其它 COM 輸出 VDD/2;第二次 Time Base 中斷時設置 COM0 輸出 VSS,COM1~COM3輸出 VDD/2,第三次 Time Base 中斷時設置 COM1 輸出 VDD,其它 COM 輸出 VDD/2;第四次 Time Base 中斷時設置 COM1 輸出 VSS,其它 COM 輸出 VDD/2;……;第八次中斷時設置 COM3 輸出 VSS,其它 COM 輸出 VDD/2。?



因為點亮 LCD 像素點需要 COM 與 SEG 有大于飽和電壓的電壓差,也就是 COM 與 SEG 有+VDD 或者-VDD 的電壓差,所以要點亮某個像素點,只要將對應的 SEG 輸出與 COM 相反的電壓即可。比如,當 COM0=VDD,只要 SEG=VSS 就可點亮對應像素點,當 COM0=VSS,只要 SEG=VDD 就可點亮對應像素點。考慮到 LCD 像素點點亮時先加+VDD 再加-VDD 可延長 LCD 的使用壽命,因此這里同一像素點也采用兩次點亮的方式。


方式二
? ??由上面所述我們知道,只要 COM、SEG 的電壓差為+VDD 或者-VDD 就可以點亮對應的 LCD筆段即像素點,因此,我們也可以不用模擬 COM 的 Timing 即可完成 LCD 的正常驅動。具體實現步驟如下:?
? 第一次中斷時設置 COM0 輸出 High,其它 COM 輸出 VDD/2,再根據要顯示的數據設置各個 SEG 的輸出?
? 第二次中斷時設置 COM1 輸出 High,其它 COM 輸出 VDD/2,再根據要顯示的數據設置各個 SEG 的輸出?
? 第三次中斷時設置 COM2 輸出 High,其它 COM 輸出 VDD/2,再根據要顯示的數據設置各個 SEG 的輸出?
? 第四次中斷時設置 COM3 輸出 High,其它 COM 輸出 VDD/2,再次根據要顯示的數據設置各個 SEG 的輸出?
? 第五次中斷時設置 COM0 輸出 Low,其它 COM 輸出 VDD/2,再根據要顯示的數據設置各個 SEG 的輸出?
? 第六次中斷、第七次中斷、第八次中斷參考上面的方法依次設置 COM1、COM2、COM3輸出 Low 并設置要顯示的數據?
? 循環進行以上的 8 次循環設置即可完成 LCD 的驅動?這種方式下 COM0~COM3 的 Timing 如下:?

? ? 對比以上兩種方法可以發現,COM 口的掃描頻率也就是帖頻率并沒有改變,然而從占用的資源上來說,第二種方式比第一種方式會占用更少的 ROM 空間。



應用電路




可以根據實際使用情況取舍 COM 和增減 SEG,比如 LCD 可以是 1/2 Duty,那么只需要保留兩個 COM 即可,SEG 同樣可以參照范例程序擴展。?
根據上述說明,分 8 次依次設置 COM0~COM3 的輸出,SEG 是輸出 VDD 還是輸出 VSS 需要根據要顯示的數字判斷,使用第一種驅動方式時 I/O 詳細電位設置請參考下表:



<ignore_js_op>?

這里也可以采用掃描的方式




結論
? ? 本范例驅動 4×8 LCD 顯示正常,用戶只需要稍加改造即可套用到所選用的 1/2 Bias 規格的LCD 上。?



我使用的是第一種掃描方式,大致流程圖如下,其中有些地方對的不怎么齊

?

?

void LCD_Control(void)

{

? ? ? ? static unsigned char state = 0;

? ??

? ? if(!Back_Light_Is_Open) ? ? ? ? ? ? ? ?// 背光檢測

? ? {

? ? ? ? P1CFG1 = _b01101010; ? ? ? ?// 配置COM1,COM2,COM3為高阻

? ? ? ? P3CFG0 = _b01010110; ? ? ? ?// 配置COM4為高阻

? ? ? ??

? ? ? ? return;

? ? }

? ??

? ? LCD_BACK_LIGHT_CONTROL(); ? ? ? ?// 背光控制

? ??

? ? Refresh_Wrod(); ? ? ? ? // 刷新字幕

? ? Refresh_Light_Flash(); ?// 刷新燈光動畫

? ? Refresh_Fan_Flash(); ? ?// 刷新風扇動畫

? ? Refresh_UV_Lamp_Flash();// 刷新消毒動畫

? ? Refresh_Down_Flash(); ? // 刷新下降動畫

? ? Refresh_Up_Flash(); ? ? // 刷新上升動畫

? ??

? ? ? ? switch(state)

? ? ? ? { ? // 01強推,10高阻

? ? ? ? ? ? ? ? case 0: ? ? ? ? ? ? ? ?// 掃描 COM1

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? COM_L(1);

? ? ? ? ? ? ? ? ? ? ? ? P1CFG1 = _b01100110; ? ? ? ?// 配置COM1為強推,COM2,COM3為高阻

? ? ? ? ? ? ? ? ? ? ? ? P3CFG0 = _b01010110; ? ? ? ?// 配置COM4為高阻

? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? COM1_SEG_SET();

? ? ? ? ? ? ? ? ? ? ? ? state = 1;

? ? ? ? ? ? ? ? }break;

? ? ? ? ? ? ? ? case 1: ? ? ? ? ? ? ? ?// 掃描 COM1

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? COM_H(1);

? ? ? ? ? ??

? ? ? ? ? ? COM1_SEG_SET_NOT();

? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? state = 2;

? ? ? ? ? ? ? ? }break;

? ? ? ? ? ? ? ? case 2: ? ? ? ? ? ? ? ?// 掃描 COM2

? ? ? ? ? ? ? ? {

? ? ? ? ? ? COM_L(2);

? ? ? ? ? ? ? ? ? ? ? ? P1CFG1 = _b01101001; ? ? ? ?// 配置COM2為強推,COM1,COM3為高阻

? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? COM2_SEG_SET();

? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? state = 3;

? ? ? ? ? ? ? ? }break;

? ? ? ? ? ? ? ? case 3: ? ? ? ? ? ? ? ?// 掃描 COM2

? ? ? ? ? ? ? ? {

? ? ? ? ? ? COM_H(2);

? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? COM2_SEG_SET_NOT();

? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? state = 4;

? ? ? ? ? ? ? ? }break;

? ? ? ? case 4: ? ? ? ? ? ? ? ?// 掃描 COM3

? ? ? ? ? ? ? ? {

? ? ? ? ? ? COM_L(3);

? ? ? ? ? ? ? ? ? ? ? ? P1CFG1 = _b01011010; ? ? ? ?// 配置COM3為強推,COM1,COM2為高阻

? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? COM3_SEG_SET();

? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? state = 5;

? ? ? ? ? ? ? ? }break;

? ? ? ? ? ? ? ? case 5: ? ? ? ? ? ? ? ?// 掃描 COM3

? ? ? ? ? ? ? ? {

? ? ? ? ? ? COM_H(3);

? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? COM3_SEG_SET_NOT();

? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? state = 6;

? ? ? ? ? ? ? ? }break;

? ? ? ? case 6: ? ? ? ? ? ? ? ?// 掃描 COM4

? ? ? ? ? ? ? ? {

? ? ? ? ? ? COM_L(4);

? ? ? ? ? ? ? ? ? ? ? ? P1CFG1 = _b01101010; ? ? ? ?// 配置COM1,COM2,COM3為高阻

? ? ? ? ? ? ? ? ? ? ? ? P3CFG0 = _b01010101; ? ? ? ?// 配置COM4為強推

? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? COM4_SEG_SET();

? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? state = 7;

? ? ? ? ? ? ? ? }break;

? ? ? ? ? ? ? ? case 7: ? ? ? ? ? ? ? ?// 掃描 COM4

? ? ? ? ? ? ? ? {

? ? ? ? ? ? COM_H(4);

? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? COM4_SEG_SET_NOT();

? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? state = 0;

? ? ? ? ? ? ? ? }break;

? ? ? ? default:

? ? ? ? {

? ? ? ? ? ? state = 0;

? ? ? ? }break;

? ? ? ? }

}
?

?

代碼中 COM4_SEG_SET_NOT(); 是 COM4_SEG_SET(); IO對應段取反所得

COM_L(4); 拉低 COM4口

其他類似
?


這里說明一點,我是先將 IO口電平輸出再配置功能的,因為在實際操作過程中會發現從高阻態轉換至強推模式時會有 零點幾微秒的脈沖干擾,具體寬度根據單片機速度來決定。
大概是因為單片機在從強推模式轉換至高阻態時 IO配置雖被改變,但輸出寄存器中的數據還會繼續保持,所以才會有脈沖干擾的吧,先將 IO口輸出電平改變再將 IO口狀態從高阻切換至強推時就不會有脈沖干擾了

<ignore_js_op>?
這是先配置 IO輸出狀態再修改輸出電平的,后來想了下,寄存器中應該是保存了最后一次 IO輸出的電平,所以從高阻態切換至強推后直接將輸出相應的電平,等到再次配置 IO口輸出的電平時這是才會改變,所以才會在開始的時候有一個低脈沖

總結

以上是生活随笔為你收集整理的IO 模拟 1/2 Bias、1/4 Duty的 LCD 驱动的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 性爱视频在线免费 | 最新av网址在线观看 | 榴莲视频黄色 | 亚洲国产123 | 人人模人人爽 | 啪啪免费 | 国产精品视频免费播放 | 99ri在线观看| 插插网站 | 拍国产真实乱人偷精品 | 日韩系列在线 | 国产乱子伦一区二区 | 男人的天堂免费 | 色啦啦视频 | 成人一级在线 | 自拍偷拍999 | 日本亚洲一区二区 | 国产免费一区二区三区免费视频 | jizz在线播放 | 精品国产乱码久久久久久预案 | 国产色视频网站 | 激情久久综合 | 国产高清av在线 | 人人做人人爱人人爽 | 韩国精品一区 | 六月婷婷在线观看 | 国产三级按摩推拿按摩 | 向日葵视频在线播放 | 法国空姐电影在线观看 | 国产精品15p | 欧美毛片基地 | 久久婷婷丁香 | 天堂中文视频 | 国产特级黄色片 | 国产精品精东影业 | 国产xxx在线| 亚洲精品a区 | 成人在线免费视频 | 国产精品一卡二卡三卡 | 一级香蕉视频在线观看 | 在线播放亚洲 | 国模叶桐尿喷337p人体 | 国产午夜视频在线播放 | 国产欧美成人 | 亚洲国产综合视频 | 亚洲国内自拍 | 性——交——性——乱免费的 | 中国爆后菊女人的视频 | 欧美成人午夜 | 被绑在床强摁做开腿呻吟 | 亚洲av日韩av不卡在线观看 | 在线免费观看日本 | 特级淫片裸体免费看 | 欧美日韩国产高清视频 | 91伦理| 色天天干| 久久精品国产网红主播 | ass精品国模裸体pics | 被两个男人吃奶三p爽文 | 麻豆久久久9性大片 | 综合激情在线 | a级一片 | 夜夜嗨av一区二区三区网页 | 玖玖爱免费视频 | 九九热国产在线 | 欧美一区二区免费在线观看 | 亚洲欧美日韩综合在线 | 高h av| 日本裸体xx少妇18在线 | 99热这里只有精品3 成年人黄色网址 | 黑丝扣逼 | 久久久不卡 | 免费国产a级片 | 91在线观看免费视频 | 日日夜夜网 | 日韩乱码视频 | 激情av中文字幕 | 欧美久久天堂 | 操mm影院 | 国产香蕉在线 | 美女免费视频网站 | 激情亚洲网 | 国产精品无码影院 | 免费麻豆国产一区二区三区四区 | 在线观看av黄色 | 吻胸摸激情床激烈视频 | www.色综合 | 亚洲第一天堂久久 | 一区二区三区人妻 | 国产精品久久久久久无人区 | 三级大片在线观看 | 精品一二区| 欧美巨乳在线观看 | 欧美性69 | 免费看污的网站 | 中文字幕三级视频 | 中文字幕无码日韩专区免费 | hd丰满圆润的女人hd | 五月天六月婷 |