欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4162|回復(fù): 1
收起左側(cè)

我的基于單片機(jī)內(nèi)部定時(shí)器中斷計(jì)數(shù)器設(shè)計(jì),含源碼,仿真原理圖

[復(fù)制鏈接]
ID:819243 發(fā)表于 2020-9-15 13:22 | 顯示全部樓層 |閱讀模式
電源電路就是單片機(jī)的供電電路,一般是3.3V或者5V,具體多少要參考各種型號(hào)的單片機(jī)的工作電壓,通常情況下是5V,這里是指通常情況下。
整體設(shè)計(jì)思路:
單片機(jī)中斷初始化程序應(yīng)完成du如下工作:
1、對(duì)TMOD賦值,以確定T0和T1的工作方式。
2、計(jì)算初值,并將其寫入TH0、TL0或TH1、TL1。
3、中斷方式時(shí),則對(duì)IE賦值,開(kāi)放中斷。
4、使TR0或TR1置位,啟動(dòng)定時(shí)/計(jì)數(shù)器定時(shí)或計(jì)數(shù)。
整體設(shè)計(jì)思路
單片機(jī)的中斷為向量中斷,即一響應(yīng)中斷就轉(zhuǎn)入固定入口地址執(zhí)行中斷服務(wù)程序。各中斷源服務(wù)程序的入口地址

兩個(gè)中斷入口間只相隔8字節(jié),難以安放一個(gè)完整的中斷服務(wù)程序。因此,通常在中斷入口地址處放置一條無(wú)條件轉(zhuǎn)移指令,使程序執(zhí)行轉(zhuǎn)向中斷服務(wù)程序入口。
定時(shí)器中斷是由單片機(jī)中的定時(shí)器溢出而申請(qǐng)的中斷。51單片機(jī)中有兩個(gè)定時(shí)器T0和T1

