如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
教学基本要求:(1)、熟悉8255、8155接口的C编程;(2)、掌握DAC0832接口的C编程;(3)、掌握ADC0809接口的C编程;(4)、掌握键盘接口的C编程;(5)、掌握LED显示器接口的C编程。教学重点:(1)、键盘接口的C编程;(2)、LED显示器接口的C编程。教学难点:(1)、在Keil中调试各接口程序一、8255应用的C编程向打印机输出字符串“WELCOME”#include<absacc.h>#include<reg51.h>#defineucharunsignedchar#defineCOM8255XBYTE[0x007f]#definePA8255XBYTE[0x007c]#definePC8255XBYTE[0x007e]voidtoprn(uchar*p)/*打印字符串函数*/{while(*p!=‘\0’){while((0x80&PC8255)!=0);/*查询等待打印机的BUSY状态*/PA8255=*p;/*输出字符*/COM8255=0x00;/*产生STB上升沿*/COM8255=0x01;p++;}}voidmain(void){ucharidataprn[]=“WELCOME”;COM8255=0x8e;/*输出方式选择命令字*/COM8255=0x01;toprn(prn);/*打印字符串*/}8155应用的C编程例:用8155控制打印机下面是打印“北京SPRING1999”的程序,其中汉字“北京”在硬汉字库的标准机内代码为B1B1H和BEA9H。打印机与8051采用中断的方式联络。程序名prnbyte.c.#include<absacc.h>#include<reg51.h>#defineucharunsignedchar#defineCOM8155XBYTE[0x7ff0]#definePA8155XBYTE[0x7ff1]#definePC8155XBYTE[0x7ff3]sbitBUSY=P3^3;ucharcodetrb[17]={0xb1,0xb1,0xbe,0xa9,0x20,0x53,0x50,0x52,0x49,0x4e,0x47,0x20,0x31,0x39,0x39,0x39,0x0a};/*北京SPRING1999*/uchart1=17;voidprt(uchard)/*打印一字符函数*/{PA8155=d;/*送打印字代码*/PC8155=0x00;/*产生/STB低电平*/PC8155=0x01;/*产生/STB上升沿*/while(BUSY);}voidmain(void){COM8155=0x0f;/*置命令字*/prt(0x1c);/*送中文打印方式命令字高字节*/prt(0x26);/*送中文打印方式命令字低字节*/EA=1;/*开CPU中断*/EX1=1;/*开外中断1*/while(1){}}voidint1()inerrupt2using1/*打印机中断服务函数*/{uchari;EA=0;for(i=0;i<t1;i++)/*打印一串字符*/prt(tab[i]);EA=1;EX1=0;/*关打印机中断*/}二、DAC0832应用的C编程将data1和data2数据同时转换为模拟量的C51程序如下:#include<absacc.h>#include<reg51.h>#defineINPUTR1XBYTE[0x8fff]#defineINPUTR2XBYTE[0xa7ff]#defineDACRXBYTE[0x2fff]#defineucharunsignedcharvoiddac2b(data1,data2)uchardata1,data2;{INPUTR1=data1;/*送数据到一片0832*/INPUTR2=data2;/*送数据到另一片0832*/DACR=0;/*启动两路D/A同时转换*/}例2:8051与DAC0832单缓冲区接口的数据转换举例。根据片选线确定FFFEH为DAC0832的端口地址。使运行输出端输出一个锯齿波电压信号的C51程序如下:#include<absacc.h>#include<reg51.h>#defineDA0832XBYTE[0xfffe]#defineucharunsignedchar#defineuintunsignedintvoidstair(void){uchari;while(1){for(i=0;i<=255;i=I++)/*形