?? yjck.c
字號(hào):
//本程序?yàn)镕ranklin/keil C51源程序,可以在所有51系列(或兼容)單片機(jī)中運(yùn)行。
//完成功能:使用P3.1硬件串行接口,實(shí)現(xiàn)對(duì)KY系列智能液晶終端進(jìn)行控制.
//程序中給出了設(shè)計(jì)方法,通過(guò)修改TIMEth使本程序適用于各種晶振及各種波特率.
//本例為:當(dāng)通訊波特率=9600Hz,單片機(jī)晶振=18.432MHz時(shí),TIMEth=246
// 使用P3.1硬件串口,使用P1.2檢測(cè)"忙"信號(hào).
//本程序在Wave For windows ver 2.80仿真軟件編譯成功。
//在AT89C51(9600Hz,18.432MHz)中運(yùn)行通過(guò).運(yùn)行結(jié)果是:每隔1秒,顯示3個(gè)字母.
//=========================================================================================
#include "reg51.h"
#define uchar unsigned char
sbit ZD_DATA =P3^1; //向液晶終端輸出串行數(shù)據(jù)
sbit ZD_BUSY =P1^2; //接收液晶終端發(fā)來(lái)的"忙"(BUSY)信號(hào),可以連接于任意一位輸入引腳上.
//=========================================================================================
#define TIMEth 246 //修改TIMEth可使本程序適用于各種晶振及各種波特率.計(jì)算方法見(jiàn)文件尾。
//=========================================================================================
void FSsj(uchar A)//發(fā)送1字節(jié)A
{
while(ZD_BUSY); //如果終端"忙",則等待
SBUF = A; // 發(fā)送一字節(jié)
while( !TI ); // 等待本字節(jié)發(fā)送完畢
TI = 0; // 清除 TI
}
//=========================================================================================
void main(void)//運(yùn)行后每隔1秒,顯示3個(gè)字母.
{
TH1=TIMEth;PCON=0X80;TMOD=0X20;TCON=0X40;SCON=0XD0;//串口通道工作方式3
ZD_BUSY=1;
ZD_DATA=1;
while(1)
{
FSsj('A'); //顯示字母A
FSsj(0x55); //顯示字母U
FSsj(0xAA); //顯示字母γ
FSsj(' '); //空格
FSsj(0x1B); //延時(shí)1秒
FSsj('l');
FSsj(10);
}
}
//=========================================================================================
//;============================================================================
//;例1:當(dāng)通訊波特率F=9.6KHz,單片機(jī)晶振Z=18.432MHz時(shí),TIMEth=246
//;/ TIMEth=256-[(Z*1000)/192/F]=256-[(18.432*1000)/192/9.6]=246
//;/-------------
//;/例2:當(dāng)通訊波特率F=4.8KHz,單片機(jī)晶振Z=18.432MHz時(shí):
//;/ TIMEth=256-[(Z*1000)/192]/F=256-[(18.432*1000)/192/4.8]=236
//;/-------------
//;/例3:當(dāng)通訊波特率F=19.2KHz,單片機(jī)晶振Z=18.432MHz時(shí):
//;/ TIMEth=256-[(Z*1000)/192]/F=256-[(18.432*1000)/192/19.2]=251
//;/-------------
//;/例4:當(dāng)通訊波特率F=96KHz,單片機(jī)晶振Z=18.432MHz時(shí):
//;/ TIMEth=256-[(Z*1000)/192]/F=256-[(18.432*1000)/192/96]=255
//;/-------------
//;/例5:當(dāng)通訊波特率F=9.6KHz,單片機(jī)晶振Z=11.0592MHz時(shí):
//;/ TIMEth=256-[(Z*1000)/192]/F=256-[(11.0592*1000)/192/9.6]=250
//;/-------------
//;/例6:當(dāng)通訊波特率F=38.4KHz,單片機(jī)晶振Z=22.1184MHz時(shí):
//;/ TIMEth=256-[(Z*1000)/192]/F=256-[(22.1184*1000)/192/38.4]=253
//;/------------
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -