资源预览内容
第1页 / 共30页
第2页 / 共30页
第3页 / 共30页
第4页 / 共30页
第5页 / 共30页
第6页 / 共30页
第7页 / 共30页
第8页 / 共30页
第9页 / 共30页
第10页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
常用子程序集合常用子程序集合(一)FLASH 子程序/*FLASH 子程序*void write_seg(unsigned int fldress,unsigned int write) /段写子程序 fldress 写入地址 起始地址最好不要是 0x80000 write 传送数据量 write0;z-);/*/处理来处自端口 2 的中断/*#pragma vector = PORT2_VECTOR_interrupt void PORT_ISR(void)delay();Keyprocess();P2IFG=0; /*/*/ 键盘分析int Keyprocess(void)P2OUT = 0XFF;P2OUT/p1.4 输出低电平nP212 = P2INif(nP212=0) nRes=13;nP213=(P2INif(nP213=0) nRes=14;nP214=(P2INif(nP214=0) nRes=15;nP215=(P2INif(nP215=0) nRes=0;P2OUT = 0XFF;P2OUT/p1.5 输出低电平nP28=P2INif(nP28=0) nRes=9;nP29=(P2INif(nP29=0) nRes=10;nP210=(P2INif(nP210=0) nRes=11;nP211=(P2INif(nP211=0) nRes=12;P2OUT = 0XFF;P2OUT/p1.6 输出低电平nP24=P2INif(nP24=0) nRes=5;nP25=(P2INif(nP25=0) nRes=6;nP26=(P2INif(nP26=0) nRes=7;nP27=(P2INif(nP27=0) nRes=8;P2OUT = 0XFF; P2OUT/p1.7 输出低电平nP20=P2INif(nP20=0) nRes=1;nP21=(P2INif(nP21=0) nRes=2;nP22=(P2INif(nP22=0) nRes=3;nP23=(P2INif(nP23=0) nRes=4;P2OUT=0X00;/恢复以前值return nRes;按键子程序/*键盘分析子程序*/#define keyin (P2INunsigned char hang=0xef,0xdf,0xbf,0x7f;/ 选中行码unsigned char lie=0x0e,0x0d,0x0b,0x07;/相应列值unsigned char save,a,b;void keyprocess(void) for(a=0;aGND /串口* P3.0 端口 连接 ST7920ASCLK 引脚* P3.1 端口 连接 ST7920ASTD 引脚* P3.2 端口 连接 ST7920ACS 引脚*注 意:* ST7920A 芯片的 VDD 引脚必须为+5V,如果电压为 3.3V,则 ST7920A 芯片不正常工作* ST7920A 芯片的 VDD 为+5V, 由于 ST7920A 为逻辑电平为宽电压器件,故可以直接连* 接 MSP430 器件的 I/O 接口!此程序为虚拟 SPI 接口!*/#define comm 0#define dat 1#define sclk_1 P3OUT|=0x01 /sclk=1; 0001#define sclk_0 P3OUT 0110#define std_1 P3OUT|=0x02 /std =1; 0010#define std_0 P3OUT 0101#define cs_1 P3OUT|=0x04 /cs =1; 0100#define cs_0 P3OUT 0011void work(void);void wr_lcd (unsigned char dat_comm,unsigned char content);void delay1 (unsigned int ms);void delay (unsigned int us);void clrram(void);void chn_disp1 (unsigned char *chn);void chn_disp2 (unsigned char *chn);int input2=0;int i=0;int j=0;unsigned char tab31=“欢迎使用本产品! “生科院设计制造! “;unsigned char tab32=“QQ :287579532 ! “联系人: 于天宇!“;/*模块名称:初始化定义*完成日期:08-1-20*修改内容:none*/void init_lcd (void)wr_lcd (comm,0x30); /*30-基本指令动作*/ wr_lcd (comm,0x01); /*清屏,地址指针指向 00H*/delay (100);wr_lcd (comm,0x06); /*光标的移动方向*/wr_lcd (comm,0x0c); /*开显示,关游标*/*模块名称:main 定义*完成日期:07-08-23*修改内容:none*/void main( void )WDTCTL = WDTPW + WDTHOLD; / Stop watchdog timer to prevent time out resetBCSCTL1 =CALBC1_1MHZ; /设定 DCO 为 1MHZP3SEL=0x00; P3DIR=0x0F; /P3.0-P3.2 端口设定为输出状态P3OUT=0x00;init_lcd ();clrram();work(); void work(void)while (1) chn_disp1 (tab31);delay1 (20);chn_disp2 (tab32);delay1 (20);/*模块名称:上半屏显示汉字或字符定义*完成日期:08-1-20*修改内容:none*/void chn_disp1 (unsigned char *chn)unsigned char i,j;wr_lcd (comm,0x30);wr_lcd (comm,0x80);j=0;for (i=0;i16;i+)wr_lcd (dat,chnj*16+i);wr_lcd (comm,0x90);j=1;for (i=0;i16;i+)wr_lcd (dat,chnj*16+i);/*模块名称:下半屏显示汉字或字符定义*完成日期:08-1-20*修改内容:none*/void chn_disp2 (unsigned char *chn)unsigned char i,j;wr_lcd (comm,0x30);wr_lcd (comm,0x88);j=0;for (i=0;i16;i+)wr_lcd (dat,chnj*16+i);wr_lcd (comm,0x98);j=1;for (i=0;i16;i+)wr_lcd (dat,chnj*16+i);/*模块名称:清 DDRAM 定义*完成日期:08-1-20*修改内容:none*/void clrram (void)wr_lcd (comm,0x30);wr_lcd (comm,0x01);delay (180);/*模块名称:wr_lcd 定义*完成日期:07-08-23*修改内容:none*/void wr_lcd (unsigned char dat_comm,unsigned char content)unsigned char a,i,j,b;delay (50);a=content;cs_1; /P3OUT|=0x04 /cs =1; 0100sclk_0; /P3OUT 0110std_0; /P3OUT 0101std_1; /P3OUT|=0x02 /std =1; 0010for(i=0;i5;i+)/?sclk_1;sclk_0;std_0;sclk_
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号