#include
void SCIInit(uint8 SCINo, uint8 sysclk, uint16 baud) {
uint16 ubgs; ubgs=0; if(SCINo>2) { SCINo=2; }
ubgs=sysclk*(10000/(baud/100))/16;
SCI_BDH(SCINo)=(uint8)((ubgs&0xFF00)>>8); SCI_BDL(SCINo)=(uint8)(ubgs&0x00FF); SCI_C1(SCINo)=0b00000000; SCI_C2(SCINo)=0b00001100; }
void SCISend1(uint8 SCINo, uint8 ch) { if(SCINo>2) { SCINo=2; }
while(!(SCI_S1(SCINo)&0b1000000)); SCI_D(SCINo)=ch; }
uint8 SCIRe1(uint8 SCINo, uint8 *p) { uint16 k; uint8 i; if(SCINo>2){ SCINo=2; }
for(k=0;k<0xfbbb;k++)
if((SCI_S1(SCINo)&0b00100000)!=0) { i=SCI_D(SCINo);
15
*p=0x00; break; }
if(k>=0xfbbb) { i=0xff; *p=0x01; } return i; }
void SCISendN(uint8 SCINo, uint16 n, uint8 ch[]) { uint16 i; if(SCINo>2) { SCINo=2; }
for(i=0;i
uint8 SCIReN(uint8 SCINo, uint16 n, uint8 ch[]) { uint16 m; uint8 fp; m=0; if(SCINo>2) { SCINo=2; }
while(m
ch[m]=SCIRe1(SCINo,&fp); if(fp==1) { return 1; } m++;
16
} return 0; }
void SCISendString(uint8 SCINo, char *p) { uint32 k; if(SCINo>2) { SCINo=2; }
if(p==0) return; for(k=0;p[k]!='\0';++k) { SCISend1(SCINo,p[k]); } }
3.1.2 LCD子程序
LCD.h:
#ifndef LCD_H #define LCD_H
#include #include #include #define LCDdata PTAD #define LCDdataD PTADD #define LCDctrl1 PTCD #define LCDctrlD1 PTCDD #define LCDctrl2 PTFD #define LCDctrlD2 PTFDD #define LcdRS 4 #define LcdRW 6
17
#define LcdE 6 void LCDinit(void);
void LCDcommand(uint8 cmd); void LCDshow(uint8 str[]); #endif
LCD.c:
#include oid LCDinit(void) { uint16 i;
LCDdataD=0b11111111; LCDctrlD1 |=(1<
LCDcommand(0b00000110); LCDcommand(0b00010100); LCDcommand(0b00001100); }
void LCDcommand(uint8 cmd){ uint16 i;
for(i=0;i<1000;i++) asm(
18
LCDdata=cmd; LCDctrl2 |=(1<
LCDctrl2&=~(1<
void LCDshow(uint8 str[]){ uint8 i; LCDinit();
LCDctrl1&=~(1<
/* LCDctrl1&=~(1<
19
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库AW60单片机课程设计(4)在线全文阅读。
相关推荐: