999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

兩位數碼管動態顯示編程常見問題分析

2016-12-31 00:00:00席玉青陳化奎
科技創新與應用 2016年12期

摘 要:由于單片機技術的發展,才能使LED七段數碼管能夠在減少驅動器的情況下直接被驅動。由于LED數碼管顯示技術的優勢使得它被廣泛應用在工業過程控制系統、智能儀表,智能產品等領域。文章重點介紹了LED(light emission diode)數碼管動態顯示在編程中的常見問題分析。

關鍵詞:單片機;數碼管;動態顯示;問題分析

1 動態顯示

1.1 動態顯示的引入

用數碼管顯示信息時,每個數碼管至少需要8個I/O口,如果需要多個數碼管,則需要太多的I/O口,而單片機的I/O口是有限的。在實際應用中,一般采用動態顯示的方式解決此問題。即將所有位數碼管的段選線并聯在一起,由位選控制端決定數碼管的工作狀態。多位數碼管顯示時應采用動態掃描方式。

1.2 動態顯示的原理

所謂動態掃描顯示即輪流向各位數碼管送出字形碼和相應的位選,利用發光管的余輝和人眼視覺暫留作用,使人感覺好像各位數碼管同時都在顯示。動態顯示的亮度比靜態顯示要差一些,所以在選擇限流電阻時應略小于靜態顯示電路中的。

2 兩位數碼管動態顯示編程常見問題分析

文章主要針對實現兩位數碼管顯示24進制數的功能,即顯示的數據范圍為00~23。在PROTEUS中選用的單片機的類型為AT89C51,7個電阻組成的排阻和2位共陰極的數碼管。兩位數碼管動態顯示原理圖如圖1所示

2.1 在KEIL軟件使用時易出現的問題

(1)在KEIL軟件中使用小寫的p0~p3。KEIL軟件編程時應注意區分字母的大小寫。在端口P0~P3應用時均使用大寫字母,如sbit led=P2^0; 因為在“regx51.h”文件中寄存器位置定義分別為 “sfr P0= 0x80;”,“sfr P1=0x90;”“sfr P2= 0xA0;”“sfr P3 = 0xB0;”。

(2)添加.c文件不成功。若是.c文件沒有找到指定的存儲位置,而是手動輸入的名字,則在Keil軟件中顯示如: 。若是.c文件為空,說明在工程上添加.c文件不成功。添加.c文件成功在Keil軟件中顯示如: 。

(3)頭文件未引用。若是使用“_crol_(變量,移動位數)”循環左移函數,必須引用頭文件#include

(4)未生成“××.HEX”文件。選擇Options for Target'Target1'選項,單擊Output選項卡,選中Create HEX File (打上對鉤),單擊“確定”按鈕,完成設置。

2.2 在KEIL軟件中生成的“××.HEX”文件下載到PROTEUS單片機中,進行模擬演示時可能出現的問題

(1)軟件編程和硬件匹配問題

a.段碼的選擇。在KEIL軟件編程時,需要調用共陰極的數碼管。由于數碼管需要顯示的數字包含0~9,所以在程序中需要調用0~9的編碼,為了方便調用,常常把編碼以數組的形式表示,如:unsigned char duanma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f} ;

b.位選的控制。兩位數碼管中選擇性顯示的控制,即位控端的控制,若使第一位數碼管工作,P3.1必須為低電平,即P3=0xfe; 若使第二位數碼管工作,P3.0必須為低電平,即P3=0xfd。

(2)數碼管顯示個位和十位顛倒

任何一個由兩位數字組成的十進制數均可以由十位上的數字×10+個位數字表示。如:a=b×10+c,則a表示一個兩位的十進制數,b表示十位上的數字,c表示個位上的數字。其中a存放在數組shijian[]中,而b、c則存放在數組geshi[]中。

a.數組當中數據調用順序不正確。在geshi[]中,geshi[0]存放十位上的數字,geshi[1]存放個位上的數字。如:個位顯示“3”,則程序編寫為:P3=0xfe,P2= duanma[geshi[1]] 。

b.兩位十進制數進行數字拆分不正確。十位上數字利用“/”(取整)算出, 個位上數字采用“%”(求余)得出。

個位上數字:geshi[1]=shijian[0]%10;

十位上數字:geshi[0]=shijian[0]/10;

(3)程序編譯正確,但是下載至單片機數碼管不顯示數字或顯示亂碼。

a.軟件編程所用的編碼和硬件使用數碼管的管型不一致。

