首页| 行业标准| 论文文档| 电子资料| 图纸模型
购买积分 购买会员 激活码充值

您现在的位置是:团子下载站 > 其他 > mega128/DS12C887的驱动程序

mega128/DS12C887的驱动程序

  • 资源大小:1133
  • 上传时间:2021-08-22
  • 下载次数:0次
  • 浏览次数:39次
  • 资源积分:1积分
  • 标      签: mega

资 源 简 介

画了一个128的板子,正在调试程序,先和大家分享一下12C887的程序,能完成时钟的基本功能,如需要增加其他功能,更是方便添加 欢迎指正!!!其他程序正在出炉中。 #include #include #include "lcd.h"typedef unsigned char uchar;typedef unsigned int uint; void port_init(void){ //访问外部ram的总线端口 PORTA = 0x00; DDRA  = 0x00;  PORTC = 0x00;  DDRC  = 0xFF;}   void check_busy(uchar cs)               {   uchar temp;  while(temp)             {      if(cs)        temp=R_staus&0X80;               //将忙状态读到temp中进行确定  else     temp=L_staus&0X80; }} void lcdcommand(uchar cs,uchar com){  if(cs)   {     check_busy(1);    R_command=com;   }  else   {      check_busy(0);    L_command=com;   }} /*************************向LCD写数据函数*************************/ void lcddatas(char cs,uchar dd){   if(cs)   {    check_busy(1);    R_data=dd;   } else   {    check_busy(0);    L_data=dd;    }} /**************************** LCD清屏函数*******************************/ void LCD_Clean(void){ unsigned char x,y;    for(x=0xb8;x<=0xbf;x++)                                 //一页一页的写   {      lcdcommand(0,x);      lcdcommand(1,x);                                    //设定X方向地址,X地址不能自增。要靠程序加     lcdcommand(0,LCD_Y);                                //设置Y的初始地址,Y可自加     lcdcommand(1,LCD_Y);     for(y=0;y<64;y++)       {            lcddatas(0,0x00);         lcddatas(1,0x00);                               //Y地址可以自增       }            }}                                         void LCD_Init(void)                     //LCD初始化子函数{  /*首先关闭12864的显示*/  check_busy(0);                        //LCD左半屏正在工作,等待......  L_command=LCD_OFF;                    //先关闭LCD左半屏的显示  check_busy(1);                        //LCD右半屏正在工作,等待......  R_command=LCD_OFF;                    //先关闭LCD右半屏的显示    /*开启12864的显示*/  check_busy(0);  L_command=LCD_ON;                     //打开LCD左半屏的显示  check_busy(1);  R_command=LCD_ON;                     //打开LCD右半屏的显示    /*设置LCD显示的起始行*/  check_busy(0);  L_command=LCD_X;                      //LCD左半屏起始行为0  check_busy(1);  R_command=LCD_X;                      //LCD右半屏起始行为0} void init_devices(void){ XMCRA = 0x00;                          //外部存储器控制 XMCRB = 0x00; //外存储高位地址屏蔽,释放端口C port_init(); MCUCR = 0x80;                          //外部SRAM使能}
VIP VIP