欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4223|回復: 2
打印 上一主題 下一主題
收起左側

LCD模塊顯示,高手進~

[復制鏈接]
跳轉到指定樓層
樓主
ID:35862 發表于 2012-3-11 00:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
用一個外部中斷讀取編碼器圈數,用一個定時器實現30s倒計時,并將圈數和時間在LCD上顯示。程序編譯沒有問題,但LCD上出現跳動的亂碼,求高手幫幫忙呀~跪謝謝了~~ #include "lcd.h" #include "common.h" int degree=0; int time=35; int circle; unsigned char xdata countdown[2]; unsigned char xdata circlestr[2]; void main(void) { IT0=1; //外部中斷0下降沿觸發 EA=1; //全局中斷打開 EX0=1; //允許外部中斷0 TMOD|=0x01; //定時器0 16位定時器 X=65535-10000(10毫秒)=55535=D8F0(十六進制)定時10ms TH0=0xd8; //計數時間 TL0=0xf0; IE=0x82; //這里是中斷優先級控制EA=1(開總中斷),ET0=1(定時器0允許中斷),這里用定時器0來定時 TR0=1; //打開定時器0 circle=degree/360; //取圈數 circlestr[0]=circle/10+0x30; //取十位 circlestr[1]=circle%10+0x30; //取個位 countdown[0]=time/10+0x30; //取時間十位 countdown[1]=time%10+0x30; //取個位 LCD_Init( ); LCD_ClearScreen(); while( 1 ) { LCD_ShowDot6x8Str(48, 1, circlestr); //LCD顯示圈數 LCD_ShowDot6x8Str(48, 0, countdown); // LCD顯示倒計時30s } } void int0()interrupt 0 //外部中斷0 { EA=0; if(P3^3==0) degree++; else degree--; EA=1; } void tim(void) interrupt 1 using 1 //定時器0中斷 { int count; //99只是一個數,可以任意改,因為這里只學習怎樣實現倒計時 TH0=0xd8; //定時10毫秒 TL0=0xf0; count++; if(count==100) //10毫秒定時,10*100=1000(毫秒)=1秒 if(time>=0) time--; }
[此貼子已經被作者于2012-3-11 0:02:36編輯過]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:34181 發表于 2012-3-11 10:29 | 只看該作者

怎么這么一塌糊涂? 如何看啊?

回復

使用道具 舉報

板凳
ID:36377 發表于 2012-3-16 14:36 | 只看該作者
lcd 清屏了嗎
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表