標(biāo)題:
12864液晶(ST7920)串并實(shí)現(xiàn)各種類型源程序,注釋很詳細(xì)
[打印本頁(yè)]
作者:
TayTay222
時(shí)間:
2018-8-24 16:44
標(biāo)題:
12864液晶(ST7920)串并實(shí)現(xiàn)各種類型源程序,注釋很詳細(xì)
12864實(shí)用各種串并類型
0.png
(38.57 KB, 下載次數(shù): 41)
下載附件
2018-8-25 01:25 上傳
注釋非常詳細(xì)單片機(jī)驅(qū)動(dòng)的12864源程序如下:
#include<reg52.h>
#include<12864.h>
#define uchar unsigned char
#define uint unsigned int
uchar dis[110];
uchar a;
void delay1ms(uint xms)
{
unsigned int i,j;
for(i=xms;i>0;i--) /*或for(i=xms;i<0;i++)*/
for(j=110;j>0;j--); /*for(j=110;j<0;j++); 總循環(huán)數(shù)=xms*110*/
}
void uart_int(void)
{
SCON=0x50; // SCON=0x50是SM1=1和REN=1,設(shè)置串口方式1且允許串口接收。
//一般配合TMOD=0x20作串口中斷程序初始化。
PCON=0x00; // 是設(shè)置波特率不加倍(0x80加倍)
TMOD=0x20; // 是設(shè)置波特率發(fā)生器為定時(shí)器2為8位自動(dòng)重裝載模式
TH1 =0xFD;
TL1 =0xFD; /*SMOD是特殊功能寄存器PCON的第7位,可以控制波特率的,SMOD=1時(shí)串口通訊的波特率倍增, 為0時(shí)波特率不倍增。
SMOD=0時(shí):參數(shù)=256-fsoc/12/32/波特率; SMOD=1時(shí):參數(shù)=256-fsoc/12/16/波特率:
12M晶振或11.0592M晶振的情況下,當(dāng)SMOD=0時(shí),9600波特率的參數(shù)是0xfd,當(dāng)SMOD=1時(shí),9600波特率的參數(shù)是0xfa。
一個(gè)機(jī)器周期=12個(gè)時(shí)鐘周期
系統(tǒng)時(shí)鐘進(jìn)入串行波特率發(fā)生模塊后,會(huì)進(jìn)行32分頻 ,
如果你通過(guò)寄存器設(shè)置波特率倍增的話,這個(gè)32分頻就會(huì)改為16分頻。
分頻:主要是為了在內(nèi)核頻率與串口波特率之間找一個(gè)平衡,同時(shí)傳統(tǒng)51也要設(shè)法降低時(shí)鐘樹上外設(shè)部分的工作頻率、才能控制住功耗。*/
TR1 =1; // 是開啟定時(shí)器1
EA=1; // 是開啟總中斷。
ES=1; //是開啟串口中斷;
}
void display(unsigned char *p)//顯示
{
while(*p!='\0') /*'\0'是空格,一般是字符串的結(jié)束標(biāo)志,指針變量不等于‘/0’不會(huì)跳出循環(huán)*/
{
write_dat(*p++); /*調(diào)用函數(shù):寫顯示數(shù)據(jù)到LCD,將數(shù)組中的所有字符一個(gè)個(gè)地顯示在液晶屏幕上*/
delay1ms(1);
}
}
void serve() interrupt 4
{
dis[a++]=SBUF; /*單片機(jī)自動(dòng)將串行數(shù)據(jù)接收緩沖器中的數(shù)據(jù)取走給table[n]*/
RI=0; /*RI字面是接收中斷的意思,是串口接收中斷標(biāo)志,當(dāng)RI=1時(shí)表示串口接收完成,
SBUF中保存好了接收的數(shù)據(jù),此時(shí)申請(qǐng)中斷,如果ES=1,就進(jìn)入中斷服務(wù)程序了。*/
}
void main()
{
uart_int(); /*調(diào)用中斷初始化函數(shù)*/
lcd_init(); /*調(diào)用leo初始化函數(shù)*/
while(1)
{
write_cmd(0x98);
write_cmd(0x90); /*寫指令到第二行地址:串行數(shù)據(jù)顯示的位置*/
write_cmd(0x88);
write_cmd(0x80);
display(dis); /*調(diào)用dispiay函數(shù):將table的數(shù)組中輸入的所有字符一個(gè)個(gè)地顯示在液晶屏幕上*/
}
}
復(fù)制代碼
所有資料51hei提供下載:
12864液晶各種實(shí)現(xiàn)類型.zip
(147.25 KB, 下載次數(shù): 339)
2018-8-24 16:43 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
ttaniscy
時(shí)間:
2018-12-24 17:14
謝謝分享,自學(xué)中正好卡在12864和proteus關(guān)于12864的仿真,LZ的資料幫助很大
作者:
起名字好難啊
時(shí)間:
2019-8-19 20:37
好資料,先mark了
作者:
ruihuaido
時(shí)間:
2020-2-24 17:07
好資料,正是我要找的
作者:
SRDSG
時(shí)間:
2020-3-1 19:08
現(xiàn)在卡在顯示溫度上了,急需大神在線指導(dǎo)
作者:
shengjiaotu
時(shí)間:
2020-3-7 21:50
還是小hei論壇靠譜,找好久了終于找到想要的資料了
作者:
Liangkan
時(shí)間:
2020-3-8 13:14
下來(lái)看盾,不知好不好用。
作者:
danyja
時(shí)間:
2020-4-17 14:03
想仿真串行方式
作者:
danyja
時(shí)間:
2020-4-17 14:04
之前都沒(méi)成功,試試這個(gè)~
作者:
world_all
時(shí)間:
2025-1-13 15:20
16032的不知道能不能用
作者:
lileisgns
時(shí)間:
2025-1-13 16:20
還不錯(cuò)。就是看不懂。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1