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

QQ登錄

只需一步,快速開始

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

電子系統(tǒng)設(shè)計(jì)與實(shí)習(xí)

[復(fù)制鏈接]
ID:109680 發(fā)表于 2016-3-19 13:38 | 顯示全部樓層 |閱讀模式
[p=193, null, left]程序源代碼:analog

[p=193, null, left]elevator.c

[p=181, null, left][size=169px]#include<reg52.h>//(

[p=181, null, left]用于單片機(jī)開發(fā)的一種

[p=181, null, left][size=169px]c

[p=181, null, left]語(yǔ)言

[p=181, null, left][size=169px])

[p=181, null, left]的頭文件

[p=181, null, left][size=169px]#include<absacc.h>//

[p=181, null, left]訪問(wèn)絕對(duì)地址

[p=181, null, left][size=169px]#include<stdio.h>//

[p=181, null, left]標(biāo)準(zhǔn)輸入輸出流

[p=181, null, left][size=169px]#define

[p=181, null, left][size=169px]COM8279

[p=181, null, left][size=169px]XBYTE

[p=181, null, left][size=169px][0X5FFF]

[p=181, null, left][size=169px]//

[p=181, null, left]控制命令地址

[p=181, null, left][size=169px]#define

[p=181, null, left][size=169px]DATA8279

[p=181, null, left][size=169px]XBYTE

[p=181, null, left][size=169px][0X5EFF]

[p=181, null, left][size=169px]//

[p=181, null, left]數(shù)據(jù)地址

[p=181, null, left][size=169px]#define

[p=181, null, left][size=169px]uchar

[p=181, null, left][size=169px]unsigned

[p=181, null, left][size=169px]char//

[p=181, null, left]宏定義

[p=181, null, left][size=169px]#define

[p=181, null, left][size=169px]uint

[p=181, null, left][size=169px]unsigned

[p=181, null, left][size=169px]int//

[p=181, null, left]定義鍵內(nèi)碼傳遞參數(shù)

[p=181, null, left][size=169px]uint

[p=181, null, left][size=169px]time,temp,i,anjian,shijian,t,flag;//

[p=181, null, left]定義延時(shí)時(shí)間參數(shù)

[p=181, null, left][size=169px]uchar

[p=181, null, left][size=169px]code

[p=181, null, left][size=169px]table[]={0x0C0,0x0F9,0x0A4,0x0B0

[p=181, null, left][size=169px]//

[p=181, null, left]鍵盤碼表

[p=181, null, left][size=169px],0x99,0x92,0x82,0x0F8

[p=181, null, left][size=169px],0x80,0x90,0x88,0x83

[p=181, null, left][size=169px],0x0C6,0x0A1,0x86,0x8E};

[p=181, null, left][size=169px]uint

[p=181, null, left][size=169px]shumaguan[]={0,0,0,0,0,1};//

[p=181, null, left]六個(gè)數(shù)碼管的初始化值

[p=181, null, left][size=169px]void

[p=181, null, left][size=169px]delay(uint

[p=181, null, left][size=169px]time);

[p=181, null, left][size=169px]void

[p=181, null, left][size=169px]show(void);

[p=181, null, left][size=169px]void

[p=181, null, left][size=169px]init(void);

[p=181, null, left][size=169px]void

[p=181, null, left][size=169px]light(void);

[p=181, null, left][size=169px]sbit

[p=181, null, left][size=169px]upred=P1^7;

[p=181, null, left][size=169px]sbit

[p=181, null, left][size=169px]downgreen=P1^5;

[p=181, null, left][size=169px]sbit

[p=181, null, left][size=169px]stopled=P1^0;

[p=181, null, left][size=169px]sbit

[p=181, null, left][size=169px]openled=P1^1;

[p=181, null, left][size=169px]sbit

[p=181, null, left][size=169px]closeled=P1^2;

[p=181, null, left][size=169px]sbit

[p=181, null, left][size=169px]ring=P1^3;//

[p=181, null, left]響鈴

[p=181, null, left][size=169px]sbit

[p=181, null, left][size=169px]motor=P1^4;//

[p=181, null, left]直流電機(jī)









[p=144, null, left]

[p=144, null, left]6

[p=144, null, left]頁(yè)

[p=181, null, left]void

[p=181, null, left]main()//

[p=181, null, left][size=169px]主函數(shù)

