data segment
進度條字元
st_load db 10起始行
db 4起始列
db 0bh字型顏色
dbdb 00
字元定義
start_col db儲存起始行
text db 14起始行
db 2起始列
db 0fh字型顏色
db ' automation 0902 herun ,0ffh,0ffh ;顯示字
db ' happy new year!',0ffh以0ffh來判斷是否換行
db ' [-1-2-3-4-5-6-7-]',0ffh
db 'h [ q w e r t y u ] p: play',0ffh
db 'm [ a s d f g h j ] enter: stop',0ffh
db 'l [ z x c v b n m ] esc: exit',0ffh
db ' 1/2: speed down/up',0ffh
db 00
白色琴鍵座標
st_lx dw 50,61,72,83,94,105,116起點橫座標
dw 127,138,149,160,171,182,193
dw 204,215,226,237,248,259,270
st_y dw 50起點縱座標
ed_lx dw 60,71,82,93,104,115,126終點橫座標
dw 137,148,159,170,181,192,203
dw 214,225,236,247,258,269,280
ed_y dw 90終點縱座標
黑色琴鍵座標
bt_x dw 57,68,90,101,112起點橫座標
dw 134,145,167,178,189
dw 211,222,244,254,265
bt_y dw 50起點縱座標
bd_x dw 64,75,97,108,119終點橫座標
dw 141,152,174,185,196
dw 218,229,251,262,273
bd_y dw 70終點縱座標
**頻率值
tune dw 220,247,278,294,330,371,416低音
dw 441,495,556,589,661,742,833中音
dw 882,990,1112,1178,1322,1484,1655高音
soundcolor dw 0音色快取,用於改變**或彈奏時琴上音響和琴面上點陣的顏色
key_tune dw 0按鍵狀態快取,用於判斷是否有手動按鍵,1為有,0為無
keynum dw 1按鍵編號快取,用於提取對應的按鍵位置
delay_time dw 7000 ;延時快取,用於**時存入bx中來計數
自動演奏的歌曲頻率和延時新年好》
mus_freq dw 441,441,441,330,556,556,556,441
dw 441,556,661,661,589,556,495
dw 495,556,589,589,556,495,556,441
dw 441,556,495,330,416,495,441
dw -1以後以-1來判斷是否結束
聲音節拍部分,32為一拍
mus_time dw 4,4,8,8,4,4,8,8
dw 4,4,8,8,4,4,16
dw 4,4,8,8,4,4,8,8
dw 4,4,8,8,4,4,32
data ends
**段code segment
assume ds:data,cs:code
主程式;---依次呼叫:開場效果--初始化--鍵盤掃瞄--按鍵處理程式
main proc far
start: call show_load呼叫進度條顯示程式
;---延時20*waitf----
push bx
mov bx,20
del: call waitf
dec bx
jnz del
pop bx
重新開始-------
restart自動****時,按『enter』鍵或**完全結束後會返回這裡
call init呼叫初始化程式
new_scan鍵盤掃瞄程式沒有檢測到功能鍵被按下時,會返回這裡
call scan_key ;呼叫鍵盤掃瞄程式,掃瞄所按下的鍵
按鍵處理-------
call do_key
;----重新掃瞄---
jmp new_scan重新掃瞄有無鍵按下,直到按下esc鍵
main endp
矩形繪製巨集
draw macro start_x,start_y,end_x,end_y,color
local draw_next
;local:避免巨集重複呼叫時?56946 .標號的重複
;功能:畫填充的矩形
;使用條件:start_x < end_x ,start_y < end_y
push ax堆疊
push bx
push cx
push dx
mov ah,0ch12號功能,畫素
mov al,color取顏色值
mov bh,0頁號0
mov cx,start_x列起始點
mov dx,start_y行起始點
draw_next:
int 10h畫點
inc cx畫橫線
cmp cx,end_x比較行是否畫完
jne draw_next畫另一行
mov cx, start_x另一行的起始點
inc dx下一行
cmp dx,end_y比較列是否畫完
jne draw_next未完繼續畫
pop dx出棧
pop cx
pop bx
pop ax
endm
矩形點陣繪製巨集
draw_point macro start_x,start_y,end_x,end_y,color
local draw_next
;local:避免巨集重複呼叫時,標號的重複
;功能:畫矩形點陣
;使用條件:start_x < end_x ,start_y < end_y
push ax
push bx
push cx
push dx
mov ah,0ch12號功能,寫畫素
簡易電子琴設計報告
專業 電氣工程及其自動化 班級 12級過程控制 小組 第22 組 姓名 門振威 學號 120544145 指導教師 王松林 2015.06.15 摘要555 定時器是一種模擬和數字功能相結合的中規模整合器件。555 定時器成本低,效能可靠,只需要外接幾個電阻 電容,就可以實現多諧振盪器 單穩態觸發器...
電子琴簡譜
小酒窩jj 我還在尋找乙個依靠和乙個擁抱 33432252116532 誰替我祈禱替我煩惱為我生氣為我鬧 3353552711767171 sa 幸福開始有預兆緣分讓我們慢慢緊靠 1717135 6717171236717171376767513432 合 小酒窩長睫毛是你最美的記號 512315 ...
電子琴教案
第八課學習,學習 青春舞曲 教學目的 1.學習 青春舞曲 2.學習和鉉 二 教學重 難點 1.掌握和鉉手型,指法。2.學習 青春舞曲 三 教學方法 講解 示範 分解 練習 四 教學過程 1.複習音符,全音符,二分音符 2.選節奏 3.選音色 4.反覆練習 青春舞曲 第九課學習 青春舞曲 教學目的 1...