久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

8086處理器手寫筆綜合設計(微機實驗報告)

[復制鏈接]
跳轉到指定樓層
樓主
ID:267736 發表于 2017-12-27 14:55 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
手寫筆設計報告
【實驗目的】
  • 實現基本點哪哪亮的基本功能。
  • 具有圖像清除,回放,存儲等功能。
  • 掌握8255的用法。
  • 掌握ADC0809的用法
【實驗原理】
1.自制手寫筆,利用光敏電阻,在接收到不同光照后用電阻的阻值會發生變化,利用其分壓的電壓電平檢測其光照的變化。下圖為電路圖和電阻的光敏特性。
【實驗框圖】
核心:要做到實時顯示,就必須要記錄點亮LED的位置,這時要逐個點亮LED燈,在點亮前讀取電平值,在點亮后讀取電平值,若兩次差值大于某一值(經過示波器測定),則認為該位置應該被點亮,相應的標志位置1,否則不進行處理。

【實驗內容】
  • 按照程序框圖書寫出實驗代碼。
  • 制作好手寫筆
  • 連接實驗箱上的電路并進行調試
【實驗結果】
  • 基本實現其基本功能,已于2016.12.7日下午14:05分請老師驗收。
  • 缺陷在于筆的靈敏度不是特別高偶爾會受到外光源的影響
  • 自制手寫筆的與實驗箱接口裸露容易引發電路故障
【實驗反思】
  • 首先想的是利用ADC0809讀取手寫筆的絕對電平這就導致其掃描的LED燈亮度必須大于其已經點亮的LED這就導致背景色很亮產生的視覺干擾很大效果不是特別理想后采用其他同學的思想讀取電壓差,比以往的效果好。這樣也給我一個啟示:以后要讀取變化值都可采用差值讀數法。
  • 由于8086處理器的主頻不是很高,要是圖像穩定,就得掃描速度快,就得使間隔少,要保證代碼精簡。
  • 每次掃描前后都要進行消影確保不會產生干擾
  • 按鍵都必須進行軟件消抖
