標題: 單片機用點陣LED實現靜態字符顯示實驗程序 [打印本頁]
作者: 1zzb 時間: 2022-3-5 18:02
標題: 單片機用點陣LED實現靜態字符顯示實驗程序
實驗目的:
1、理解LED屏結構及工作原理;
2. 掌握LED屏的靜態顯示方式;
3. 掌握LED屏與單片機的接線方法。
二、實驗環境:
計算機 1 臺
三、 實驗步驟:
l、步驟一:在D盤或E盤以自己名字建立自已的文件夾。
1)打開keil軟件,建立keil工程。
2) 將工程起名為led16保存在自已的文件夾中。
3) 選擇CPU,我們這里選擇Atmel公司的AT89S52
4) 選好芯片確定后,彈出提示框,問是否添加一些文件,我們這里選“否”
5) 下面新建文本文檔,用來編寫源程序。
6) 按下保存圖標,保存新建的文件以“led16.c”文件名保存在工程文件夾下。
7) 將新建的文件加入工程中。在Source Group 1上點鼠標右鍵,在彈出的菜單上選擇Add Files…選項
在彈出的對話框中選擇工程文件夾下剛才新建的“led16.c”文件。點擊Add,再點擊Close關閉對話框。
8) 設置工程,讓其編譯時輸出十六進制可執行文件。至此,工程文件已經建立設置完畢,在開始寫源程序之前,我們先用Proteus軟件設計出led燈的電路圖。
2、步驟二:設計電路圖。
1) 首先選擇要用的器件。如下圖,按下P 圖標進行器件選擇。輸入單片機芯片名AT89C52,器件便會出現在右側列表中。雙擊列表中的芯片名,它便會加入到主界面的器件表中, 并按下圖完成電路圖連接。至此,工程文件已經建立設置完畢,在開始寫源程序之前,我們先用Proteus軟件設計出共陽數碼管顯示的電路圖。
2、步驟二:設計電路圖。
1) 首先選擇要用的器件。如下圖,按下圖標進行器件選擇。
單片機芯片名AT89C52、按鍵button、電阻res,無極電容cap,有極電容cap-elec,晶振crystal,8x8點陣matrix-8X8-orange排阻respack-8,并按下圖完成電路圖連接。
到這里電路已將設計完畢,下面我們到Keil中進行相關程序的編寫。
3、步驟三:編輯,編譯并運行程序。
1、任務要求:
用8*8LED點陣顯示0~9數字,P0口接LED點陣陽極,由于P0口沒有上拉能力,所以采用排阻上接電源提供上拉電流,P2口接LED點陣陰極。分屏顯示數字0~9,可以利用通過二維數組把0~9的數據碼存放起來。定時器T0用來定時1s,每顯示完一個數字延時1s,即可讓點陣每隔1s依次顯示0~9,實現分屏顯示的效果。
2、程序:
- #include<reg52.h>
- #define uchar unsigned char
- uchar num; //要顯示的數字
- void display()
- {
- uchar i,j,k,n;
- //數字0~9的8*8點陣
- uchar code dizn[]={
- 0x00,0x00,0x3E,0x41,0x41,0x41,0x3E,0x00,//0
- 0x00,0x00,0x00,0x00,0x21,0x7F,0x01,0x00,//1
- 0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00,//2
- 0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00,//3
- 0x00,0x00,0x0c,0x14,0x24,0x7F,0x04,0x00,//4
- 0x00,0x00,0x72,0x51,0x51,0x51,0x4E,0x00,//5
- 0x00,0x00,0x3E,0x49,0x49,0x49,0x26,0x00,//6
- 0x00,0x00,0x40,0x40,0x40,0x4F,0x70,0x00,//7
- 0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00,//8
- 0x00,0x00,0x32,0x49,0x49,0x49,0x3E,0x00,//9
- };
- k=0x01; //初始化,顯示第一列
- n=num*8; //初始化為所顯示數字的第一列所在位置
- for(i=8;i>0;i--)
- {
- P0 =dizn[n]; //輸出行碼
- P2= ~k; //輸出列碼,讓指定的列顯示
- k =k <<1; //指向下一列
- n++; //指向點陣中的下一個字節
- for(j=100;j>0;j--);//延遲一段時間,約200μs
- P2=0xFF; //關閉顯示
- }
- }
- void main(void)
- {
- TMOD=0x01 ;
- TH0=(65536-10000)/256;
- TL0=(65536-10000)%256;
- TR0=1;
- ET0=1;
- EA=1; //到這里為止,將定時器0初始化為10ms中斷
- num =0;
- //顯示的第一個數字為“0”
- while(1)
- {
- display(); //循環調用顯示函數顯示 num的值
- }
- }
- void timer0()interrupt 1
- {
- static uchar t=0;
- TH0=(65536-10000)/256;
- TL0=(65536-10000)%256;
- t++;
- if(t==100) //判斷是否到1s
- {
- t =0; //1時間到,將軟件計數單元清0
- num ++; //計算要顯示的下一個數碼
- if(num>9)num=0;// 如果大于9,則又從0開始
- }
- }
復制代碼 3、對源程序進行編譯。按下界面上的編譯按鍵進行編譯程序。并生成了hex可執行文件,該文件在工程文件夾下。
將生成的HEX可執行文件加入Proteus仿真軟件at89c52芯片中。
四、問題思考:
使用模軟件獲得漢字“王”的編碼后,修改程序,讓8*8 LED點陣顯漢字“王”
以上圖文的Word格式文檔下載(內容和本網頁上的一模一樣,方便大家保存):
實驗十一:用點陣LED實現靜態字符顯示 - 副本.docx
(112.67 KB, 下載次數: 12)
2022-3-5 17:57 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://m.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
精品视频国产
|
a级片网站
|
国产寡妇亲子伦一区二区三区四区
|
黄色免费网站视频
|
欧美区日韩区
|
日本加勒比在线观看
|
午夜在线影院
|
官场少妇尤物雪白高耸
|
91精品91久久久中77777
|
国产二区精品
|
亚洲一区二区av
|
色啪视频
|
欧美片网站yy
|
99热最新
|
国产精品久久久久久久成人午夜
|
草草视频在线观看
|
国产伦精品一区二区免费
|
午夜黄色影院
|
精品国产一区二区三
|
美女国产精品
|
欧美理伦
|
天天爽天天爽
|
国产综合视频
|
国产精品一级二级
|
日本一区二区三区免费观看
|
日韩欧美在线一区
|
一级片免费在线观看
|
免费观看一区二区
|
91精品国产色综合久久不卡98
|
欧美精品久久久久
|
亚洲精品久久久久avwww潮水
|
亚洲va韩国va欧美va精品
|
欧美啪啪网
|
久久午夜精品
|
欧美另类小说
|
欧美精品一二三
|
艳妇乳肉亭妇荡乳av
|
中文字幕www
|
教室脔到她哭h粗话h好爽视频
|
日韩视频精品
|
天堂资源中文在线
|