亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

DELAYMS

  • 精確的HC08延時程序--DELAYMS.ASM

    精確的HC08延時程序--DELAYMS.ASM

    標簽: DELAYMS ASM HC 08

    上傳時間: 2013-12-17

    上傳用戶:zhuyibin

  • LCD12864顯示漢字和數字(程序和電路)

    附件為:LCD12864顯示漢字和數字的程序與電路 /*  自定義延時子函數 */ void DELAYMS(uchar z) {   int x,y;   for(x=z;x>0;x--)      for(y=110;y>0;y--); } /*      判斷LCD忙信號狀態 */ void buys() {   int dat;   RW=1;   RS=0;   do     {           P0=0x00;          E=1;    dat=P0;    E=0;    dat=0x80 & dat;   } while(!(dat==0x00)); } /*      LCD寫指令函數 */ void w_com(uchar com) {   //buys();   RW=0;   RS=0;   E=1;   P0=com;   E=0; }  /*      LCD寫數據函數 */ void w_date(uchar date) {   //buys();   RW=0;   RS=1;   E=1;   P0=date;   E=0; } /*     LCD選屏函數 */ void select_screen(uchar screen) {     switch(screen)     {         case 0:     //選擇全屏                 CS1=0;        CS2=0;           break;      case 1:     //選擇左屏                 CS1=0;        CS2=1;           break;                          case 2:     //選擇右屏                 CS1=1;        CS2=0;           break;    /*  case 3:     //選擇右屏                 CS1=1;          CS2=1;               break;    */     }           } /*   LCDx向上滾屏顯示 */ void lcd_rol() {     int x;     for(x=0;x<64;x++)        {       select_screen(0);     w_com(0xc0+x);       DELAYMS(500);     } } /*     LCD清屏函數:清屏從第一頁的第一列開始,總共8頁,64列 */ void clear_screen(screen) {   int x,y;   select_screen(screen);     //screen:0-選擇全屏,1-選擇左半屏,2-選擇右半屏   for(x=0xb8;x<0xc0;x++)   //從0xb8-0xbf,共8頁      {    w_com(x);    w_com(0x40);   //列的初始地址是0x40    for(y=0;y<64;y++)       {            w_date(0x00);              }       }    } /*   LCD顯示漢字字庫函數 */ void lcd_display_hanzi(uchar screen,uchar page,uchar col,uint mun) {  //screen:選擇屏幕參數,page:選擇頁參數0-3,col:選擇列參數0-3,mun:顯示第幾個漢字的參數       int a;    mun=mun*32;    select_screen(screen);    w_com(0xb8+(page*2));    w_com(0x40+(col*16));    for ( a=0;a<16;a++)       {        w_date(hanzi[mun++]);       }    w_com(0xb8+(page*2)+1);    w_com(0x40+(col*16));    for ( a=0;a<16;a++)       {        w_date(hanzi[mun++]);       } }  /*   LCD顯示字符字庫函數 */ void lcd_display_zifuk(uchar screen,uchar page,uchar col,uchar mun) {  //screen:選擇屏幕參數,page:選擇頁參數0-3,col:選擇列參數0-7,mun:顯示第幾個漢字的參數       int a;    mun=mun*16;    select_screen(screen);    w_com(0xb8+(page*2));    w_com(0x40+(col*8));    for ( a=0;a<8;a++)       {        w_date(zifu[mun++]);       }    w_com(0xb8+(page*2)+1);    w_com(0x40+(col*8));    for ( a=0;a<8;a++)       {        w_date(zifu[mun++]);       } } /*   LCD顯示數字字庫函數 */ void lcd_display_shuzi(uchar screen,uchar page,uchar col,uchar mun) {  //screen:選擇屏幕參數,page:選擇頁參數0-3,col:選擇列參數0-7,mun:顯示第幾個漢字的參數       int a;    mun=mun*16;    select_screen(screen);    w_com(0xb8+(page*2));    w_com(0x40+(col*8));    for ( a=0;a<8;a++)       {        w_date(shuzi[mun++]);       }    w_com(0xb8+(page*2)+1);    w_com(0x40+(col*8));    for ( a=0;a<8;a++)       {        w_date(shuzi[mun++]);       } } /*   LCD初始化函數 */ void lcd_init() {   w_com(0x3f);   //LCD開顯示   w_com(0xc0);   //LCD行初始地址,共64行   w_com(0xb8);   //LCD頁初始地址,共8頁   w_com(0x40);   //LCD列初始地址,共64列     } /*   LCD顯示主函數 */ void main() {   //第一行       int x;    lcd_init();     //LCD初始化    clear_screen(0);    //LCD清屏幕    lcd_display_shuzi(1,0,4,5);    //LCD顯示數字    lcd_display_shuzi(1,0,5,1);    //LCD顯示數字       lcd_display_hanzi(1,0,3,0);    //LCD顯示漢字    lcd_display_hanzi(2,0,0,1);    //LCD顯示漢字    //LCD字符漢字    lcd_display_hanzi(2,0,1,2);    //LCD顯示漢字   //第二行     lcd_display_zifuk(1,1,2,0);    //LCD顯示字符    lcd_display_zifuk(1,1,3,0);    //LCD顯示字符    lcd_display_zifuk(1,1,4,0);    //LCD顯示字符    lcd_display_zifuk(1,1,5,4);    //LCD顯示字符    lcd_display_shuzi(1,1,6,8);    //LCD顯示字符    lcd_display_shuzi(1,1,7,9);    //LCD顯示字符    lcd_display_shuzi(2,1,0,5);    //LCD顯示字符    lcd_display_shuzi(2,1,1,1);    //LCD顯示字符    lcd_display_zifuk(2,1,2,4);    lcd_display_zifuk(2,1,3,1);    lcd_display_zifuk(2,1,4,2);    lcd_display_zifuk(2,1,5,3);   //第三行    for(x=0;x<4;x++)       {      lcd_display_hanzi(1,2,x,3+x);    //LCD顯示漢字    }      for(x=0;x<4;x++)       {      lcd_display_hanzi(2,2,x,7+x);    //LCD顯示漢字    }   //第四行     for(x=0;x<4;x++)       {      lcd_display_zifuk(1,3,x,5+x);    //LCD顯示漢字    }     lcd_display_shuzi(1,3,4,7);     lcd_display_shuzi(1,3,5,5);     lcd_display_shuzi(1,3,6,5);     lcd_display_zifuk(1,3,7,9);     lcd_display_shuzi(2,3,0,8);     lcd_display_shuzi(2,3,1,9);     lcd_display_shuzi(2,3,2,9);     lcd_display_shuzi(2,3,3,5);     lcd_display_shuzi(2,3,4,6);     lcd_display_shuzi(2,3,5,8);     lcd_display_shuzi(2,3,6,9);     lcd_display_shuzi(2,3,7,2);        while(1);    /* while(1)     {     //  LCD向上滾屏顯示        lcd_rol();     }    */ }

    標簽: 12864 LCD 漢字 數字

    上傳時間: 2013-11-08

    上傳用戶:aeiouetla

  • 4x4鍵盤的設計與制作

    三種方法讀取鍵值􀂄 使用者設計行列鍵盤介面,一般常採用三種方法讀取鍵值。􀂉 中斷式􀂄 在鍵盤按下時產生一個外部中斷通知CPU,並由中斷處理程式通過不同位址讀資料線上的狀態判斷哪個按鍵被按下。􀂄 本實驗採用中斷式實現使用者鍵盤介面。􀂉 掃描法􀂄 對鍵盤上的某一行送低電位,其他為高電位,然後讀取列值,若列值中有一位是低,表明該行與低電位對應列的鍵被按下。否則掃描下一行。􀂉 反轉法􀂄 先將所有行掃描線輸出低電位,讀列值,若列值有一位是低表明有鍵按下;接著所有列掃描線輸出低電位,再讀行值。􀂄 根據讀到的值組合就可以查表得到鍵碼。4x4鍵盤按4行4列組成如圖電路結構。按鍵按下將會使行列連成通路,這也是見的使用者鍵盤設計電路。 //-----------4X4鍵盤程序--------------// uchar keboard(void) { uchar xxa,yyb,i,key; if((PINC&0x0f)!=0x0f) //是否有按鍵按下 {DELAYMS(1); //延時去抖動 if((PINC&0x0f)!=0x0f) //有按下則判斷 { xxa=~(PINC|0xf0); //0000xxxx DDRC=0x0f; PORTC=0xf0; delay_1ms(); yyb=~(PINC|0x0f); //xxxx0000 DDRC=0xf0; //復位 PORTC=0x0f; while((PINC&0x0f)!=0x0f) //按鍵是否放開 { display(data); } i=4; //計算返回碼 while(xxa!=0) { xxa=xxa>>1; i--; } if(yyb==0x80) key=i; else if(yyb==0x40) key=4+i; else if(yyb==0x20) key=8+i; else if(yyb==0x10) key=12+i; return key; //返回按下的鍵盤碼 } } else return 17; //沒有按鍵按下 }

    標簽: 4x4 鍵盤

    上傳時間: 2013-11-12

    上傳用戶:a673761058

  • LCD1602B基本驅動函數庫 1、需要底層硬件驅動函數支持 基本的宏定義: LCD_RS LCD_RW LCD_E LCD_SetWriteData LCD_SetReadData

    LCD1602B基本驅動函數庫 1、需要底層硬件驅動函數支持 基本的宏定義: LCD_RS LCD_RW LCD_E LCD_SetWriteData LCD_SetReadData LCD_HalfData_Port LCD_HalfData_DDR LCD_SendHalfCharHigh(a) LCD_SendHalfCharLow(a) 2、需要基本的延時函數支持基本的延時函數: DELAYMS() 毫秒 DelayUs() 微妙 3、需要修改引用宏定義來指定底層硬件驅動 函數庫。 4、該頭文件支持4位發送模式,硬件連接4位 8位都支持。

    標簽: LCD_SetWriteData LCD_SetReadData LCD_RS LCD_RW

    上傳時間: 2015-05-20

    上傳用戶:wangchong

  • 本代碼包為本人的一篇文章<一個占用內存極少的菜單系統的實現>在在PC上的測試移植代碼。 ------------------------------ Menu_Src目錄為Menu的源

    本代碼包為本人的一篇文章<一個占用內存極少的菜單系統的實現>在在PC上的測試移植代碼。 ------------------------------ Menu_Src目錄為Menu的源代碼 Ks0108.C的void Display_Locate(unsigned char DisplayData, unsigned char X, unsigned char Y)函數為最底層的顯示函數。 該函數調用LCD模擬函數來完成顯示。 KeyScan.C的unsigned char KeyScan(void)函數為鍵盤模擬函數。 void DELAYMS( WORD time ) 延時 ------------------------------ GUI_SIM.exe為編譯后的文件,可以直觀看到這個GUI的效果. PC鍵盤的4個按鍵控制菜單周轉: PC按鍵 菜單中功能 up 向上鍵 確定鍵 進入子菜單 down向下鍵 取消鍵 返回父菜單 left向左鍵 向上鍵 菜單項上一項 right向右鍵 向下鍵 菜單項下一項 有興趣自己編譯VC工程:\Project\Menu.dsw <一個占用內存極少的菜單系統的實現>相關PDF文檔和其他資料在以下鏈接: http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=798580&bbs_page_no=3&bbs_id=9999

    標簽: Menu_Src Menu 代碼 lt

    上傳時間: 2014-06-24

    上傳用戶:stvnash

  • 單片機課程設計

    #include<reg52.h>  #include<intrins.h> #define LED P0 sbit KEY0=P2^0;  //定義按鍵輸入端口 A    sbit KEY1=P2^1;  //定義按鍵輸入端口 B    sbit KEY2=P2^2;  //定義按鍵輸入端口 C unsigned int Led_table[8]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00}; char Led_num=0; unsigned int num=0; //中斷計數 void DELAYMS(unsigned int x) { unsigned int i,j;

    標簽: 單片機

    上傳時間: 2015-12-23

    上傳用戶:kimyu

  • 基于8051+Proteus仿真案例

    基礎程序設計 01 閃爍的LED  /*  名稱閃爍的LED   說明LED按設定的時間間隔閃爍 */  #include<reg51.h>  #define uchar unsigned char  #define uint unsigned int  sbit LED=P1^0;  //延時  void DELAYMS(uint x)  {   uchar i;   while(x--) {    for(i=0;i<120;i++);   }  }  //主程序  void main() {   while(1) {    LED=~LED;    DELAYMS(150);   }  } 

    標簽: 基于8051仿真 基于Proteus仿真 基于8051+Proteus仿真

    上傳時間: 2016-09-19

    上傳用戶:xinhoujue

  • 51單片機C語言程序設計Proteus仿真實訓

    基礎程序設計 01 閃爍的LED  /*  名稱閃爍的LED   說明LED按設定的時間間隔閃爍  */  #include<reg51.h>  #define uchar unsigned char  #define uint unsigned int  sbit LED=P1^0;  //延時  void DELAYMS(uint x) {   uchar i;   while(x--) {    for(i=0;i<120;i++);   } }  //主程序  void main() {   while(1)  {    LED=~LED;    DELAYMS(150);   }  } 

    標簽: 51單片機C語言程序設計 51單片機C語言程序設計Proteus仿真實訓

    上傳時間: 2016-09-19

    上傳用戶:xinhoujue

主站蜘蛛池模板: 镇江市| 博罗县| 湖口县| 灌云县| 昭通市| 三门峡市| 新泰市| 克什克腾旗| 五大连池市| 维西| 赞皇县| 铅山县| 平阴县| 张家川| 石阡县| 巨野县| 大同市| 德昌县| 开阳县| 渑池县| 乐清市| 濮阳市| 邳州市| 汪清县| 嘉荫县| 郎溪县| 柳林县| 周宁县| 玉田县| 綦江县| 乐平市| 海原县| 九江县| 霍山县| 新疆| 乌拉特后旗| 镇雄县| 盖州市| 同心县| 齐齐哈尔市| 岳池县|