電子琴軟體設計源程式

2022-12-25 14:18:03 字數 3255 閱讀 5721

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...