【實驗代碼】
  1. ;-------------------------------------------------------
  2. ;程序功能:綜合設計實驗——手寫筆
  3. ;入口參數:無
  4. ;出口參數:無
  5. ;注意事項:
  6. ;硬件連接:
  7. ;/10/26 CJP
  8. ;-------------------------------------------------------
  9. DATAS SEGMENT
  10.     ADC0809_ADD               EQU 0F000H
  11.     PA_ADD                                          EQU 0E000H
  12.     PB_ADD                                          EQU 0E001H
  13.     PC_ADD                                          EQU 0E002H
  14.     COM_ADD                            EQU 0E003H
  15.     DELAY_DATA              DB              000H,000H,000H,000H,000H,000H,000H,000H
  16.                 COPY_DATA              DB              10              DUP(?)                                         
  17. DATAS ENDS
  18. STACKS SEGMENT stack 'stack'
  19.    STA DW 255 DUP(?)
  20. STACKS ENDS
  21. CODES SEGMENT
  22.     ASSUME CS:CODES,DS:DATAS,SS:STACKS
  23. START:
  24.     MOV               AX,DATAS
  25.     MOV               DS,AX
  26.     CALL              INFO_8255
  27. RE:
  28.     CALL              XIAOYIN
  29.     CALL              LED_PANDUAN
  30.     CALL              XIAOYIN
  31.    CALL                            LED_SCAN
  32.    CALL                            XIAOYIN
  33.     CALL              KEY_CLEAR
  34.     CALL              XIAOYIN
  35.     CALL              KEY_BAOCUN
  36.     CALL              XIAOYIN
  37.     CALL              KEY_HUIFANG
  38.    CALL              XIAOYIN
  39.     JMP     RE
  40.     MOV              AH,4CH
  41.     INT              21H
  42. ;-------------------------------------------------------
  43. ;程序功能:程序消影
  44. ;入口參數:
  45. ;出口參數:無
  46. ;注意事項:
  47. ;2016/9/26 CJP
  48. ;-------------------------------------------------------
  49. XIAOYIN PROC NEAR
  50.               PUSH              AX
  51.               PUSH              DX
  52.               MOV              AL,000H
  53.               MOV              DX,PA_ADD
  54.               OUT              DX,AL
  55.               MOV              AL,0FFH
  56.               MOV              DX,PB_ADD
  57.               OUT              DX,AL
  58.               CALL              DELAY
  59.               POP              DX
  60.               POP              AX
  61.               RET
  62. XIAOYIN ENDP                  
  63. ;-------------------------------------------------------
  64. ;程序功能:延時函數
  65. ;入口參數:無
  66. ;出口參數:無
  67. ;注意事項:無
  68. ;2016/1026 CJP
  69. ;-------------------------------------------------------
  70. DELAY PROC NEAR
  71.               PUSH              AX
  72.               PUSH              CX
  73.               MOV              CX,8
  74.               LOOP              $
  75.               POP              CX
  76.               POP              AX
  77.               RET
  78. DELAY ENDP                    
  79. ;-------------------------------------------------------
  80. ;程序功能:延時函數()毫秒
  81. ;入口參數:DX,將延時時間賦給DX,單位為毫秒
  82. ;出口參數:無
  83. ;注意事項:延時時間不可改變
  84. ;2016/9/26 CJP
  85. ;-------------------------------------------------------
  86. DELAY_ms  PROC NEAR
  87.               PUSH AX
  88.               PUSH              CX
  89.               MOV              CX,DX
  90.               LOOP              [        DISCUZ_CODE_1        ]nbsp;           
  91.               POP              CX
  92.               POP  AX
  93.               RET
  94. DELAY_ms ENDP                 
  95. ;-------------------------------------------------------
  96. ;程序功能:初始化8255
  97. ;入口參數:無
  98. ;出口參數:無
  99. ;注意事項:無
  100. ;2016/9/26 CJP
  101. ;-------------------------------------------------------
  102. INFO_8255  PROC NEAR
  103.               PUSH DX
  104.               PUSH AX
  105.               MOV  AL,10001001B  ;設置PA,PB為普通輸出,方式0,PC為輸入
  106.               MOV  DX,COM_ADD
  107.               OUT  DX,AL
  108.               POP  AX
  109.               POP  DX
  110.               RET
  111. INFO_8255 ENDP   
  112. ;-------------------------------------------------------
  113. ;程序功能:讀取手寫筆所在的位置
  114. ;入口參數:
  115. ;出口參數:無
  116. ;注意事項:無
  117. ;2016/12/1 CJP
  118. ;-------------------------------------------------------
  119. LED_PANDUAN PROC NEAR
  120.               PUSH              DX
  121.               PUSH              DI
  122.               PUSH              CX
  123.               PUSH              BX
  124.               PUSH              AX
  125.             
  126.               MOV              DI,OFFSET DELAY_DATA
  127.               MOV              BL,07FH
  128. AGAIN0:
  129.               MOV              DX,PB_ADD
  130.               MOV              AL,BL
  131.               OUT              DX,AL
  132.               MOV              BH,080H
  133.               MOV              CX,8
  134. AGAIN1:
  135.               CALL              DATA_READ1
  136.               MOV              AL,BH
  137.               MOV              DX,PA_ADD
  138.               OUT              DX,AL            
  139.               NOP
  140.               NOP
  141.               NOP
  142.               NOP
  143.               MOV              AL,000H
  144.               MOV              DX,PA_ADD
  145.               OUT              DX,AL
  146.             
  147.               CALL              DATA_READ
  148.               CALL              DELAY
  149.               CALL              DELAY
  150.               MOV              DX,PB_ADD
  151.               MOV              AL,BL
  152.               OUT              DX,AL
  153.             
  154.               ROR              BH,1
  155.               LOOP              AGAIN1
  156.             
  157.               ROR              BL,1
  158.               INC              DI
  159.               CMP              BL,07FH
  160.               JNZ              AGAIN0
  161.             
  162.               MOV              AL,000H
  163.               MOV              DX,PA_ADD
  164.               OUT              DX,AL
  165.             
  166.               MOV              AL,0FFH
  167.               MOV              DX,PB_ADD
  168.               OUT              DX,AL
  169.                            
  170.               POP     AX
  171.               POP              BX
  172.               POP              CX
  173.               POP              DI
  174.               POP              DX
  175.               RET
  176. LED_PANDUAN ENDP
  177. ;------------------------------------------------------------
  178. ;程序功能:點亮之前,從ADC0809讀取數據
  179. ;入口參數:
  180. ;出口參數:無
  181. ;注意事項:注意DI的值
  182. ;2016/10/26 CJP
  183. ;------------------------------------------------------------   
  184. DATA_READ1 PROC NEAR
  185.               MOV              DX,ADC0809_ADD
  186.               OUT               DX,AL
  187.               MOV                DX,PC_ADD
  188. WAIT11:
  189.                  IN                AL,DX
  190.               AND               AL,001H
  191.               CMP               AL,001H
  192.               JZ                READ_OK
  193.               JMP               WAIT11
  194. READ_OK:
  195.               MOV                DX,ADC0809_ADD
  196.               IN                 AL,DX
  197.               MOV              AH,AL
  198.                 RET               
  199. DATA_READ1 ENDP   
  200. ;------------------------------------------------------------
  201. ;程序功能:點亮之前,從ADC0809讀取數據
  202. ;入口參數:
  203. ;出口參數:無
  204. ;注意事項:注意DI的值
  205. ;2016/10/26 CJP
  206. ;------------------------------------------------------------   
  207. DATA_READ PROC NEAR
  208.                 PUSH              DX
  209.               MOV              DX,ADC0809_ADD
  210.               OUT               DX,AL
  211.               MOV                DX,PC_ADD
  212. WAIT111:
  213.                  IN                AL,DX
  214.               AND               AL,001H
  215.               CMP               AL,001H
  216.               JZ                READ_OK1
  217.               JMP               WAIT111
  218. READ_OK1:
  219.               MOV                DX,ADC0809_ADD
  220.               IN                 AL,DX
  221.             
  222.               SUB              AH,5
  223.               CMP              AH,AL
  224.               JA              NEXTT
  225.             
  226.               POP              DX
  227.                  RET               
  228. NEXTT:                           
  229.               MOV              AL,[DI]
  230.               OR                AL,BH
  231.               MOV              [DI],AL
  232.                  POP              DX
  233.                 RET
  234. DATA_READ ENDP   
  235. ;-------------------------------------------------------
  236. ;程序功能:刷新,穩定位置
  237. ;入口參數:
  238. ;出口參數:無
  239. ;注意事項:無
  240. ;2016/9/26 CJP
  241. ;-------------------------------------------------------
  242. LED_SCAN PROC NEAR
  243.               PUSH              DX
  244.               PUSH              DI
  245.               PUSH              CX
  246.               PUSH              BX
  247.               PUSH              AX            
  248.               MOV              DI,OFFSET DELAY_DATA
  249.               MOV              BL,07FH
  250.               MOV              CX,8
  251. AGAIN000:
  252.               MOV              DX,PB_ADD
  253.               MOV              AL,BL
  254.               OUT              DX,AL
  255.               MOV              AL,[DI]
  256.               MOV              DX,PA_ADD
  257.               OUT              DX,AL
  258.               CALL              DELAY                           
  259.               CALL              XIAOYIN
  260.               INC              DI
  261.               ROR              BL,1
  262.               LOOP              AGAIN000
  263.             
  264.               CALL              XIAOYIN
  265.             
  266.               POP              AX
  267.               POP              BX
  268.               POP              CX
  269.               POP              DI
  270.               POP              DX
  271.               RET
  272. LED_SCAN ENDP
  273. ;---------------------------------------------------------------------
  274. ;程序功能:判斷PC5是否按下,按下時,保存數據
  275. ;入口參數:無
  276. ;出口參數:無
  277. ;注意事項:無
  278. ;2016/10/10 CJP
  279. ;---------------------------------------------------------------------
  280. KEY_BAOCUN  PROC NEAR
  281.               PUSH              DI
  282.               PUSH              DX
  283.               PUSH              SI
  284.               PUSH              BX
  285.               PUSH              AX
  286.             
  287.               MOV              DX,PC_ADD
  288.               IN              AL,DX
  289.               AND              AL,020H
  290.               CMP              AL,020H
  291.               JNZ              BAOCUN_END
  292.             
  293.               CALL              DELAY            
  294.             
  295.               MOV              DX,PC_ADD
  296.               IN              AL,DX
  297.               AND              AL,020H
  298.               CMP              AL,020H
  299.               JNZ              BAOCUN_END
  300. BAOCUN_WAIT:
  301.               MOV              DX,PC_ADD
  302.               IN              AL,DX
  303.               AND              AL,020H
  304.               CMP              AL,020H
  305.               JZ              BAOCUN_WAIT
  306.               MOV              CX,8
  307.               MOV              DI,OFFSET              DELAY_DATA
  308.               MOV              SI,OFFSET              COPY_DATA
  309. COPY:
  310.               MOV              AL,[DI]
  311.               MOV              [SI],AL
  312.               INC              SI
  313.               INC              DI
  314.               LOOP              COPY
  315. BAOCUN_END:
  316.               POP              AX
  317.               POP              BX
  318.               POP              SI
  319.               POP              DX
  320.               POP              DI
  321.               RET            
  322. KEY_BAOCUN  ENDP
  323. ;------------------------------------------------------------------
  324. ;程序功能:判斷PC2是否按下,按下時,清除數據
  325. ;入口參數:無
  326. ;出口參數:無
  327. ;注意事項:無
  328. ;2016/10/10 CJP
  329. ;--------------------------------------------------------------------
  330. KEY_CLEAR  PROC NEAR
  331.               PUSH              DX
  332.               PUSH              SI
  333.               PUSH              DI
  334.               PUSH              CX
  335.               PUSH              AX
  336.                            
  337.               MOV              DX,PC_ADD
  338.               IN              AL,DX
  339.               AND              AL,040H
  340.               CMP              AL,040H
  341.               JNZ              CLEAR_END
  342.             
  343.               MOV              DX,1
  344.               CALL              DELAY              ;此處延時1ms
  345.             
  346.               MOV              DX,PC_ADD
  347.               IN              AL,DX
  348.               AND              AL,040H
  349.               CMP              AL,040H
  350.               JNZ              CLEAR_END
  351. CLEAR_WAIT:
  352.               MOV              DX,PC_ADD
  353.               IN              AL,DX
  354.               AND              AL,040H
  355.               CMP              AL,040H
  356.               JZ              CLEAR_WAIT
  357.               MOV              CX,8
  358.               MOV              DI,OFFSET              DELAY_DATA
  359. CLEAR:
  360.               MOV              AL,000H
  361.               MOV              [DI],AL
  362.               INC              DI
  363.               LOOP              CLEAR
  364. CLEAR_END:
  365.               POP              AX
  366.               POP              CX
  367.               POP              DI
  368.               POP              SI
  369.               POP              DX
  370.               RET            
  371. KEY_CLEAR  ENDP
  372. ;--------------------------------------------------------------------
  373. ;程序功能:判斷PC8是否按下,按下時,回放圖像
  374. ;入口參數:無
  375. ;出口參數:無
  376. ;注意事項:無
  377. ;2016/10/10 CJP
  378. ;--------------------------------------------------------------------
  379. KEY_HUIFANG  PROC NEAR
  380.               PUSH              DX
  381.               PUSH              SI
  382.               PUSH              CX
  383.               PUSH              BX
  384.               PUSH              AX
  385.             
  386.               MOV              DX,PC_ADD
  387.               IN              AL,DX
  388.               AND              AL,080H
  389.               CMP              AL,080H
  390.               JNZ              HUIFANG_END
  391.             
  392.               MOV              DX,1
  393.               CALL              DELAY              ;此處延時2ms
  394.             
  395.               MOV              DX,PC_ADD
  396.               IN              AL,DX
  397.               AND              AL,080H
  398.               CMP              AL,080H
  399.               JNZ              HUIFANG_END
  400. HUIFANG_WAIT:
  401.               MOV              DX,PC_ADD
  402.               IN              AL,DX
  403.               AND              AL,080H
  404.               CMP              AL,080H
  405.               JZ              HUIFANG
  406.               JMP              HUIFANG_END
  407. HUIFANG:
  408.               CALL              LED_COPY_SCAN
  409.               JMP              HUIFANG_WAIT
  410. HUIFANG_END:
  411.               POP              AX
  412.               POP              BX
  413.               POP              CX
  414.               POP              SI
  415.               POP              DX
  416.               RET                           
  417. KEY_HUIFANG  ENDP
  418. ;-------------------------------------------------------
  419. ;程序功能:顯示保存的圖像
  420. ;入口參數:
  421. ;出口參數:無
  422. ;注意事項:無
  423. ;2016/9/26 CJP
  424. ;-------------------------------------------------------
  425. LED_COPY_SCAN PROC NEAR
  426.               PUSH              DX
  427.               PUSH              DI
  428.               PUSH              CX
  429.               PUSH              BX
  430.               PUSH              AX            
  431.               MOV              DI,OFFSET COPY_DATA
  432.               MOV              BL,07FH
  433.               MOV              CX,8
  434. AGAIN000O:
  435.               MOV              DX,PB_ADD
  436.               MOV              AL,BL
  437.               OUT              DX,AL
  438.               MOV              AL,[DI]
  439.               MOV              DX,PA_ADD
  440.               OUT              DX,AL
  441.               CALL              DELAY                           
  442.               CALL              XIAOYIN
  443.               INC              DI
  444.               ROR              BL,1
  445.               LOOP              AGAIN000O
  446.               CALL              XIAOYIN
  447.               POP              AX
  448.               POP              BX
  449.               POP              CX
  450.               POP              DI
  451. …………
  452. …………
  453. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

完整的Word格式文檔51黑下載地址(共24頁):
手寫筆綜合設計實驗(微機實驗報告).doc (83.69 KB, 下載次數: 19)




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91免费视频观看 | 艹逼网| 怡红院成人在线视频 | 91国在线观看 | 日韩精品在线一区 | 亚洲一区二区三区在线 | 亚洲成人一二区 | 一区二区三区不卡视频 | 亚洲自拍偷拍视频 | 亚洲精品4 | 久久不射网| 性欧美xxxx | 超碰97人人人人人蜜桃 | 国产一区久久久 | 中文字幕在线观看第一页 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 先锋资源网站 | 国产高清在线观看 | 亚洲精品粉嫩美女一区 | 国产精品一区二区三区四区 | 亚洲 欧美 在线 一区 | 日韩精品影院 | 国产探花在线精品一区二区 | 日韩av啪啪网站大全免费观看 | 美女视频久久 | 久久www免费人成看片高清 | 羞羞的视频网站 | 欧美精品一区在线发布 | 精品国产色 | 精品在线一区二区 | 久久综合久色欧美综合狠狠 | 亚洲精品中文字幕在线观看 | 日韩日韩日韩日韩日韩日韩日韩 | 毛片一区二区三区 | 成人二区 | 国产美女高潮 | 亚洲精品久久久久国产 | 亚洲一区二区三区免费观看 | 一区视频在线播放 | 久久aⅴ乱码一区二区三区 91综合网 | 九九九视频精品 |