这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » whlgzf的MCU DIY进程贴

共4条 1/1 1 跳转至

whlgzf的MCU DIY进程贴

菜鸟
2011-12-13 21:51:43     打赏
(三)1602液晶显示: (1)静态显示:在固定位置显示固定的内容 #include <reg51.h> #include <intrins.h>   typedef unsigned char uchar; typedef unsigned int uint; typedef bit BOOL ;   sbit rs = P2^4;     // sbit rw = P2^5; sbit ep = P2^6;   uchar code dis1[] = {"Hello World!"}; uchar code dis2[] = {"The MCU World!"};   void delay(uint ms) {                           // 延时子程序     uchar i;     while(ms--)     {         for(i = 0; i< 250; i++)         {             _nop_();             _nop_();             _nop_();             _nop_();         }     } }   BOOL lcd_bz() {                           // 测试LCD忙碌状态     BOOL result;     rs = 0;     rw = 1;     ep = 1;     _nop_();     _nop_();     _nop_();     _nop_();     result = (BOOL)(P0 & 0x80);     ep = 0;     return result;  }   lcd_wcmd(uchar cmd) {                           // 写入指令数据到LCD     while(lcd_bz());     rs = 0;     rw = 0;     ep = 0;     _nop_();     _nop_();        P0 = cmd;     _nop_();     _nop_();     _nop_();     _nop_();     ep = 1;     _nop_();     _nop_();     _nop_();     _nop_();     ep = 0;     }   lcd_pos(uchar pos) {                           //设定显示位置     lcd_wcmd(pos | 0x80); }   lcd_wdat(uchar dat) {                           //写入字符显示数据到LCD     while(lcd_bz());     rs = 1;     rw = 0;     ep = 0;     P0 = dat;     _nop_();     _nop_();     _nop_();     _nop_();     ep = 1;     _nop_();     _nop_();     _nop_();     _nop_();     ep = 0; }   lcd_init() {                           //LCD初始化设定     lcd_wcmd(0x38);         //     delay(1);     lcd_wcmd(0x0c);         //     delay(1);     lcd_wcmd(0x06);         //     delay(1);     lcd_wcmd(0x01);         //清除LCD的显示内容     delay(1); }   main() {     uint i;     lcd_init();             // 初始化LCD                delay(10);     lcd_pos(4);             // 设置显示位置为第一行的第5个字符     i = 0;     while(dis1[i] != '\0')     {                       // 显示字符"welcome!"         lcd_wdat(dis1[i]);         i++;     }     lcd_pos(0x41);         // 设置显示位置为第二行第二个字符     i = 0;     while(dis2[i] != '\0')     {         lcd_wdat(dis2[i]); // 显示字符         i++;     }     while(1);               // }



关键词: whlgzf     进程    

院士
2011-12-14 08:25:45     打赏
2楼
这帖子是上接哪个部分的??

助工
2011-12-14 09:53:46     打赏
3楼

菜鸟
2011-12-14 21:08:17     打赏
4楼
之前的帐号登录不上了,重新注册了一个,但主题名称没变

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]