b.軟件編程時數碼管的位選信號不正確。

c.數組中的數據未初始化。如geshi[]={0,0,0};則該數組中有3個數值,分別為geshi[0]、geshi[1]和geshi[2],若是在程序中出現“geshi[3]”,內部的數據取決于具體的編譯器和系統,則geshi[3]具體的數值不一定,所以一般均需要進行必要的初始化。

d.調用數組中的數據不正確。

編寫程序時,調用數組內的數據要正確。如:k=0x7f;for(i=0;i<8;i++){P3=k; P2=duanma[geshi[7-i]];k=_cror_(k,1);delay();} 當i=0時,P3=0x7f; P2=duanma[geshi[7]];先調用geshi[]中下標為7的數值,再調用duanma[]中下標為geshi[7]的數值送至P2。

e.數據范圍不正確。如shijian[0]++;if(shijian[0]>256)shijian[0]=0; 對于無符號字符型數據的范圍為0~255。若是需要和256進行比較,可以定義為“unsigned int shijian[]={0};” 。

綜上所述,編寫程序時常見問題的原因如下:

(1)學習者對C語言中的部分基礎知識掌握不牢固;(2)學習者對相關單片機基礎知識理解不透徹;(3)學習者對程序控制要求不

明確。

通過KEIL軟件和PROTEUS軟件的聯合調試,學習者能夠及時快捷地掌握單片機和C語言中的相關知識,理解相關器件的工作原理,進而掌握編寫程序的一般方法和技巧。

參考文獻

[1]張靖武.單片機系統的PROTEUS設計與仿真[M].北京:電子工業出版社,2007.

[2]譚浩強.C語言設計(第4版)[M].清華大學出版社,2010.

主站蜘蛛池模板: 国产亚洲高清在线精品99| 日本免费精品| 日韩无码黄色| 天天干天天色综合网| 亚洲欧美在线综合图区| 99视频有精品视频免费观看| 久99久热只有精品国产15| 亚洲国产系列| 久久精品无码国产一区二区三区| 91原创视频在线| 国产精品第三页在线看| 国产高清又黄又嫩的免费视频网站| 亚洲无码精品在线播放| 亚洲三级a| 四虎成人免费毛片| 国产精品内射视频| 99视频在线看| 国产成年女人特黄特色毛片免 | 在线无码九区| 黄色网在线| 91精品专区国产盗摄| 69国产精品视频免费| 国产97区一区二区三区无码| 91蝌蚪视频在线观看| 在线观看热码亚洲av每日更新| 午夜性刺激在线观看免费| 欧美不卡视频在线观看| 日韩欧美中文亚洲高清在线| 亚洲国内精品自在自线官| 伊人久综合| 免费啪啪网址| 乱人伦视频中文字幕在线| 在线精品视频成人网| 国产真实自在自线免费精品| 国产永久无码观看在线| 久久久久国色AV免费观看性色| 欧美中出一区二区| 在线欧美一区| 欧美色99| 亚洲无码视频一区二区三区| 免费可以看的无遮挡av无码| 国内精品伊人久久久久7777人| 亚洲欧美激情另类| 亚洲中文字幕日产无码2021| 丰满人妻一区二区三区视频| 国产丝袜无码精品| 久久无码av一区二区三区| 精品国产三级在线观看| 欧美一级黄片一区2区| 国产在线观看成人91| 亚洲Aⅴ无码专区在线观看q| 四虎AV麻豆| 中文字幕自拍偷拍| jizz在线观看| 久久性妇女精品免费| 91精品国产自产在线观看| 91精品国产91欠久久久久| 尤物特级无码毛片免费| 亚洲成在线观看| 欧美日本视频在线观看| av一区二区人妻无码| 狠狠v日韩v欧美v| 亚洲天堂网在线观看视频| 亚洲成在人线av品善网好看| 久久久久久国产精品mv| 国产色伊人| 国产在线拍偷自揄拍精品| 麻豆精品在线视频| 精品无码专区亚洲| 亚洲午夜天堂| 国产大全韩国亚洲一区二区三区| 女人爽到高潮免费视频大全| 久久精品国产精品国产一区| 欧美区日韩区| 亚洲人成电影在线播放| 中文字幕在线播放不卡| 99视频精品全国免费品| 国产免费久久精品99re丫丫一| 2020极品精品国产| 国产AV毛片| 天堂亚洲网| 黄色网站在线观看无码|