proteus学习笔记一:点亮LED
最近想學習下C51單片機,懶得折騰硬件了,就用proteus軟件學習下,把過程記錄下,希望能夠幫助到想學習C51的人吧。
一、軟件安裝
1)proteus 8.13安裝,請看這里:https://www.aliyundrive.com/s/9DRfHAQfo5G 提取碼: 1d9b ,英文環境好,不用擔心中文兼容性。
2)安裝keil,請看這里:迪文屏幕T5L平臺學習筆記一:開發環境搭建注意事項_無痕幽雨的博客-CSDN博客,說明如果僅僅是開發C51,ARM和迪文屏幕開發環境不需要搭建。
二、目錄構建
我一般喜歡把和這個項目有關的資料放一個文件夾里面,創建LED文件夾(路徑不要有中文),然后再里面創建4個文件夾:hardware、simulation、software、手冊資料。
hardware:放置PCB工程文件,制版使用,如AD9工程。
simulation:放置仿真工程文件,如proteus工程。
software:放置軟件工程文件,如:keil工程文件。
手冊資料:放置本工程用到的硬件資料手冊等。
三、創建proteus工程
1)file->new project,路徑不要有中文。
?
2)選擇器件,單擊左方的P按鈕,出現器件選擇界面:
?3)選擇C51單片機,在搜索欄數據89C51,這你選擇AT89C51RD2
?雙擊,左側的器件欄就會出現選中器件名稱:
?4)搜索LED,選擇藍色
6)選擇電阻,1K:
?
7)選擇電源和地
8)連接電路圖
雙擊燈,修改電流為2mA,不然IO口驅動不了。
整體電路:
直接點擊運行,燈就會亮:
?四、創建keil工程
創建工程過程忽略,不知道的小伙伴請自行百度,要實現的功能就是燈亮1S,然后滅1S,實現閃爍。
1)寫一個1ms的延時函數,這用示波器查看下,是不是1ms
代碼:
//LED sbit tLed1 = P2^7;static void delay_ms(uint16_t hwTimer) {uint16_t i = 0,j=0;for(i=0;i<hwTimer;i++){ #if (11059200 == HSE_VALUE)j = 110; #elif (12000000 == HSE_VALUE)j = 109; #endifwhile(j--);} }int main(void) {//初始化DIS_INT();{//鎖存輸出}EN_INT();while(1){tLed1 = 0;delay_ms(1);tLed1 = 1;delay_ms(1);} }?把生產的HEX文件拷貝到仿真文件夾,然后雙擊單片機,選擇HEX文件,這里晶振選擇的12M:
?運行:
從示波器看,是1MS。?
修改代碼:
int main(void) {//初始化DIS_INT();{//鎖存輸出}EN_INT();while(1){tLed1 = 0;delay_ms(1000);tLed1 = 1;delay_ms(1000);} }生成HEX,然后選擇HEX文件,運行,即可實現1S亮,1S滅的效果。
總結
以上是生活随笔為你收集整理的proteus学习笔记一:点亮LED的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python pdf编辑器开发_使用py
- 下一篇: 2018年国内十大技术突破:22纳米光刻