单片机程序作业,在线等!!!!!!!!!!!!!!!急啊!!!!!!!!!!!!!!

JavaScript013

单片机程序作业,在线等!!!!!!!!!!!!!!!急啊!!!!!!!!!!!!!!,第1张

#include<reg51.h>

#include<INTRINS.h>

#define u16 unsigned int

#define u8 unsigned char

u16 count=0 //计数设定值

u16 countTemp=0//计数

u8 zt=0 //状态

sbit fmq=P1^0 //蜂鸣器

u16 jsflag=0 //闪烁计时用

/*********************************************************/

u8 ds[4] //数码管显示缓存

//共阴

code u8 w[]={0xf1,0xf2,0xf4,0xf8} //位码

code u8 d[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}//断码

void dispaly(){//显示函数

static u8 a

if(++a>3)a=0

P0=0xFF

P2=w[a]

P0=d[ds[a]]

}

/****************************************/

void init() //初始化函数

{   TMOD=0x01

TH0=(65536-1000)/256

TL0=(65536-1000)%256

EA=1

    ET0=1

}

/******************************************/

u8 key=0xff//消抖后的有效按键值

u8 key_down=0x00//按键下降沿扫描结果,1有效

u8 key_up=0x00  //上升沿扫描结果,1有效

u8 key_sc=0xff//上次扫描的按键值

//检测端下降沿检测  

sbit k1=P2^4

sbit k2=P2^5

sbit k3=P2^6

sbit k4=P2^7

//按键扫描程序

void scanKey(){

static u8 temp0

static u8 ms

u8 temp=0

if(k1==1)temp|=0x01

if(k2==1)temp|=0x02

if(k3==1)temp|=0x04

if(k4==1)temp|=0x08

if(temp==temp0){// 按键消抖

if(++ms>=5){//连续5次扫描的值一样,则认为是稳定状态

key=temp

ms=0

}

}else {

temp0=temp

ms=0

}

key_down=key_sc&(~key)//下降沿扫描

key_up=(~key_sc)&key//下降沿扫描

key_sc=key

}

u8 readPIN(u8 port,u8 pin){

code u8 tab[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,}

    return ((port&tab[pin])==0?0:1)

}

/***********************************/

//预置状态

u16 anjs=0//长按计数标志

void yzzt(){

ds[0]=count/1000%10//设置值送入显示缓存

ds[1]=count/100%10

ds[2]=count/10%10

ds[3]=count%10

if(readPIN(key,0)==0){//k1按下

if(readPIN(key_down,0)==1){//下降沿,即刚按下

if(++count>9999)count=0//加1

anjs=2000//倒计时2s

}

if(anjs==0){//倒计时到

anjs=200//倒计时0.2s

if(++count>9999)count=0//加1

}

}

//减1

if(readPIN(key,1)==0){

if(readPIN(key_down,1)==1){

if(--count>9999)count=9999

anjs=2000

}

if(anjs==0){

anjs=200

if(--count>9999)count=9999

}

}

if(readPIN(key_down,2)==1){//计入计数

zt=2

}

}

//计数状态

void jszt(){

if((countTemp==count)&&(jsflag<=500)){//闪烁

  ds[0]=10

ds[1]=10

ds[2]=10

ds[3]=10

}else {//正常显示

   ds[0]=countTemp/1000%10

ds[1]=countTemp/100%10

ds[2]=countTemp/10%10

ds[3]=countTemp%10

}

fmq=(countTemp==count?1:0)//蜂鸣器

if(readPIN(key_down,2)==1){//计入预置状态

zt=1

}

if(readPIN(key_down,3)==1){//计数

if(++countTemp>9999)countTemp=0

}

}

/*****************************/

void main()//主函数

{

while(1){

if(zt==0){

fmq=0

init()//系统初始化

TR0=1 //定时器开始计时

zt=1

}else if(zt==1){

yzzt()

}else if(zt==2){

jszt()

}

scanKey()

}

}

/****************************/

void timer0() interrupt 1//1ms定时器

{   

TH0=(65536-1000)/256//重载初值

TL0=(65536-1000)%256

dispaly()//显示

if(++jsflag>=1000)jsflag=0

if(anjs!=0)anjs--

}

原因分析如下:

一、一般在什么情况下容易弹出javascripterror提示框

1、从网上采集到的文章,但在前台打开后,就出现这个错误框!

2、图片内容页的幻灯片不播放,点播放就出现JAVA错误!

3、只在频道首页、栏目列表页和内容页有这样的错误!

4、从其它网站复制粘贴过来的图片文章经常出现这样的错误!

5、新添加频道和栏目之后,容易出现这样的错误!

6、调用自定义函数标签时出现Javascript错误!

7、修改模板把搜索按钮改成图片后提示:javascripterror

8、在模板中加入了JS调用代码,而JS文件并没有上传也会出现这个错误!

二、出现javascripterror提示框原因分析及解决方法

1、由于新安装好的网站或者新添加的频道或栏目,有些系统必需的JS文件并没有真正生成,这时添加文章在前台会出错,所以要在后台相应的频道中点击“刷新所有的JS”、“刷新专题JS文件”、“刷新栏目JS文件”;有些人以为,我没有添加专题就不用刷新专题JS了吧?错!必须也要刷新才行。

2、一般是修改模板时,JS调用代码多了或者少了就会出现这个讨厌的框。比如:模板中存在过期的广告调用JS调用代码,删除后即正常。还有的是因为模板中缺少了以下三个JS中的某一个而引起的错误:

3、有些是从其他网站复制过来的文章的js错误导致的。建议复制文章后放在记事本中过滤一下JS代码。或者修改出现错误的那篇文章,在源码状态下,查找并删除图片文章中包含的错误代码。

4、缺少相应的函数,所以调用时就一直显示错误。有的朋友以前在修改模板时,把官方默认的一些代码(如:图片无级缩放代码等)给删除了,结果也会出现JS错误。所以,动易后来把这些代码改成了删除后自动添加的,其目的就是减少JS错误。

5、常常是由于js文件没有上传成功或者你的浏览器版本过低或者限制过多造成的,从以上几个方面多检查一下或许能解决问题。

6、有些是传递的参数设定有问题。比如(('{$ArticleID}'))不需要加这么多的外包围。

只需要用{$ArticleID}就可以了!

7、在建立栏目或专题时,名称中包含了半角引号等非法字符而导致JS脚本错误,纠正之后即可解决。

8、采集项目如果过滤设置不正确,致使采集过来的一些文章JS脚本没有被过滤,也会出错。请重新设置采集过滤选项。