MSP430在12864液晶显示屏上计数.doc_第1页
MSP430在12864液晶显示屏上计数.doc_第2页
MSP430在12864液晶显示屏上计数.doc_第3页
MSP430在12864液晶显示屏上计数.doc_第4页
MSP430在12864液晶显示屏上计数.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Main.c#include #include Config.h /开发板配置头文件,主要配置IO端口信息#include 12864.hunsigned char line1=计时器00: 00. 0; /分,秒,毫秒uchar Count,miao,fen; /毫秒,秒,分变量 void timer(); /定时器函数/*/ MSP430IO口初始 化/*void Port_Init() LED8SEL = 0x00; /设置IO口为普通I/O模式,此句可省 LED8DIR = 0xFF; /设置IO口方向为输出 LED8PORT = 0xFF; /P2口初始设置为FF DATASEL = 0x00; /设置IO口为普通I/O模式,此句可省 DATADIR = 0xFF; /设置IO口方向为输出 DATAPORT = 0xFF; /P4口初始设置为FF CTRSEL = 0x00; /设置IO口为普通I/O模式,此句可省 CTRDIR |= BIT3 + BIT4; /设置IO口方向为输出,控制口在P63,P64 CTRPORT = 0xFF; /P6口初始设置为FF/*/ TIMERA初始化,设置为UP模式计数/*void TIMERA_Init(void) /UP模式计数,计数周期为CCR0+1 TACTL |= TASSEL1 + TACLR + ID0 + MC0 + TAIE; /SMCLK做时钟源,8分频,增加计数模式,开中断 TACCR0 =36000; /CCR0=36000,10ms中断一次/*/ 主函数/*void main(void) /WDT_Init(); /看门狗设置 WDTCTL = WDTPW + WDTHOLD; /关闭看门狗 Port_Init(); /端口初始化 TIMERA_Init(); /设置TIMERA,P12输出PWM信号 _EINT(); /开中断 lcd_init(); /显示文字 Disp_HZ(0x90,line1,8); while(1) timer(); /*/ TIMERA中断服务程序,需要判断中断类型/*#pragma vector = TIMERA1_VECTOR_interrupt void Timer_A(void) switch(TAIV) /需要判断中断的类型 case 2:break; case 4:break; case 10:Count+; if(Count=10) Count=0; miao+=1; break; void timer() /定时器函数uchar shi,ge;shi=miao/10;/分解一个2位数的十位和个位 ge=miao%10; if(miao=60) miao = 0; fen+; shi=fen/10;/分解一个2位数的十位和个位 ge=fen%10; if(fen=60) fen=0; lcdwrite_com(0x93); /写分 lcdwrite_data(shi+0x30); lcdwrite_data(ge+0x30); lcdwrite_com(0x95); /写秒 lcdwrite_data(shi+0x30); lcdwrite_data(ge+0x30); lcdwrite_com(0x97); /写毫秒 lcdwrite_data(Count+0x30); 12864.h#define uchar unsigned char#define uint unsigned int extern unsigned char flag,shi,fen,miao;void delay_1ms(uint n);void lcdwrite_com(uchar com);void lcdwrite_data(uchar dat);void lcd_init();void Disp_HZ(uchar addr,const uchar * pt,uchar num);12864.c#include typedef unsigned char uchar;typedef unsigned int uint;extern const unsigned char shuzi_table;#define lcd_dataindir P2DIR=0x00#define lcd_dataoutdir P2DIR=0xff#define lcd_datain P2IN#define lcd_dataout P2OUT#define lcd_rweoutdir P6DIR|=0xff /63 64 65 66 0111 1000 #define lcd_rs_h P6OUT|=BIT3 /p63#define lcd_rs_l P6OUT&=BIT3#define lcd_rw_h P6OUT|=BIT4 /p64#define lcd_rw_l P6OUT&=BIT4#define lcd_e_h P6OUT|=BIT5 /p65#define lcd_e_l P6OUT&=BIT5#define lcd_psb_h P6OUT|=BIT6/*函数名称:Delay_Nms功 能:延时N个1ms的时间参 数:n-延时长度返回值 :无*/void delay_1ms(uint n) uchar i,j; for(i=150;i0;i+)for(j = 0;jn;j+)_NOP();/*函数名称:Write_com功 能:向液晶中写控制命令参 数:com-控制命令返回值 :无*/void lcdwrite_com(uchar com) lcd_rweoutdir; lcd_rs_l; lcd_rw_l; lcd_e_l; lcd_dataoutdir; lcd_dataout=com; delay_1ms(5); lcd_e_h; delay_1ms(5); lcd_e_l; delay_1ms(5); /*函数名称:Write_Data功 能:向液晶中写显示数据参 数:dat-显示数据返回值 :无*/void lcdwrite_data(uchar dat) lcd_rweoutdir; lcd_rs_h; lcd_rw_l; lcd_e_l; lcd_dataoutdir; lcd_dataout=dat; delay_1ms(5); lcd_e_h; delay_1ms(5); lcd_e_l; delay_1ms(5);/*函数名称:lcd_init功 能:LCD的初始化参 数:无返回值 :无*/void lcd_init() lcd_rweoutdir; lcd_psb_h; lcdwrite_com(0x30); delay_1ms(5); lcdwrite_com(0x0c); delay_1ms(5); lcdwrite_com(0x01); delay_1ms(5);/*函数名称:Disp_HZ功 能:控制液晶显示汉字参 数:addr-显示位置的首地址 pt-指

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论