[p=181, null, left]{

[p=181, null, left]init();//

[p=181, null, left][size=169px]初始化(包括開中斷,中斷觸發(fā)方式,

[p=181, null, left]8279

[p=181, null, left][size=169px]的初始化,

[p=181, null, left]RAM

[p=181, null, left][size=169px]和

[p=181, null, left]FIFO

[p=181, null, left][size=169px]的清除、

[p=181, null, left][size=169px]編

[p=169, null, left][size=169px]碼方式、分頻系數(shù)等)

[p=181, null, left]while(1){

[p=181, null, left]show();

[p=181, null, left]if(temp==1){light();}

[p=181, null, left]}

[p=181, null, left]}

[p=181, null, left]/*

[p=181, null, left][size=169px]初始化函數(shù)

[p=181, null, left]*/

[p=181, null, left]void

[p=181, null, left]init(void){

[p=181, null, left]delay(1300);

[p=181, null, left]//

[p=181, null, left][size=169px]開機(jī)延時(shí)約

[p=181, null, left]10ms

[p=181, null, left]IT1=0;

[p=181, null, left]//

[p=181, null, left][size=169px]外部中斷

[p=181, null, left]1

[p=181, null, left][size=169px]選用下降沿

[p=181, null, left]EA=1;

[p=181, null, left]//

[p=181, null, left][size=169px]開總中斷

[p=181, null, left]EX1=1;

[p=181, null, left]//

[p=181, null, left][size=169px]開外部中斷

[p=181, null, left]EX0=1;

[p=181, null, left]COM8279=0XDC;

[p=181, null, left]//

[p=181, null, left][size=169px]清除顯示

[p=181, null, left]RAM

[p=181, null, left][size=169px]和

[p=181, null, left]FIFO

[p=181, null, left]delay(100);

[p=181, null, left]COM8279=0X00;

[p=181, null, left]//8279

[p=181, null, left][size=169px]鍵盤雙鍵互鎖

[p=181, null, left],

[p=181, null, left][size=169px]編碼掃描,左端入口

[p=181, null, left]COM8279=0X34;

[p=181, null, left]//

[p=181, null, left][size=169px]時(shí)鐘分頻設(shè)置

[p=181, null, left]COM8279=0X92;

[p=181, null, left]//

[p=181, null, left][size=169px]設(shè)置寫顯示命令

[p=181, null, left]for(i=0;i<6;i++)

[p=181, null, left]DATA8279=table[0];

[p=181, null, left]TMOD=0x01;

[p=181, null, left]TH0=(65536-50000)/256;

[p=181, null, left]TL0=(65536-50000)%256;

[p=181, null, left]anjian=0;//

[p=181, null, left][size=169px]顯示時(shí)間

[p=181, null, left]shijian=0;//

[p=181, null, left][size=169px]表示時(shí)間

[p=181, null, left]temp=0;

[p=181, null, left]}

[p=181, null, left]/*

[p=181, null, left][size=169px]延時(shí)函數(shù)

[p=181, null, left]*/

[p=181, null, left]void

[p=181, null, left]delay

[p=181, null, left](uint

[p=181, null, left]time)

[p=181, null, left]{

[p=181, null, left]uchar

[p=181, null, left]j;

[p=181, null, left]while

[p=181, null, left](time--)

[p=181, null, left]{

[p=181, null, left]for

[p=181, null, left](j=100;j>0;j--);

[p=181, null, left]//

[p=181, null, left][size=169px]用

[p=181, null, left]j

[p=181, null, left][size=169px]來(lái)進(jìn)行

[p=181, null, left]100

[p=181, null, left][size=169px]次循環(huán)

[p=181, null, left],

[p=181, null, left][size=169px]大約

[p=181, null, left]8us

[p=181, null, left]}

[p=181, null, left]}









[p=144, null, left]

[p=144, null, left]7

[p=144, null, left]頁(yè)

[p=181, null, left][size=169px]/*

[p=181, null, left][size=169px]顯示函數(shù)

[p=181, null, left][size=169px]*/

[p=181, null, left][size=169px]void

[p=181, null, left][size=169px]show(void){

[p=181, null, left][size=169px]COM8279=0x92;//8279

[p=181, null, left][size=169px]命令字

[p=181, null, left][size=169px]shumaguan[1]=anjian;

[p=181, null, left][size=169px]for(i=0;i<6;i++){

[p=181, null, left][size=169px]DATA8279=table[shumaguan];//

[p=181, null, left][size=169px]顯示

[p=181, null, left][size=169px]shumaguan

[p=181, null, left][size=169px]數(shù)組

[p=181, null, left][size=169px]}

[p=181, null, left][size=169px]}