有電路仿真原理圖(10分);圖中元件參數(shù)標(biāo)注詳細(xì)正確(10分);有操作過(guò)程說(shuō)明(10分);有工作原理的文字描述(5分);對(duì)電路原理的描述全面(5分)。
1.電路仿真原理圖:
OIZT1LJ8[5{3{FL{]$PSW[7.png

電路原理描述:
共陽(yáng)型數(shù)碼管字模:
{~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F }; //{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1, 0x86,0x8e};
//0,1,2,3,4,5,6,7,8,9
中斷裝置和中斷處理程序統(tǒng)稱為中斷系統(tǒng)。
中斷系統(tǒng)是計(jì)算機(jī)的重要組成部分。實(shí)時(shí)控制、故障自動(dòng)處理、計(jì)算機(jī)與外圍設(shè)備間的數(shù)據(jù)傳送往往采用中斷系統(tǒng)。中斷系統(tǒng)的應(yīng)用大大提高了計(jì)算機(jī)效率。
3.工作原理:
定時(shí)器/計(jì)數(shù)器初始化的一般步驟 51 單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器是可編程序的,通過(guò)程序設(shè)置寄存器對(duì)它進(jìn)行設(shè)定和控制,因此需要進(jìn)行初始化操作。
(1)確定定時(shí)器/計(jì)數(shù)器的工作方式:   
   通過(guò)對(duì) TMOD 中的方式選擇位 M1 和 M0 賦值實(shí)現(xiàn)。
(2)預(yù)置定時(shí)或計(jì)數(shù)初值:  
根據(jù)定時(shí)時(shí)間或計(jì)數(shù)次數(shù),將計(jì)算的定時(shí)或計(jì)數(shù)初值寫入 TH0、TL0 或 TH1、TL1。如預(yù)置 T0 初值指令。
(3)開(kāi)放定時(shí)器/計(jì)數(shù)器的中斷,設(shè)定中斷優(yōu)先級(jí):
通過(guò)給 IE 寄存器中的相關(guān)位賦值來(lái)實(shí)現(xiàn)。
(4)啟動(dòng)定時(shí)器/計(jì)數(shù)器:      
通過(guò)給 TCON 中的 TR1 或 TR0 置 1 實(shí)現(xiàn)。
5電路原理:
定時(shí)器/計(jì)數(shù)器的為自動(dòng)恢復(fù)初值(初值自動(dòng)裝入)的 8 位定時(shí)器/計(jì) 數(shù)器。TLx(x = 0,1)作為常數(shù)緩沖器,當(dāng) TLx 計(jì)數(shù)溢出時(shí),在溢出標(biāo)志 TFx 置 “1”的同時(shí),還自動(dòng)將 THx 中的初值送至 TLx,使 TLx 從初值開(kāi)始重新計(jì)數(shù)。 定時(shí)器/計(jì)數(shù)器的方式 2 工作過(guò)程如下圖所示。該方式可省去用戶軟件中重裝初
值的指令執(zhí)行時(shí)間,簡(jiǎn)化定時(shí)初值的計(jì)算方法,可以相當(dāng)精確地確定定時(shí)時(shí)間。

單片機(jī)源程序如下:
  1. #include <at89x51.h>
  2. #define LEDCHAR P1                        //LED 字符I/O 口,P1.0~7對(duì)應(yīng)A~DP
  3. #define LEDSELECT P0                //LED 選擇I/O口.   P0.0~5對(duì)應(yīng)LED的1~6

  4. unsigned  char code uca_LEDCode[]=
  5.                         {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
  6.                                         //0,1,2,3,4,5,6,7,8,9


  7. unsigned char code uca_LEDSelect[]={0x01,0x02,0x04,0x08,0x10,0x20};        
  8.                                         //分別點(diǎn)亮第6,5,4,3,2,1號(hào)燈.

  9. unsigned char uca_LedNum[6];                        
  10.                                         //存放數(shù)字的各個(gè)位

  11. //*                        函數(shù)實(shí)現(xiàn)

  12. unsigned char * pucLedNum(unsigned long ulNumber)
  13. {
  14.         if(ulNumber>999999)
  15.                 ulNumber=999999;
  16.         if(ulNumber<0)
  17.                 ulNumber=0;
  18.         uca_LedNum[0] = ulNumber/100000;                                                                   //最高位

  19.         uca_LedNum[1] = (ulNumber-100000*(long)uca_LedNum[0])/10000;

  20.         uca_LedNum[2] = (ulNumber-100000*(long)uca_LedNum[0]-10000*(long)uca_LedNum[1])/1000;

  21.         uca_LedNum[3] = (ulNumber-100000*(long)uca_LedNum[0]-10000*(long)uca_LedNum[1]
  22.                                         -1000*(long)uca_LedNum[2])/100;

  23.         uca_LedNum[4] = (ulNumber-100000*(long)uca_LedNum[0]-10000*(long)uca_LedNum[1]
  24.                                         -1000*(long)uca_LedNum[2]-100*(long)uca_LedNum[3])/10;

  25.         uca_LedNum[5] = (ulNumber-100000*(long)uca_LedNum[0]-10000*(long)uca_LedNum[1]
  26.                                         -1000*(long)uca_LedNum[2]-100*(long)uca_LedNum[3]-10*(long)uca_LedNum[4]);

  27.         return uca_LedNum;
  28. }



  29. void vShowOneNum(unsigned char ucOneNum,unsigned char ucOrder)
  30. {
  31.         LEDSELECT=0;
  32.         LEDCHAR=uca_LEDCode[ucOneNum];
  33.         LEDSELECT=uca_LEDSelect[ucOrder];                 //ucOrder:0~5(代表從左到右1~6)
  34. }
復(fù)制代碼

上個(gè)月做的設(shè)計(jì)。附件有單片機(jī)源碼,原理圖等。
用AD畫的原理圖,和proteus仿真工程文件以及設(shè)計(jì)的文檔。

都是自己原創(chuàng),分享一下。
@3Q0O2U[QFKA3@ZMF158IFL.png
全部資料51hei下載地址:
定時(shí)器控制單只數(shù)碼管循環(huán)顯示0_F.rar (72.48 KB, 下載次數(shù): 25)
基于單片機(jī)內(nèi)部定時(shí)器中斷計(jì)數(shù)器設(shè)計(jì).docx (455.46 KB, 下載次數(shù): 23)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:637608 發(fā)表于 2022-6-28 09:21 | 顯示全部樓層
NT發(fā)的什么吊文件,牛頭不對(duì)馬嘴
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表