由Proteus仿真入門單片機學習
3.3主程序
#include
#include
#include
void main(void)
{
static short P1_out_cnt=0; //定義對P1 口輸出時計數(shù)
int_init(); //調用中斷初始化子程序
while(1) //下面為一個無限循環(huán)
{
_nop_();
}
}
3.4時鐘中斷子程序
void timer_0 (void) interrupt 1 using 1
{ TL0= (65535-1000/16);
TH0= ((65535-1000/16)>>8); //重置時鐘中斷0 的時間計數(shù)寄存器值
P1=P1_out[P1_out_cnt]; //P1 口按數(shù)組給定值輸出
P1_out_cnt++; //指向數(shù)組中下一個值
P1_out_cnt=0x0f; //00001111B,保證0≤P1_out_cnt≤15
}
4 仿真與實驗
在以上工作完成之后,通過仿真軟件Proteus7 professional 下面的ISIS7 Professional 菜單窗口里對一些參數(shù)進行設定,為了簡單完成仿真,在此只對必要的參數(shù)進行設定:首先對Design/Configure Power Rail 下的電源Vcc=5V 和GND=0 進行設定,其次是對Source/add or remove source code file 下的源程序代碼名和Code generation tool=ASEM51 進行設定,在次是對雙擊單片機U1 彈出的菜單進行Clock Frequency 和Program file 目標代碼(有源代碼編譯后產生的HEX 后綴名文件)的設定。最后點擊Debug/Execute 便開始仿真運行,在運行過程中可以看到電腦屏上電路圖中U1 輸出口的輸出狀態(tài),虛擬示波器上顯示如圖3 所示的波形。
為了對所仿真的結果做進一步的認證,在此設計了實際的電路來與之加以比較,如圖4所示是按照圖1 電路圖設計了實際電路板之后,用示波器對其輸出進行測試所得實際波形,實驗表明仿真的結果與實際的測試結果相一致。
圖3 仿真輸出波形
圖4 實際輸出波形
5 結束語
對所設計的C 語言程序結合硬件電路的進行了仿真,并通過虛擬示波器顯示了所設計程序運行的結果,并比較了仿真與實際電路運行輸出結果,表明了通過Proteus 仿真軟件可以達到與通過實際電路來學習單片機的效果。
完整的設計了一個項目的硬件電路和C 程序,通過真實具體的正弦波發(fā)生電路及其程序的設計來達到學習單片機引路作用,增強了學習者對單片機工作原理和應用設計的理解,為單片機初學者提供了一種切實可行的方法。
附圖實際測試電路板
注:實際電路板上包涵了文中圖1 的電路
51單片機相關文章:51單片機教程
單片機相關文章:單片機教程
單片機相關文章:單片機視頻教程
單片機相關文章:單片機工作原理
評論