[p=181, null, left][size=169px]/*

[p=181, null, left][size=169px]鍵盤中斷

[p=181, null, left][size=169px]*/

[p=181, null, left][size=169px]void

[p=181, null, left][size=169px]int1_serve(void)

[p=181, null, left][size=169px]interrupt

[p=181, null, left][size=169px]2

[p=181, null, left][size=169px]{

[p=181, null, left][size=169px]COM8279=0x40;//

[p=181, null, left][size=169px]讀鍵盤命令

[p=181, null, left][size=169px]shumaguan[0]=DATA8279;

[p=181, null, left][size=169px]temp=1;

[p=181, null, left][size=169px]flag=1;

[p=181, null, left][size=169px]}

[p=181, null, left][size=169px]/*

[p=181, null, left][size=169px]定時(shí)器

[p=181, null, left][size=169px]0

[p=181, null, left][size=169px]中斷

[p=181, null, left][size=169px]*/

[p=181, null, left][size=169px]void

[p=181, null, left][size=169px]time0()

[p=181, null, left][size=169px]interrupt

[p=181, null, left][size=169px]1

[p=181, null, left][size=169px]{

[p=181, null, left][size=169px]TH0=(65536-50000)/256;

[p=181, null, left][size=169px]TL0=(65536-50000)%256;

[p=181, null, left][size=169px]if(t==20){

[p=181, null, left][size=169px]t=0;

[p=181, null, left][size=169px]if(anjian==8)

[p=181, null, left][size=169px]{anjian=0

[p=181, null, left][size=169px];

[p=181, null, left][size=169px]}

[p=181, null, left][size=169px]else

[p=181, null, left][size=169px]anjian++;

[p=181, null, left][size=169px]}

[p=181, null, left][size=169px]t++;

[p=181, null, left][size=169px]show();

[p=181, null, left][size=169px]}

[p=181, null, left][size=169px]void

[p=181, null, left][size=169px]light()

[p=181, null, left][size=169px]{

[p=181, null, left][size=169px]EX1=0;

[p=181, null, left][size=169px]while(flag){

[p=181, null, left][size=169px]if

[p=181, null, left][size=169px](shumaguan[0]>shumaguan[5]){

[p=181, null, left][size=169px]ET0=1;TR0=1;upred=0;

[p=181, null, left][size=169px]motor=0;

[p=181, null, left][size=169px]shijian=2*(shumaguan[0]-shumaguan[5]);

[p=181, null, left][size=169px]//

[p=181, null, left][size=169px]電梯上升時(shí)間

[p=181, null, left][size=169px]if(shumaguan[1]<shijian)

[p=181, null, left][size=169px]{upred=0;motor=0;

[p=181, null, left][size=169px]}

[p=181, null, left][size=169px]else









[p=144, null, left]{ET0=0;TR0=0;upred=1;motor=1;anjian=0;shumaguan[5]=shumaguan[0];}第

[p=144, null, left]6

[p=144, null, left]頁(yè)

[p=181, null, left]void

[p=181, null, left]main()//

[p=181, null, left][size=169px]主函數(shù)

[p=181, null, left]{

[p=181, null, left]init();//

[p=181, null, left][size=169px]初始化(包括開中斷,中斷觸發(fā)方式,

[p=181, null, left]8279

[p=181, null, left][size=169px]的初始化,

[p=181, null, left]RAM

[p=181, null, left][size=169px]和

[p=181, null, left]FIFO

[p=181, null, left][size=169px]的清除、

[p=181, null, left][size=169px]編

[p=169, null, left][size=169px]碼方式、分頻系數(shù)等)

[p=181, null, left]while(1){

[p=181, null, left]show();

[p=181, null, left]if(temp==1){light();}

[p=181, null, left]}

[p=181, null, left]}










仿真圖

仿真圖
回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2016-3-20 01:11 | 顯示全部樓層
樓主麻煩把源碼重新排版一下(可獲得100黑幣)
回復(fù)

使用道具 舉報(bào)

ID:109680 發(fā)表于 2016-3-26 09:59 | 顯示全部樓層
admin 發(fā)表于 2016-3-20 01:11
樓主麻煩把源碼重新排版一下(可獲得100黑幣)

是不能使用嗎?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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