ASM 板


LINE

看板 ASM  RSS
#define CRYSTALFREQ 12000000 #define INSFREQ (CRYSTALFREQ/12) #define TIMERFREQ (CRYSTALFREQ/12) #define _BASETICK 1000 #define __FREQBASE__ (65536-((TIMERFREQ/_BASETICK)-10)) #define __VTH (__FREQBASE__/256) #define __VTL (__FREQBASE__%256) #define intINT0 0 #define intT0 1 #define intINT1 2 #define intT1 3 #define intUART1 4 #define intUART 4 #define intINT2 6 sbit out=P0^0; sbit Key1=P1^0; sbit Key2=P2^1; unsigned long acttimer; unsigned char key1cnt; unsigned char key2cnt; bit hold; bit vout; void _T0ISR(void) interrupt intT0{ TR0=0;TH0=__VTH;TL0=__VTL;TR0=1;TF0=0; if(acttimer>0){acttimer--;vout=1;} else { vout=0; } out=~(vout|hold);//Inv Logic Fan Out // out=vout|hold);//Fan Out if((Key1==0)&&(key1cnt<250)){key1cnt++;} if((Key2==0)&&(key2cnt<250)){key2cnt++;} } void main(void){ PCON|=0x80;TMOD=0x21;TCON=0;TH0=__VTH;TL0=__VTL;IE=0x82;TCON=0x50; acttimer=0;key1cnt=0;key2cnt0=;hold=0;vout=0; do{ if(Key1){ if(key1cnt>50){ if((acttimer>0)||hold){acttimer=0;hold=0;}else{ if((Key2==0)&&(key2cnt>20)){hold=1;}else{ acttimer=200; } } } key1cnt=0; } if(Key2){ // if(key2cnt>50){ // } key2cnt=0; } }while(1); } ※ 引述《victim0130 (Maxwell)》之銘言: : 各位版大們好,小弟最近在自學8051, : 有一些地方不太知道該怎麼寫, : 目前小弟想要做到的功能是: : 有兩個按鍵,按鍵1按下去後,輸出1會ON(停滯200ms), : 然後這時候偵測按鍵二是否有按下去, : 如果按鍵二也按下去,則輸出1會一直ON的狀態, : 假設按鍵二沒按下去,則輸出1就會off。 : 上面的功能都算是有寫出來, : 不過,小弟還差一個功能沒寫出來, : 如果在輸出1一直ON的狀態的時候,按鍵1又按下去, : 則輸出1會變成off的狀態,若此時再按按鍵1, : 又會回復到上面的狀態,偵測按鍵二是否有按下去, : 若有則呈現on的狀態,若沒有則off。 -- ~~於是,銀河的歷史又被海賊抹黑了好幾百頁。 - A23203 - BM4GRM Harlock WolfLord <<上站通知>> -- 我來啦! --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.253.163.98
1F:推 victim0130:W大程式功力實在令人佩服...小弟還得思考箇中邏輯 08/23 23:36
2F:→ victim0130:原本今天有用goto寫出來,但goto似乎不要常用比較好!? 08/23 23:37
3F:→ ksmrt0123:真是恐怖的coding style... 面試八成被打槍吧 08/24 01:18
(自刪破碎推文)還是不要用推的好了... 我討厭捲頁,相同區段功能的東西寫一行也無損可讀性。這篇我是故意不寫註釋的, 這樣收碼的人真的想懂才會讀碼。不讀碼就只能得到功能,老師一問必倒無疑。 To ksmrt: 1.自1995之後一向都是我面試別人....:P 2.我很喜歡大量使用Macro,這樣移轉硬體平台時比較好改。 3.我的CODEING STYLE是BASE ON 80COL/65LINE,用方格紙寫作時代養成的,請多多包 涵(逃) == 補充一下剛剛忘記貼上來的Base Define ※ 編輯: WolfLord 來自: 111.246.234.74 (08/24 01:51)
4F:→ victim0130:謝謝W大提供code...但的確要自己想過才會變成自己的! 08/24 02:14
5F:→ victim0130:另想請問那寫法讓我感覺像是PIC的語法!?(疑惑中) 08/24 02:15
6F:→ WolfLord:這不是PIC語法,這是ANSI C的STYTLE 08/24 02:27
7F:→ WolfLord:不過那個bit 跟 sbit是Keil獨有的 08/24 02:28
8F:→ victim0130:瞭解!因為之前看蠻多PIC範例程式有用W大Stytle 08/24 02:32
9F:→ victim0130:原來是ANSI C...受教了!! bit & sbit部分是知道的 08/24 02:33
10F:→ victim0130:謝W大解惑... !! 08/24 02:33







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP