*本文及代碼參閱彭偉《單片機C語言程序設計實訓100例》 一,打開文件(可以隨文下載放置在文檔中打開)。(如下圖1所示)
1.png (635.22 KB, 下載次數: 50)
下載附件
2020-6-28 19:51 上傳
圖1
二,調整原理圖大小,適合可視,另存工程文件。(如下圖2,3,4所示)
2.png (236.03 KB, 下載次數: 62)
下載附件
2020-6-28 19:51 上傳
圖2
3.png (265.8 KB, 下載次數: 44)
下載附件
2020-6-28 19:51 上傳
圖3
4.png (317.84 KB, 下載次數: 39)
下載附件
2020-6-28 19:51 上傳
圖4
三,點擊Source Code標簽。(如下圖5所示)
5.png (153.73 KB, 下載次數: 58)
下載附件
2020-6-28 19:51 上傳
圖5
四,編輯main.c 代碼如Proteus8.9 VSM Studio WINAVR編譯器仿真ATmega16系列a10_8255接口擴展 (如下圖6所示)
6.png (137.85 KB, 下載次數: 52)
下載附件
2020-6-28 19:51 上傳
圖6
五,Main.c 代碼:
//----------------------------------------------------------------- // 名稱: 用8255實現接口擴展 //----------------------------------------------------------------- // 說明: 8255的PA、PB端口分別連接8位數碼管的段碼和位碼, // PC端口連接三只按鍵,正常運行時數碼管顯示一組時間值, // PC端口的三只按鍵可對時間值的各部分分別進行調整. // //----------------------------------------------------------------- #include "myfunc01.h"
//0-9的共陽數碼管段碼表,最后的0xBF表示"-" extern INT8U SEG_CODE[]; //待顯示信息緩沖12-30-50 extern INT8U Disp_Buffer[]; //上次按鍵狀態 extern INT8U Pre_Key_State;
//----------------------------------------------------------------- // 主程序 //----------------------------------------------------------------- int main() { INT8U i; MCUCR |= 0X80; *COM= 0B10001001; while(1) { for(i= 0; i< 8; i++) { *PB= _BV(i); *PA= (INT8U) SEG_CODE[Disp_Buffer[ i]]; [ i] _delay_ms(2); Key_Process(); } } }
Myfunc01.h //****************************************************************************************** #ifndef _MYFUNC01_H_ #define _MYFUNC01_H_ //#define F_CPU 2000000UL #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #define INT8U unsigned char #define INT16U unsigned int //PA,PB,PC端口及命令端口地址定義 #define PA (INT8U*) 0xFF00 #define PB (INT8U*) 0xFF01 #define PC (INT8U*) 0xFF02 #define COM (INT8U*) 0xFF03 void Key_Process(); #endif 六,點擊構建工程按鈕,編譯工程。(如下圖7所示)
7.png (185.54 KB, 下載次數: 44)
下載附件
2020-6-28 19:51 上傳
圖7
七,點擊窗口左下方仿真按鈕,可見虛擬數字屏顯示。 (如下圖8,9,10所示)
8.png (329.24 KB, 下載次數: 48)
下載附件
2020-6-28 19:51 上傳
圖8
9.png (152.27 KB, 下載次數: 60)
下載附件
2020-6-28 19:51 上傳
圖9
10.png (331.48 KB, 下載次數: 49)
下載附件
2020-6-28 19:51 上傳
圖10
八,選擇release,點擊構建工程按鈕,編譯工程生成Hex文件。(如下圖11所示)
11.png (181.44 KB, 下載次數: 56)
下載附件
2020-6-28 19:51 上傳
圖11
附件Proteus8.9 VSM Studio WINAVR編譯器仿真ATmega16系列a10_8255接口擴展在已安裝Proteus8.9的計算機文件夾中打開即可 需要進一步了解,請加入QQ群:976235464 |